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 un recupero quasi perfetto (>99%), sblocca molti nuovi casi d'uso e paradigmi di sviluppo.

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, esplorerai brevemente le nozioni di base della finestra contestuale, il modo in cui gli sviluppatori dovrebbero pensare al contesto lungo, vari casi d'uso reali per il contesto lungo e i modi per ottimizzare l'utilizzo del contesto lungo.

Cos'è una finestra contestuale?

Il modo di base per utilizzare i modelli Gemini è passare informazioni (contesto) al modello, che successivamente genererà una risposta. Una finestra contestuale è analoga alla memoria a breve termine. La quantità di informazioni che può essere memorizzata nella memoria a breve termine di una persona è limitata, così come per i modelli generativi.

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

Inizia 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 spinto questo limite accettando 32.000 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:

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

Anche se i modelli possono accettare 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.

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

  • Eliminare arbitrariamente i vecchi messaggi / testi dalla finestra contestuale man mano che ne arrivano di nuovi
  • Riassumere i contenuti precedenti e sostituirli con il riepilogo quando la finestra contestuale si avvicina al riempimento
  • Utilizzare RAG con la ricerca semantica per spostare i dati dalla finestra contestuale a un database vettoriale
  • Utilizzare filtri deterministici o generativi per rimuovere determinati testi/caratteri dai prompt per salvare i token

Anche se molte di queste sono ancora pertinenti in alcuni casi, il punto di partenza predefinito è ora semplicemente 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 apprendimento in-context. Ad esempio, con solo materiali didattici (una grammatica di riferimento di 500 pagine, un dizionario e circa 400 frasi parallele aggiuntive) forniti 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 fare con il contesto lungo e le funzionalità di apprendimento in-context di Gemini.

Casi d'uso del contesto lungo

Anche se il caso d'uso standard per la maggior parte dei modelli generativi è 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 accompagnati dall'API Gemini Enterprise per Gemini, che accetta tipi di file multimodali per comodità.

Testo in formato lungo

Il testo si è dimostrato il livello di intelligence alla base di gran parte dello slancio dei modelli LLM. Come accennato in precedenza, gran parte della limitazione pratica dei modelli LLM era dovuta al fatto di non avere una finestra contestuale sufficientemente grande per eseguire 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 corpus di testo
    • Le opzioni di riepilogo 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 nuovi token vengono passati al modello
  • Domande e risposte
    • Storicamente, ciò era possibile solo con RAG, data la quantità limitata di contesto e il richiamo fattuale dei modelli era basso
  • Workflow agentici
    • 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-context many-shot è una delle funzionalità più esclusive sbloccate dai modelli di contesto lungo. La ricerca ha dimostrato che l'adozione del paradigma comune di esempio "single shot" o "multi-shot", in cui al modello vengono presentati uno o pochi esempi di un'attività, e l'aumento di questo paradigma 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 un rendimento simile a quello dei modelli ottimizzati per un'attività specifica. Per i casi d'uso in cui il rendimento di un modello Gemini non è ancora sufficiente per un lancio in produzione, puoi provare l'approccio many-shot. Come potresti esplorare più avanti nella sezione di ottimizzazione del contesto lungo, la memorizzazione nella cache del contesto rende questo tipo di workload con token di input elevati molto più fattibile dal punto di vista economico e persino con una latenza inferiore in alcuni casi.

Video in formato lungo

L'utilità dei contenuti video è stata a lungo limitata dalla mancanza di accessibilità del mezzo stesso. Era difficile sfogliare 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 in contesto lungo si traducono nella capacità di ragionare e rispondere a domande su input multimodali con un rendimento costante.

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 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 video associati e poi 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 i video vengono elaborati in token, il che influisce sui limiti di fatturazione e utilizzo. Puoi scoprire di più sui prompt con i file video in la guida ai prompt.

Audio in formato lungo

I modelli Gemini sono stati i primi modelli linguistici di grandi dimensioni nativamente multimodali in grado di comprendere l'audio. Storicamente, il workflow tipico degli sviluppatori prevedeva l'unione di più modelli specifici del dominio, come un modello di conversione della voce in testo e un modello da testo a 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 alle architetture disconnesse della configurazione di più modelli.

Nelle valutazioni standard di audio-haystack, Gemini 1.5 Pro è in grado di trovare l' audio nascosto nel 100% dei test e Gemini 1.5 Flash è in grado di trovarlo 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 test set di clip audio di 15 minuti, Gemini 1.5 Pro archivia un tasso di errore di parole (WER) di circa il 5,5%, molto inferiore anche ai modelli di conversione della voce in testo specializzati, senza la complessità aggiuntiva della segmentazione e della pre-elaborazione degli input aggiuntivi.

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

Puoi scoprire di più sui prompt con i file audio nella guida ai prompt.

Ottimizzazioni del contesto lungo

L'ottimizzazione principale quando lavori con il contesto lungo e i modelli Gemini è l'utilizzo della memorizzazione nella cache del contesto. Oltre alla precedente impossibilità 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 lavorare con uno strumento/framework di generazione RAG (Retrieval Augmented Generation) più complesso per elaborare queste richieste e pagare una quantità significativa di 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 chatta abbastanza con i suoi dati, diventa un enorme risparmio sui costi per te come sviluppatore.

Limitazioni del contesto lungo

In varie sezioni di questa guida, abbiamo parlato di come i modelli Gemini raggiungono un rendimento elevato in varie valutazioni di recupero di un ago in un pagliaio. Questi test considerano la configurazione più semplice, in cui hai un singolo ago 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. È importante tenerlo presente perché esiste un compromesso intrinseco tra il recupero delle informazioni corrette e il costo. Puoi ottenere circa il 99% su 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 un rendimento elevato.

Passaggi successivi

Guida

Utilizza l'SDK Google Gen AI per elencare i token e i relativi ID token di un prompt e ottenere un conteggio totale dei token di un prompt.