Ottimizzare un modello di fondazione - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ottimizzare un modello di fondazione

I modelli di fondazione sono costosi dal punto di vista computazionale e vengono addestrati su un ampio corpus senza etichetta. L’ottimizzazione di un modello di fondazione addestrato è un modo conveniente per sfruttare le ampie funzionalità di tali modelli personalizzando al contempo un modello su un piccolo corpus. L’ottimizzazione è un metodo di personalizzazione che prevede un ulteriore addestramento e modifica il peso del modello.

L’ottimizzazione potrebbe esserti utile se hai bisogno di:

  • personalizzare il modello in base a esigenze aziendali specifiche

  • il tuo modello per lavorare con successo con un linguaggio specifico del dominio, come gergo di settore, termini tecnici o altri vocaboli specializzati

  • prestazioni migliorate per attività specifiche

  • risposte accurate, relative e sensibili al contesto nelle applicazioni

  • risposte più concrete, meno controverse e meglio allineate ai requisiti specifici

Esistono due approcci principali che è possibile adottare per l’ottimizzazione, a seconda del caso d'uso e del modello di fondazione scelto.

  1. Se sei interessato a ottimizzare il tuo modello sulla base di dati specifici del dominio, consulta Ottimizzazione dell'adattamento del dominio.

  2. Se sei interessato alla messa a punto basata su istruzioni utilizzando esempi di prompt e risposta, consulta Ottimizzazione basata su istruzioni.

Modelli Foundation disponibili per la messa a punto

È possibile ottimizzare uno qualsiasi dei seguenti modelli di base: JumpStart

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • BloomZ 7B1 FP16

  • Codice Llama 13B

  • Codice Llama 13B Python

  • Codice Llama 34B

  • Codice Llama 34B Python

  • Codice Llama 70B

  • Codice Llama 70B Python

  • Codice Llama 7B

  • Codice Llama 7B Python

  • CyberAgentLM2-7B-Chat (Calm2-7B-Chat)

  • Falcon 40B BF16

  • Falcon 40B Instruct BF16

  • Falcon 7B BF16

  • Falcon 7B Instruct BF16

  • Base Flan-T5

  • Flan-T5 Grande

  • Flan-T5 piccolo

  • Flan-T5 XL

  • Flan-T5 XXL

  • Gemma 2B

  • Gemma 2B Istruisci

  • Gemma 7B

  • Gemma 7B Istruisci

  • GPT-2 XL

  • GPT-J6B

  • GPT-Neo 1,3 B

  • GPT-Neo 125M

  • GPT-NEO 2,7B

  • LightGPT Instruct 6B

  • Llama 2 13B

  • Llama 2 13B Chat

  • Neurone Llama 2 13B

  • Lama 2 70B

  • Llama 2 70B Chat

  • Lama 2 7B

  • Chat Llama 2 7B

  • Neurone Llama 2 7B

  • Mistral 7B

  • Mixtral 8x7B

  • Istruzioni Mixtral 8x7B

  • RedPajama INCITE Base 3B V1

  • RedPajama INCITE Base 7B V1

  • RedPajama Tabella INCITE 3B V1

  • RedPajama INCITE Chart 7B V1

  • RedPajama INCITE Instruct 3B V1

  • RedPajama INCITE Instruct 7B V1

  • Diffusione stabile 2.1

Iperparametri di regolazione fine comunemente supportati

Diversi modelli di base supportano diversi iperparametri durante la messa a punto. Di seguito sono riportati gli iperparametri comunemente supportati che possono personalizzare ulteriormente il modello durante l'allenamento:

Parametro di inferenza Descrizione

epoch

Il numero di passaggi che il modello esegue nel set di dati di fine tuning durante l'addestramento. Deve essere un numero intero maggiore di 1.

learning_rate

La velocità con cui i pesi del modello vengono aggiornati dopo aver elaborato ogni serie di esempi di addestramento di precisione. Deve essere un float positivo maggiore di 0.

instruction_tuned

Se istruire/addestrare il modello o meno. Deve essere 'True' o 'False'.

per_device_train_batch_size

La dimensione del batch per core della GPU o CPU per l'addestramento. Deve essere un numero intero positivo.

per_device_eval_batch_size

La dimensione del batch per core o CPU della GPU da valutare. Deve essere un numero intero positivo.

max_train_samples

Per scopi di debug o per una formazione più rapida, riduci il numero di esempi di formazione a questo valore. Il valore -1 indica che il modello utilizza tutti gli esempi di addestramento. Deve essere un numero intero positivo o -1.

max_val_samples

Per scopi di debug o per una formazione più rapida, tronca il numero di esempi di convalida a questo valore. Il valore -1 indica che il modello utilizza tutti gli esempi di convalida. Deve essere un numero intero positivo o -1.

max_input_length

Lunghezza totale massima della sequenza di input dopo la tokenizzazione. Le sequenze più lunghe di questa verranno troncate. Se -1, max_input_length è impostato sul minimo di 1024 ed è definito dal model_max_length tokenizer. Se impostato su un valore positivo, max_input_length viene impostato sul valore minimo tra il valore fornito e quello model_max_length definito dal tokenizer. Deve essere un numero intero positivo o -1.

validation_split_ratio

Se non esiste un canale di convalida, il rapporto tra la convalida del treno e i dati di addestramento viene suddiviso. Deve essere compreso tra 0 e 1.

train_data_split_seed

Se i dati di convalida non sono presenti, viene corretta la suddivisione casuale dei dati di addestramento in ingresso in dati di addestramento e convalida utilizzati dal modello. Deve essere un numero intero.

preprocessing_num_workers

Il numero di processi da utilizzare per la preelaborazione. SeNone, il processo principale viene utilizzato per la preelaborazione.

lora_r

Valore r di adattamento a basso rango (LoRa), che funge da fattore di scala per gli aggiornamenti del peso. Deve essere un numero intero positivo.

lora_alpha

Valore alfa di adattamento a basso rango (LoRa), che funge da fattore di scala per gli aggiornamenti del peso. Generalmente da 2 a 4 volte la dimensione di. lora_r Deve essere un numero intero positivo.

lora_dropout

Il valore di abbandono per i livelli di adattamento a basso rango (LoRa) Deve essere un float positivo compreso tra 0 e 1.

int8_quantization

SeTrue, il modello viene caricato con una precisione di 8 bit per l'addestramento.

enable_fsdp

SeTrue, la formazione utilizza Fully Sharded Data Parallelism.

È possibile specificare i valori degli iperparametri quando si ottimizza il modello in Studio. Per ulteriori informazioni, consulta Ottimizzate i modelli di base in Studio.

Puoi anche sovrascrivere i valori predefiniti degli iperparametri durante la messa a punto del modello utilizzando l'SDK. SageMaker Python Per ulteriori informazioni, consulta Perfeziona i modelli di base disponibili al pubblico con la classe JumpStartEstimator.