Che cos'è
Un modello di base ha imparato ciò che sa nel pre-addestramento: prevedere la parola successiva su una vasta quantità di testi pubblici. Il pre-addestramento continuo esegue lo stesso processo una seconda volta, sul Suo testo. Non ci sono prompt, risposte o valutatori; il modello legge la Sua documentazione e migliora nel prevedere come continua, il che significa che ne assorbe il vocabolario, le entità e i fatti.
L'idea è ben consolidata. Gururangan et al. (2020) hanno dimostrato in quattro domini (articoli biomedici e di informatica, notizie e recensioni) e otto task che una seconda fase di pre-addestramento su testi specifici del dominio ha migliorato i risultati, e che il pre-addestramento sul testo non etichettato del task stesso è risultato utile anche in seguito.
Come viene preparato il testo
- Passaggi di circa 700 parole, tagliati alle interruzioni di paragrafo in modo che nessun passaggio termini a metà di un concetto. I documenti molto brevi possono essere ignorati.
- I dati personali vengono oscurati, come in qualsiasi preparazione dei dati.
- Circa il 5% dei passaggi viene messo da parte, in modo da poter misurare la perdita su testi su cui il modello non viene mai addestrato.
Come viene addestrato da ciascun provider
Hugging Face: ogni passaggio corrisponde a una riga text. La perdita copre ogni token, a differenza dell'addestramento supervisionato, in cui conta solo la risposta. I passaggi brevi vengono raggruppati in sequenze di lunghezza intera, in modo da non sprecare risorse di calcolo per il padding.
{"text": "Sharing reports\n\nAny report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}Modelli aperti Vertex AI (Gemma, Llama, Qwen): non esiste una modalità di solo testo, quindi ogni passaggio viene inserito come prompt e completamento, utilizzando il titolo del documento come prompt. Vertex impara il completamento, che corrisponde al passaggio. Vertex potrebbe non mostrare una curva di perdita per questo tipo di operazione.
{"prompt": "Sharing reports",
"completion": "Any report can be shared with a client from the Share menu. The client receives an email with a link that opens without an account…"}textuna riga per passaggio→apprende ogni tokenpromptil titolo del documento+completionil passaggio→apprende il passaggioNon disponibile altrove. Gemini, Azure, Fireworks e gli attuali modelli Bedrock non offrono il pre-addestramento continuo; Bedrock lo ha fatto solo per Titan Text, che è stato ritirato. Su questi provider, i documenti diventano invece Q&A generate.
Conoscenza, non comportamento
Dopo il pre-addestramento continuo, il modello sa di più ma non necessariamente risponde meglio: è stato addestrato a continuare il testo, non a rispondere a una domanda. Allen-Zhu & Li (2023) hanno scoperto che la conoscenza memorizzata da un modello non è sempre estraibile tramite domande, e che sono le diverse formulazioni dello stesso fatto a renderlo recuperabile. Pertanto, la procedura abituale prevede prima il pre-addestramento continuo, poi un'esecuzione supervisionata, su chat o Q&A generate, che prosegue dal modello addestrato.
- Un centro di assistenza di 120.000 parole viene suddiviso in circa 170 passaggi di circa 700 parole.
- Circa il 5% (9 passaggi) viene messo da parte; l'addestramento avviene su 161 passaggi, per un totale di circa 113.000 parole.
- Con circa 1,3 token per parola, si ottengono all'incirca 150.000 token per epoca. Due epoche comportano un addestramento su circa 300.000 token.
- Raggruppando i dati in sequenze da 2.048 token, un'epoca corrisponde a circa 72 sequenze. Con un rango LoRA pari a 32 su un modello aperto di piccole dimensioni, si tratta di un'operazione breve ed economica.
- Un'esecuzione supervisionata sulle chat di supporto e sulle Q&A generate prosegue quindi a partire da questo punto e viene valutata rispetto a esso.
- Al contrario, un progetto pilota su un documento di 2.000 parole produce tre passaggi: dimostra che la pipeline funziona, ma il testo è decisamente troppo scarso per modificare il modello.
Quando sceglierlo
- Scegliere questa opzione quando si dispone di un ampio corpo di documentazione (decine di migliaia di parole o più), si addestra un modello aperto e si pianifica un'esecuzione supervisionata successiva.
- Scegliere le Q&A generate quando si desiderano risposte migliori in tempi brevi, si hanno meno documenti o si effettua l'addestramento su un provider senza pre-addestramento continuo.
- Considerare entrambe le opzioni: pre-addestramento continuo per assimilare la documentazione, quindi Q&A e chat generate per insegnare al modello a rispondere in base ad essa.
Impostazioni
La lunghezza di ogni passaggio di addestramento. Circa 700 parole, interrotte alle interruzioni di paragrafo, in modo che ogni passaggio sia un testo coerente e si adatti comodamente a una sequenza di addestramento. I documenti molto brevi possono essere ignorati in quanto troppo corti per insegnare qualcosa.
Quante volte il modello legge tutti i passaggi. Lo mantenga basso: molti passaggi portano il modello a recitare i passaggi parola per parola invece di utilizzarne la conoscenza. Ogni epoca aggiunge inoltre all'incirca il costo di un'ulteriore epoca.
La dimensione dell'adattatore che contiene ciò che il modello apprende. Le nuove conoscenze richiedono un adattatore più grande rispetto a un cambio di stile, pertanto Scalata utilizza un rank 32 per il pre-addestramento continuo e 16 per gli altri metodi. Biderman et al. (2024) hanno scoperto, su codice e matematica, che il fine-tuning completo apprende cambiamenti di un rank 10–100 volte superiore rispetto alle tipiche impostazioni LoRA, un probabile motivo per cui i rank bassi risultano insufficienti quando l'obiettivo è una nuova conoscenza.
Errori comuni
- Eseguirlo su poche pagine e aspettarsi un cambiamento. Richiede decine di migliaia di parole o più.
- Fermarsi dopo il pre-addestramento continuo. Il modello sa di più, ma ha ancora bisogno di un'esecuzione supervisionata per rispondere bene.
- Utilizzare molte epoche. Il modello inizia a recitare i passaggi invece di utilizzare ciò che dicono.
- Mantenere un rango LoRA basso. La conoscenza richiede una maggiore capacità dell'adattatore rispetto allo stile.
- Cercarlo su Gemini, Azure, Fireworks o Bedrock. In questi casi, utilizzi le Q&A generate.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01Don't Stop Pretraining: Adapt Language Models to Domains and TasksGururangan et al., 2020 · arXiv · arxiv.orgLo studio classico sul pre-addestramento adattivo al dominio e al task.
- 02LoRA Learns Less and Forgets LessBiderman et al., 2024 · arXiv · arxiv.orgLoRA rispetto al fine-tuning completo per il pre-addestramento continuo, e perché il rango è importante.
- 03Synthetic continued pretrainingYang et al., 2024 · arXiv · arxiv.orgPerché un corpus di piccole dimensioni insegna poco da solo e come le variazioni sintetiche sono d'aiuto.
- 04SFT TrainerHugging Face TRL docs · huggingface.coAddestramento su testo semplice e raggruppamento delle sequenze con Hugging Face TRL.
- 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comOttimizzazione di modelli aperti come Gemma, Llama e Qwen su Vertex AI.