Contesto lungo

Gemini 1.5 Flash è dotato di una finestra contestuale da 1 milione di token e Gemini 1.5 Pro è dotato di una finestra contestuale da 2 milioni di token. In passato, i modelli linguistici di grandi dimensioni (LLM) erano notevolmente limitati dalla quantità di testo (o token) che potevano essere passati al modello contemporaneamente. La finestra contestuale lunga di Gemini 1.5, con un recupero quasi perfetto (> 99%), consente di accedere a molti nuovi casi d'uso e paradigmi per gli sviluppatori.

Il codice che utilizzi già per casi come la generazione di contenuti o gli input multimodali funzionerà immediatamente con il contesto lungo.

In questa guida vengono esplorate brevemente le nozioni di base della finestra di contesto, il modo in cui gli sviluppatori devono considerare il contesto lungo, vari casi d'uso reali per il contesto lungo e i modi per ottimizzarne l'utilizzo.

Che cos'è una finestra di contesto?

Il modo di base per utilizzare i modelli Gemini 1.5 è trasmettere informazioni (contesto) al modello, che successivamente genererà una risposta. Un'analogia per la finestra di contesto è la memoria a breve termine. La memoria a breve termine di una persona può memorizzare una quantità limitata di informazioni e lo stesso vale per i modelli generativi.

Puoi scoprire di più sul funzionamento dei modelli nella nostra guida ai modelli generativi.

Iniziare a utilizzare il contesto lungo

La maggior parte dei modelli generativi creati negli ultimi anni era in grado di elaborare solo 8000 token alla volta. I modelli più recenti hanno fatto un ulteriore passo avanti accettando 32.000 token o 128.000 token. Gemini 1.5 è il primo modello in grado di accettare 1 milione di token e ora 2 milioni di token con Gemini 1.5 Pro.

In pratica, 1 milione di token corrisponde a:

  • 50.000 righe di codice (con gli 80 caratteri per riga standard)
  • Tutti i messaggi che hai inviato negli ultimi 5 anni
  • 8 romanzi in inglese di media lunghezza
  • Trascrizioni di oltre 200 puntate di podcast di durata media

Anche se i modelli possono acquisire sempre più contesto, gran parte della saggezza convenzionale sull'utilizzo dei modelli linguistici di grandi dimensioni presuppone questa limitazione intrinseca del modello, che a partire dal 2024 non è più valida.

Ecco alcune strategie comuni per gestire la limitazione delle piccole finestre di contesto:

  • Rimozione arbitraria di vecchi messaggi / testo dalla finestra del contesto man mano che viene inserito nuovo testo
  • Riassumere i contenuti precedenti e sostituirli con il riepilogo quando la finestra di contesto sta per essere completa
  • Utilizzo della RAG con la ricerca semantica per spostare i dati dalla finestra di contesto in un database vettoriale
  • Utilizzo di filtri deterministici o generativi per rimuovere determinati testi/ caratteri dai prompt per risparmiare token

Sebbene molti di questi siano ancora pertinenti in determinati casi, ora il punto di partenza predefinito è inserire tutti i token nella finestra di contesto. Poiché i modelli Gemini 1.5 sono stati appositamente progettati con una finestra contestuale lunga, sono molto più in grado di apprendere in contesto. Ad esempio, con solo materiale didattico (una grammatica di riferimento di 500 pagine, un dizionario e circa 400 frasi parallele aggiuntive) fornito nel contesto, Gemini 1.5 Pro e Gemini 1.5 Flash sono in grado di imparare a tradurre dall'inglese al kalamang, una lingua papuana con meno di 200 parlanti e quindi quasi nessuna presenza online, con una qualità simile a quella di una persona che ha imparato con gli stessi materiali.

Questo esempio sottolinea come puoi iniziare a pensare a cosa è possibile fare con il contesto lungo e le funzionalità di apprendimento contestuale di Gemini 1.5.

Casi d'uso con contesto lungo

Sebbene il caso d'uso standard per la maggior parte dei modelli generativi sia ancora l'input di testo, la famiglia di modelli Gemini 1.5 consente un nuovo paradigma di casi d'uso multimodali. Questi modelli possono comprendere in modo nativo testo, video, audio e immagini. Per comodità, sono accompagnati dall'API Vertex AI per Gemini che accetta tipi di file multimodali.

Testo nel formato lungo

Il testo si è dimostrato il livello di intelligenza alla base di gran parte del fermento intorno agli LLM. Come accennato in precedenza, gran parte della limitazione pratica degli LLM era dovuta al fatto che non disponevano di una finestra di contesto sufficientemente grande per svolgere determinate attività. Ciò ha portato alla rapida adozione della generazione RAG (Retrieval Augmented Generation) e di altre tecniche che forniscono dinamicamente al modello informazioni contestuali pertinenti. Ora, con finestre contestuali sempre più grandi (attualmente fino a 2 milioni su Gemini 1.5 Pro), sono disponibili nuove tecniche che sbloccano nuovi casi d'uso.

Alcuni casi d'uso emergenti e standard per il contesto lungo basato su testo includono:

  • Riassumere grandi corpora di testo
    • Le opzioni di sintesi precedenti con modelli di contesto più piccoli richiedevano una finestra scorrevole o un'altra tecnica per mantenere lo stato delle sezioni precedenti man mano che i nuovi token vengono passati al modello
  • Domande e risposte
    • In passato, questo era possibile solo con RAG, data la quantità limitata di contesto e il basso richiamo fattuale dei modelli
  • Flussi di lavoro agenti
    • Il testo è alla base del modo in cui gli agenti mantengono lo stato di ciò che hanno fatto e di ciò che devono fare; non avere informazioni sufficienti sul mondo e sull'obiettivo dell'agente è una limitazione dell'affidabilità degli agenti

L'apprendimento in contesto con molti esempi è una delle funzionalità più uniche sbloccate dai modelli con contesto lungo. La ricerca ha dimostrato che adottare il paradigma comune degli esempi "single shot" o "multi-shot", in cui al modello vengono presentati uno o pochi esempi di un'attività, e scalarlo fino a centinaia, migliaia o addirittura centinaia di migliaia di esempi può portare a nuove funzionalità del modello. È stato dimostrato che questo approccio con molti esempi ha un rendimento simile ai modelli ottimizzati per un'attività specifica. Per i casi d'uso in cui le prestazioni di un modello Gemini non sono ancora sufficienti per un implementazione in produzione, puoi provare l'approccio con più scatti. Come vedrai più avanti nella sezione sull'ottimizzazione del contesto lungo, la memorizzazione nella cache del contesto rende questo tipo di carico di lavoro con token di input elevato molto più economicamente fattibile e, in alcuni casi, anche con una latenza inferiore.

Video nel formato lungo

L'utilità dei contenuti video è stata a lungo limitata dalla scarsa accessibilità del mezzo stesso. Era difficile dare un'occhiata ai contenuti, le trascrizioni spesso non riuscivano a cogliere le sfumature di un video e la maggior parte degli strumenti non elaborava insieme immagini, testo e audio. Con Gemini 1.5, le funzionalità di testo con contesto lungo si traducono nella capacità di ragionare e rispondere a domande su input multimodali con un rendimento costante. Gemini 1.5 Flash, quando testato per trovare l'ago in un problema con una serie di video con 1 milione di token, ha ottenuto un recupero del video superiore al 99, 8% nella finestra contestuale e 1.5 Pro ha raggiunto prestazioni all'avanguardia sul benchmark Video-MME.

Ecco alcuni casi d'uso emergenti e standard per il contesto dei video nel formato lungo:

  • Domande e risposte sui video
  • Memoria video, come mostrato con Project Astra di Google
  • Sottotitoli codificati per i video
  • I sistemi di consigli sui video, arricchendo i metadati esistenti con nuove informazioni multimodali
  • Personalizzazione dei video, analizzando un corpus di dati e metadati associati ai video, per poi rimuovere le parti dei video non pertinenti per lo spettatore
  • Moderazione dei contenuti video
  • Elaborazione video in tempo reale

Quando lavori con i video, è importante considerare come vengono elaborati in token, il che influisce su fatturazione e limiti di utilizzo. Per scoprire di più sui prompt con i file video, consulta la guida ai prompt.

Audio nel formato lungo

I modelli Gemini 1.5 sono stati i primi modelli linguistici di grandi dimensioni multimodali nativi in grado di comprendere l'audio. In passato, il flusso di lavoro tipico degli sviluppatori prevedeva di collegare più modelli specifici del dominio, come un modello di conversione della voce in testo e un modello di conversione del testo in testo, per elaborare l'audio. Ciò ha comportato una latenza aggiuntiva necessaria per l'esecuzione di più richieste di andata e ritorno e una riduzione delle prestazioni solitamente attribuita alle architetture disconnesse della configurazione di più modelli.

Nelle valutazioni standard del mucchio di audio, Gemini 1.5 Pro è in grado di trovare l'audio nascosto nel 100% dei test e Gemini 1.5 Flash nel 98,7% dei test. Gemini 1.5 Flash accetta fino a 9,5 ore di audio in una singola richiesta e Gemini 1.5 Pro può accettare fino a 19 ore di audio utilizzando la finestra contestuale da 2 milioni di token. Inoltre, su un set di test di clip audio di 15 minuti, Gemini 1.5 Pro registra un tasso di errore di parola (WER) di circa il 5,5%, molto inferiore anche ai modelli di conversione da voce a testo specializzati, senza la complessità aggiuntiva della segmentazione e della pre-elaborazione degli input.

Ecco alcuni casi d'uso emergenti e standard per il contesto audio:

  • Trascrizione e traduzione in tempo reale
  • Domande e risposte su podcast / video
  • Trascrizione e riepilogo delle riunioni
  • Assistenti vocali

Puoi scoprire di più sui prompt con file audio nelle guide ai prompt.

Ottimizzazioni per i contesti lunghi

L'ottimizzazione principale quando si lavora con il contesto lungo e i modelli Gemini 1.5 è l'utilizzo della cache del contesto. Oltre all'impossibilità precedente di elaborare molti token in una singola richiesta, l'altro vincolo principale era il costo. Se hai un'app "chatta con i tuoi dati" in cui un utente carica 10 PDF, un video e alcuni documenti di lavoro, in passato avresti dovuto utilizzare uno strumento/un framework di generazione di dati aumentati per il recupero (RAG) più complesso per elaborare queste richieste e pagare una cifra significativa per i token spostati nella finestra di contesto. Ora puoi memorizzare nella cache i file caricati dall'utente e pagare per archiviarli su base oraria. Il costo di input / output per richiesta è inferiore al costo di input / output standard, quindi se l'utente chatta abbastanza con i suoi dati, si tratta di un enorme risparmio per te come sviluppatore.

Limitazioni per i contesti lunghi

In varie sezioni di questa guida abbiamo parlato di come i modelli Gemini 1.5 raggiungono un rendimento elevato in varie valutazioni di recupero di informazioni nascoste. Questi test prendono in considerazione la configurazione più di base, in cui hai un singolo needle che stai cercando. Se potresti avere più "aghi" o informazioni specifiche che stai cercando, il modello non funziona con la stessa accuratezza. Il rendimento può variare in misura significativa a seconda del contesto. È importante tenerlo presente perché esiste un compromesso intrinseco tra il recupero delle informazioni giuste e il costo. Puoi ottenere circa il 99% con una singola query, ma devi pagare il costo del token di input ogni volta che invii la query. Pertanto, per recuperare 100 informazioni, se avessi bisogno del 99% di rendimento, probabilmente dovrai inviare 100 richieste. Questo è un buon esempio di come la memorizzazione nella cache del contesto può ridurre notevolmente il costo associato all'utilizzo dei modelli Gemini mantenendo elevate le prestazioni.

Passaggi successivi