Risorse/Addestramento del modello/Metodi di addestramento

Metodo

Pre-addestramento continuo

Il pre-addestramento continuo addestra un modello sul testo grezzo nello stesso modo in cui è stato addestrato inizialmente: prevedendo la parola successiva. Aggiunge conoscenza del vostro dominio, non nuovi comportamenti, pertanto è solitamente seguito da un'esecuzione supervisionata.

Capitolo 7Lettura di 5 min5 riferimenti

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.
1 · SUDDIVIDI ALLE INTERRUZIONI DI PARAGRAFOABCDEFmessi da parte (~5%)un passaggio ≈ 700 parole ≈ 900 token2 · RAGGRUPPA IN SEQUENZE DA 2.048 TOKENsequenza 1ABsequenza 2CDEcompletacompletala loss copre ogni token: non ci sono domande e risposte, solo testo
Come i documenti diventano dati per il pre-addestramento continuo. Il testo viene suddiviso in passaggi di circa 700 parole in corrispondenza delle interruzioni di paragrafo, affinché nessun passaggio si interrompa a metà di un concetto; circa il 5% viene messo da parte per misurare la loss su testi su cui il modello non si addestra mai. Su Hugging Face, i passaggi brevi vengono poi raggruppati fianco a fianco in sequenze di lunghezza intera, in modo da non sprecare risorse di calcolo per il padding. Le lunghezze sono illustrative.

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.

Un passaggio per Hugging Face
{"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.

Lo stesso passaggio per i modelli aperti di Vertex AI
{"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…"}
Hugging Face · testo normale
passaggio→textuna riga per passaggio→apprende ogni token
Modelli aperti Vertex AI · prompt e completamento
promptil titolo del documento+completionil passaggio→apprende il passaggio
Lo stesso passaggio, scritto nel formato richiesto da ciascun provider per l'addestramento. Hugging Face accetta testo normale. I modelli aperti di Vertex AI non hanno una modalità per il testo normale, quindi il titolo del documento funge da prompt e il passaggio è la parte che viene appresa.

Non 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.

Modello di baseconoscenza generale
→legge il vostro testoPre-addestramento continuoora conosce i vostri documenti
→continua daEsecuzione supervisionatachat o Q&A generate: utilizza tale conoscenza per rispondere
Il pre-addestramento continuo aggiunge conoscenza, non comportamento. Un modello che ha letto solo i vostri documenti continua il testo; non risponde ancora alle domande su di esso. Un'esecuzione supervisionata che prosegue da questo punto gli insegna a utilizzare ciò che ha letto.
Dimensionamento di un'esecuzione (a scopo illustrativo)
  1. Un centro di assistenza di 120.000 parole viene suddiviso in circa 170 passaggi di circa 700 parole.
  2. Circa il 5% (9 passaggi) viene messo da parte; l'addestramento avviene su 161 passaggi, per un totale di circa 113.000 parole.
  3. 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.
  4. 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.
  5. 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.
  6. 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

Lunghezza del passaggioTipico Circa 700 parole#

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.

EpocheTipico 1–3#

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.

Rank LoRATipico 32 (16 per gli altri metodi)#

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.

  1. 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.
  2. 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.
  3. 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.
  4. 04SFT TrainerHugging Face TRL docs · huggingface.coAddestramento su testo semplice e raggruppamento delle sequenze con Hugging Face TRL.
  5. 05Supervised and distillation fine-tuning for open modelsGoogle Cloud docs · cloud.google.comOttimizzazione di modelli aperti come Gemma, Llama e Qwen su Vertex AI.

Trasformate settimane di lavoro esperto in pochi minuti

Scoprite come Scalata si adatta al vostro team, ai vostri dati e ai vostri Controlli.

Contatta il team vendite