Risorse/Addestramento del modello/Preparazione dei dati

Impostazione

Limiti dei token e troncamento

Ogni provider pone un limite al numero di token che un esempio di addestramento può contenere. Le conversazioni lunghe che superano il limite vengono troncate — rimuovendo prima gli scambi più vecchi — o scartate.

Capitolo 5Lettura di 4 min3 riferimenti

Cos'è

Un modello legge il testo sotto forma di token e l'addestramento elabora ogni esempio come una singola sequenza di token. I provider stabiliscono un limite di token per esempio: la sequenza più lunga che un singolo record di addestramento può contenere. Spesso è inferiore alla finestra di contesto del modello nell'uso normale, poiché l'addestramento richiede memoria non solo per leggere i token, ma anche per calcolare come dovrebbe cambiare ogni peso.

La maggior parte delle chat di supporto rientra facilmente nel limite. Quelle che lo superano sono lunghi thread di risoluzione dei problemi, conversazioni in cui qualcuno ha incollato un file di log o chat che si sono protratte per un intero pomeriggio. Ognuna di queste richiede una decisione.

Come funziona

il budget
record tokens = system prompt + every earlier turn + the target reply
fits          = record tokens ≤ per-example limit

rough estimate: tokens ≈ characters ÷ 4   (English text)

L'opzione Tronca funziona a ritroso a partire dalla risposta di destinazione. Il prompt di sistema e la destinazione vengono sempre mantenuti, dopodiché gli scambi vengono rimossi partendo dall'inizio della conversazione finché il totale non rientra nel limite. Gli scambi vengono rimossi per intero — un messaggio dell'utente insieme alla relativa risposta — in modo che il record non inizi mai con una risposta in sospeso a una domanda che è stata eliminata.

systemSei l'assistente di supporto per…250 · mantenuto
user · asstScambio 1: configurazione dell'account1,500 · ritagliato
user · asstScambio 2: importazione dei dati dell'anno precedente1,300 · ritagliato
user · asstScambio 3: importazione non riuscita alla riga 2121,200 · mantenuto
userQuindi come correggo la riga 212?350 · mantenuto
assistantLa riga 212 ha una data nel formato errato. Modificala in…600 · target, mantenuto
Una conversazione di 5.200 token e un limite di 3.000 token. Il ritaglio rimuove interi scambi a partire da quelli più vecchi finché il record non rientra nel limite, in modo che il prompt di sistema, il contesto recente e la risposta target sopravvivano intatti.

Perché la parte più vecchia? Per la maggior parte delle chat, il contesto più rilevante è quello più recente: la domanda a cui si sta rispondendo, il messaggio di errore appena citato, l'ultima cosa suggerita dall'assistente. La ricerca sugli input lunghi mostra inoltre che i modelli utilizzano le informazioni all'inizio e alla fine del loro contesto meglio del materiale sepolto nel mezzo (Liu et al., 2023), pertanto un record più breve e mirato perde meno di quanto suggerisca il conteggio dei token.

L'opzione Scarta esclude il record. Da utilizzare quando la parte iniziale di una conversazione è essenziale per la risposta — ad esempio, quando l'utente indica il proprio tipo di account o un vincolo chiave nel primo messaggio e la risposta di destinazione dipende da esso. Una versione troncata di tale chat insegnerebbe al modello a rispondere senza le informazioni di cui ha effettivamente bisogno, un modo subdolo per insegnargli a tirare a indovinare.

TroncaTipico Predefinito#

Rimuove gli scambi più vecchi finché il record non rientra nel limite, mantenendo il prompt di sistema, il contesto più recente e la destinazione. Mantiene ogni esempio nel dataset.

Scarta#

Esclude qualsiasi record che superi il limite. Da scegliere quando le risposte dipendono da dettagli forniti all'inizio di lunghe conversazioni, o quando solo una manciata di record ne è interessata.

Esempio pratico: un thread da 5.200 token e un limite di 3.000 token
  1. Il record contiene un prompt di sistema da 250 token, tre scambi precedenti da 1.500, 1.300 e 1.200 token, la domanda dell'utente (350) e la risposta target (600): 5.200 token.
  2. Rimozione dello scambio 1: 3.700 token. Ancora oltre il limite.
  3. Rimozione dello scambio 2: 2.400 token. Rientra nel limite, con 600 token di margine.
  4. Il record addestrato mantiene il prompt di sistema, lo scambio 3 (dove è stato citato l'errore di importazione), la domanda e la risposta — tutto ciò a cui il target si riferisce effettivamente.
  5. Se l'utente avesse detto “Sono sul piano legacy” nello scambio 1 e la risposta fosse dipesa da questo, Drop sarebbe stata la scelta più sicura.

Perché i conteggi sono stime

Ogni famiglia di modelli ha il proprio tokenizer, quindi la stessa frase può corrispondere a 20 token per un modello e a 24 per un altro. I conteggi mostrati prima dell'addestramento sono pertanto stime (l'inglese ha in media circa quattro caratteri per token); il provider effettua il conteggio esatto quando riceve il file. Codice, numeri, URL e testo non in inglese richiedono solitamente più token per carattere rispetto all'inglese standard, quindi è consigliabile lasciare un margine di sicurezza quando i dati sono ricchi di questi elementi.

Errori comuni

  • Dimenticare che il prompt di sistema viene conteggiato in ogni record: un prompt di 600 token lascia 600 token in meno per la conversazione.
  • Troncare le chat la cui risposta dipende da qualcosa detto all'inizio, per poi chiedersi perché il modello inventi i dettagli dell'account.
  • Dare per scontato che la stima sia esatta e spingersi fino al limite con dati ricchi di codice o numeri.
  • Ignorare quanti record sono stati troncati: se si tratta della maggior parte, il dataset potrebbe essere più adatto a un modello con un limite superiore.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01Lost in the Middle: How Language Models Use Long ContextsLiu et al., 2023 · arXiv · arxiv.orgI modelli utilizzano le informazioni all'inizio e alla fine degli input lunghi meglio di quelle nel mezzo.
  2. 02Prepare data for fine-tuning your modelsAmazon Bedrock User Guide · docs.aws.amazon.comLimiti reali di token per esempio per diversi modelli, a confronto.
  3. 03Prepare supervised fine-tuning data for Gemini modelsGoogle Cloud documentation · docs.cloud.google.comI requisiti del dataset di un altro provider, inclusi i limiti di dimensione.

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