Risorse/Addestramento del modello/Token e contesto

Concetto

Finestra di contesto

Il numero massimo di token che un modello può prendere in considerazione contemporaneamente, come viene condiviso tale spazio e in che modo differisce dal limite per esempio applicato durante l'addestramento.

Capitolo 2Lettura di 3 min4 riferimenti

Cos'è

La finestra di contesto è la memoria di lavoro del modello per una singola richiesta: il numero massimo di token che può prendere in considerazione contemporaneamente. È condivisa da tutto: il prompt di sistema, ogni turno precedente della conversazione, eventuali documenti inseriti nel prompt, il nuovo messaggio e la risposta che il modello sta scrivendo. Tutto ciò che non vi rientra viene semplicemente ignorato.

Le finestre sono cresciute rapidamente, da un paio di migliaia di token nei primi modelli a centinaia di migliaia, fino a circa un milione in alcuni modelli attuali. Le dimensioni sono stabilite dal modo in cui il modello è stato costruito e addestrato; il fine-tuning non le modifica.

UNA RICHIESTAfinestra di contestosistematurni precedentinuovo messaggiorispostaliberoRECORD DI ADDESTRAMENTO · PRIMAsysturno 1turno 2turno 3targetDOPO IL TAGLIOsysturno 2turno 3targetlimite per esempioil più vecchio scartato
In alto: una richiesta. Il prompt di sistema, la cronologia, il nuovo messaggio e la risposta condividono un'unica finestra. In basso: un record di addestramento che supera il limite per esempio perde lo scambio più vecchio, mantenendo il prompt di sistema, il contesto più recente e il target.

Come funziona

Un Transformer legge il suo input in parallelo e, a ogni livello, consente a ciascun token di guardare indietro a ogni token precedente attraverso un meccanismo chiamato attenzione. È questo che permette a una risposta di dipendere da un dettaglio molto indietro nella conversazione. È anche il motivo per cui i contesti lunghi sono costosi: nell'attenzione standard il calcolo cresce con il quadrato della lunghezza, e la memoria utilizzata per mantenere visibile la conversazione durante la generazione cresce con ogni token.

Anche la risposta conta. Se un modello ha una finestra di 128.000 token e l'input è lungo 126.000 token, rimangono solo 2.000 token per la risposta. La maggior parte delle API limita inoltre la lunghezza dell'output separatamente.

Più grande non significa migliore

Un modello può accettare un input lungo senza farne un buon uso. Gli studi sui contesti lunghi rivelano che i modelli utilizzano le informazioni all'inizio e alla fine dell'input in modo più affidabile rispetto alle informazioni sepolte nel mezzo, e che molti modelli che pubblicizzano finestre molto lunghe perdono precisione ben prima del limite dichiarato. Sia per l'addestramento che per l'utilizzo, un contesto breve e pertinente di solito offre risultati migliori rispetto a uno lungo e riempitivo.

Il limite di addestramento per esempio

L'addestramento aggiunge un secondo limite: il limite di token per esempio, ovvero il singolo record più lungo su cui un provider effettuerà l'addestramento. Spesso è inferiore alla finestra di contesto del modello, perché l'addestramento su un record lungo richiede molta più memoria rispetto alla generazione di una risposta. Un record che supera il limite deve essere accorciato o escluso.

Adattare una lunga conversazione di supporto
  1. Un record ha un prompt di sistema di 300 token, 14 scambi precedenti di circa 600 token ciascuno e una domanda finale più la risposta di destinazione di 400 token: 300 + 8.400 + 400 = 9.100 token.
  2. Il limite per esempio del provider per questo modello è di 8.192 token, quindi il record è troppo lungo di 908 token.
  3. Il troncamento rimuove prima gli scambi più vecchi. Eliminandone due (circa 1.200 token) il record si riduce a circa 7.900 token.
  4. Il prompt di sistema, i dodici scambi più recenti e la risposta di destinazione vengono conservati, in modo che il modello impari comunque la risposta nella situazione che l'ha prodotta.

Errori comuni

  • Presumere che un modello con un'ampia finestra di contesto si addestri su record altrettanto lunghi.
  • Dimenticare che la risposta deve rientrare nella finestra insieme all'input.
  • Riempire il prompt con ogni documento disponibile partendo dal presupposto che un contesto maggiore sia sempre migliore.
  • Scartare del tutto le conversazioni lunghe quando il troncamento dei turni più vecchi avrebbe mantenuto una destinazione utile.

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.orgDimostra che le informazioni al centro di un input lungo vengono utilizzate in modo meno affidabile.
  2. 02RULER: What's the Real Context Size of Your Long-Context Language Models?Hsieh et al., 2024 · arXiv · arxiv.orgMisura quanto al di sotto delle finestre pubblicizzate i modelli rimangono affidabili.
  3. 03Attention Is All You NeedVaswani et al., 2017 · arXiv · arxiv.orgIl documento sui Transformer, da cui deriva l'attenzione sull'intero contesto.
  4. 04Context windowsClaude Platform Docs · platform.claude.comLa spiegazione di un provider su come input e output condividono la finestra.

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