Contesto lungo

Gemini è dotato di una finestra contestuale da 1 milione di token. Storicamente, i modelli linguistici di grandi dimensioni (LLM) erano notevolmente limitati dalla quantità di testo (o token) che poteva essere passata al modello contemporaneamente. La finestra contestuale lunga di Gemini, con recupero quasi perfetto (>99%), apre 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à subito con il contesto lungo.

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

Cos'è una finestra contestuale?

Il modo di base in cui utilizzi i modelli Gemini è quello di passare informazioni (contesto) al modello, che successivamente genererà una risposta. Un'analogia per la finestra contestuale è la memoria a breve termine. La quantità di informazioni che possono essere memorizzate nella memoria a breve termine di una persona è limitata, e lo stesso vale per i modelli generativi.

Per saperne di più sul funzionamento dei modelli, consulta la 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 ulteriormente ampliato questo limite accettando 32.000 token o 128.000 token. Gemini è 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 sarebbe simile a:

  • 50.000 righe di codice (con gli 80 caratteri standard per riga)
  • Tutti i messaggi inviati negli ultimi 5 anni
  • 8 romanzi in inglese di lunghezza media
  • 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ù il caso.

Alcune strategie comuni per gestire la limitazione delle piccole finestre contestuali includono:

  • Eliminazione arbitraria di vecchi messaggi / testi dalla finestra contestuale man mano che arrivano nuovi testi
  • Riassumere i contenuti precedenti e sostituirli con il riepilogo quando la finestra contestuale si avvicina al riempimento
  • Utilizzo di RAG con la ricerca semantica per spostare i dati dalla finestra contestuale a 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 alcuni casi, il punto di partenza predefinito è ora quello di inserire tutti i token nella finestra contestuale. Poiché i modelli Gemini sono stati creati appositamente con una finestra contestuale lunga, sono molto più capaci di apprendere nel contesto. Ad esempio, con solo materiali didattici (una grammatica di riferimento di 500 pagine, un dizionario e circa 400 frasi parallele aggiuntive) forniti tutti 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 dagli stessi materiali.

Questo esempio sottolinea come puoi iniziare a pensare a cosa è possibile con il contesto lungo e le funzionalità di apprendimento in-context di Gemini.

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 consente un nuovo paradigma di casi d'uso multimodali. Questi modelli possono comprendere in modo nativo testo, video, audio e immagini. Sono accompagnate dall'API Vertex AI per Gemini, che accetta tipi di file multimodali per comodità.

Testo in formato lungo

Il testo si è dimostrato il livello di intelligenza alla base di gran parte dell'entusiasmo per gli LLM. Come accennato in precedenza, gran parte delle limitazioni pratiche degli LLM era dovuta al fatto di non avere una finestra contestuale 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 aprono nuovi casi d'uso.

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

  • Riassumere grandi corpus di testo
    • Le precedenti opzioni di riepilogo con modelli contestuali più piccoli richiedevano una finestra scorrevole o un'altra tecnica per mantenere lo stato delle sezioni precedenti man mano che nuovi token vengono passati al modello
  • Domande e risposte
    • Storicamente, questo era possibile solo con RAG, data la quantità limitata di contesto e il basso richiamo fattuale dei modelli
  • Workflow agentici
    • Il testo è alla base del modo in cui gli agenti tengono traccia di ciò che hanno fatto e di ciò che devono fare. La mancanza di informazioni sul mondo e sull'obiettivo dell'agente è una limitazione all'affidabilità degli agenti.

L'apprendimento in-context many-shot è una delle funzionalità più esclusive sbloccate dai modelli con contesto lungo. La ricerca ha dimostrato che prendere il paradigma comune di esempio "single shot" o "multi-shot", in cui al modello vengono presentati uno o pochi esempi di un'attività, e aumentarlo fino a centinaia, migliaia o persino centinaia di migliaia di esempi, può portare a nuove funzionalità del modello. È stato inoltre dimostrato che questo approccio many-shot ha prestazioni simili a quelle dei modelli ottimizzati per un'attività specifica. Per i casi d'uso in cui le prestazioni di un modello Gemini non sono ancora sufficienti per l'implementazione in produzione, puoi provare l'approccio many-shot. Come vedrai più avanti nella sezione sull'ottimizzazione del contesto lungo, la memorizzazione nella cache del contesto rende questo tipo di workload con un numero elevato di token di input molto più fattibile dal punto di vista economico e con una latenza ancora più bassa in alcuni casi.

Video nel formato lungo

L'utilità dei contenuti video è stata a lungo limitata dalla mancanza di accessibilità del mezzo stesso. Era difficile scorrere rapidamente i contenuti, le trascrizioni spesso non riuscivano a cogliere le sfumature di un video e la maggior parte degli strumenti non elabora immagini, testo e audio insieme. Con Gemini, le funzionalità di testo con contesto lungo si traducono nella capacità di ragionare e rispondere a domande su input multimodali con prestazioni costanti.

Alcuni casi d'uso emergenti e standard per il contesto lungo dei video includono:

  • Domande e risposte sui video
  • Memoria video, come mostrato con il progetto Astra di Google
  • Sottotitolaggio codificato dei video
  • Sistemi di consigli sui video, arricchendo i metadati esistenti con una nuova comprensione multimodale
  • Personalizzazione dei video, esaminando un corpus di dati e i metadati dei video associati e rimuovendo 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 sui limiti di fatturazione e utilizzo. Puoi scoprire di più sui prompt con i file video nella Guida ai prompt.

Audio nel formato lungo

I modelli Gemini sono stati i primi modelli linguistici di grandi dimensioni nativamente multimodali in grado di comprendere l'audio. Storicamente, il flusso di lavoro tipico degli sviluppatori prevedeva l'utilizzo di più modelli specifici del dominio, come un modello di sintesi vocale e un modello di conversione del testo in testo, per elaborare l'audio. Ciò ha comportato una latenza aggiuntiva richiesta dall'esecuzione di più richieste di andata e ritorno e una riduzione del rendimento solitamente attribuita ad architetture disconnesse della configurazione di più modelli.

Nelle valutazioni standard audio-haystack, 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 a quello dei modelli specializzati di sintesi vocale, senza la complessità aggiuntiva di segmentazione e pre-elaborazione degli input.

Alcuni casi d'uso emergenti e standard per il contesto audio includono:

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

Per scoprire di più sui prompt con file audio, consulta la guida ai prompt.

Ottimizzazioni del contesto lungo

L'ottimizzazione principale quando si lavora con il contesto esteso e i modelli Gemini consiste nell'utilizzare la memorizzazione nella cache del contesto. Oltre alla precedente impossibilità di elaborare molti token in un'unica 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/framework di generazione aumentata dal recupero (RAG) più complesso per elaborare queste richieste e pagare un importo significativo per i token spostati nella finestra contestuale. 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 interagisce con i suoi dati a sufficienza, si ottiene un enorme risparmio sui costi per te in qualità di sviluppatore.

Limitazioni del contesto lungo

In varie sezioni di questa guida abbiamo parlato di come i modelli Gemini raggiungano prestazioni elevate in varie valutazioni di recupero di un ago in un pagliaio. Questi test prendono in considerazione la configurazione più semplice, in cui hai un'unica corrispondenza che stai cercando. Nei casi in cui potresti avere più "aghi" o informazioni specifiche che stai cercando, il modello non funziona con la stessa precisione. Il rendimento può variare notevolmente a seconda del contesto. Questo è importante da considerare in quanto esiste un compromesso intrinseco tra il recupero delle informazioni corrette e il costo. Puoi ottenere circa il 99% con una singola query, ma devi pagare il costo dei token di input ogni volta che invii la query. Quindi, per recuperare 100 informazioni, se hai bisogno di un rendimento del 99%, probabilmente dovrai inviare 100 richieste. Questo è un buon esempio di dove la memorizzazione nella cache del contesto può ridurre significativamente il costo associato all'utilizzo dei modelli Gemini, mantenendo al contempo prestazioni elevate.

Passaggi successivi