Modelli di fondazione e iperparametri per il fine-tuning
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.
-
Se sei interessato a ottimizzare il tuo modello sulla base di dati specifici del dominio, consulta Fine-tuning di un modello linguistico di grandi dimensioni (LLM) utilizzando l’adattamento del dominio.
-
Se sei interessato alla messa a punto basata su istruzioni utilizzando esempi di prompt e risposta, consulta Esecuzione del fine-tuning di un modello linguistico di grandi dimensioni (LLM) utilizzando istruzioni del prompt.
Modelli di fondazione disponibili per il fine-tuning
È possibile eseguire il fine-tuning di uno qualsiasi dei seguenti modelli di fondazione di JumpStart:
-
Bloom 3B
-
Bloom 7B1
-
BloomZ 3B FP16
-
BloomZ 7B1 FP16
-
Code Llama 13B
-
Code Llama 13BPython
-
Code Llama 34B
-
Code Llama 34BPython
-
Code Llama 70B
-
Code Llama 70BPython
-
Code Llama 7B
-
Code Llama 7BPython
-
CyberAgentLM2-7B-Chat (CALM2-7B-Chat)
-
Falcon 40B BF16
-
Falcon 40B Instruct BF16
-
Falcon 7B BF16
-
Falcon 7B Instruct BF16
-
Flan-T5 Base
-
Flan-T5 Large
-
Flan-T5 Small
-
Flan-T5 XL
-
Flan-T5 XXL
-
Gemma 2B
-
Gemma 2B Instruct
-
Gemma 7B
-
Gemma 7B Instruct
-
GPT-2 XL
-
GPT-J 6B
-
GPT-Neo 1.3B
-
GPT-Neo 125M
-
GPT-NEO 2.7B
-
LightGPT Instruct 6B
-
Llama 2 13B
-
Llama 2 13B Chat
-
Llama 2 13B Neuron
-
Llama 2 70B
-
Llama 2 70B Chat
-
Llama 2 7B
-
Llama 2 7B Chat
-
Llama 2 7B Neuron
-
Mistral 7B
-
Mixtral 8x7B
-
Mixtral 8x7B Instruct
-
RedPajama INCITE Base 3B V1
-
RedPajama INCITE Base 7B V1
-
RedPajama INCITE Chat 3B V1
-
RedPajama INCITE Chat 7B V1
-
RedPajama INCITE Instruct 3B V1
-
RedPajama INCITE Instruct 7B V1
-
Stable Diffusion 2.1
iperparametri comunemente supportati per il fine-tuning
Diversi modelli di fondazione supportano vari iperparametri durante il fine-tuning. Di seguito sono riportati gli iperparametri comunemente supportati che possono personalizzare ulteriormente il modello durante l’addestramento:
| Parametro di inferenza | Descrizione |
|---|---|
|
Il numero di passaggi che il modello esegue nel set di dati di fine-tuning durante l’addestramento. Deve essere un numero intero superiore a 1. |
|
La velocità con cui i pesi del modello vengono aggiornati dopo l’elaborazione di ciascun batch di esempi di addestramento per il fine-tuning. Deve essere un valore a virgola mobile positivo maggiore di 0. |
|
Indica se addestrare o meno il modello mediante istruzioni. Deve essere |
|
La dimensione del batch per core della GPU o CPU per l’addestramento. Deve essere un numero intero positivo. |
|
La dimensione del batch per core della GPU o CPU per la valutazione. Deve essere un numero intero positivo. |
|
Per scopi di debug o per un addestramento più rapido, riduci il numero di esempi di addestramento a questo valore. Il valore -1 indica che il modello utilizza tutti gli esempi di addestramento. Deve essere un numero intero positivo o -1. |
|
Per scopi di debug o per un addestramento più rapido, riduci 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. |
|
Lunghezza massima totale della sequenza di input dopo la tokenizzazione. Le sequenze più lunghe verranno troncate. Se -1, |
|
Se non esiste un canale di convalida, indica il rapporto di suddivisione tra convalida-addestramento e dati di addestramento. Deve essere un valore compreso tra 0 e 1. |
|
Se non sono presenti dati di convalida, viene corretta la suddivisione casuale dei dati di addestramento di input rispetto ai dati di addestramento e convalida utilizzati dal modello. Deve essere un numero intero. |
|
Il numero di processi da utilizzare per la pre-elaborazione. Se |
|
Valore r dell’adattamento di basso rango (LoRA), che funge da fattore di dimensionamento per gli aggiornamenti del peso. Deve essere un numero intero positivo. |
|
Valore alfa dell’adattamento di basso rango (LoRA), che funge da fattore di dimensionamento per gli aggiornamenti del peso. Generalmente da 2 a 4 volte la dimensione di |
|
Valore di abbandono per i livelli dell’adattamento di basso rango (LoRA). Deve essere un numero a virgola mobile positivo compreso tra 0 e 1. |
|
Se |
|
Se |
Quando esegui il fine-tuning del modello in Studio, puoi specificare i valori degli iperparametri. Per ulteriori informazioni, consulta Fine-tuning di un modello in Studio.
È inoltre possibile sovrascrivere i valori predefiniti degli iperparametri durante il fine-tuning del modello utilizzando SageMaker Python SDK. Per ulteriori informazioni, consulta Fine-tuning dei modelli di fondazione disponibili al pubblico con la classe JumpStartEstimator.