Sfruttare il Context Caching per Ottimizzare l'Utilizzo di LLM a Lungo Termine
Scopri come sfruttare la funzionalità di caching del contesto di Google nell'API Gemini per ottimizzare l'utilizzo di LLM a lungo termine, ridurre i tempi di elaborazione e i costi. Impara i dettagli di implementazione e i potenziali vantaggi per gli sviluppatori che costruiscono sull'API Gemini.
16 febbraio 2025

Sblocca il potere dei LLM a contesto lungo con l'API Gemini di Google e la sua nuova funzionalità di memorizzazione del contesto. Scopri come questa soluzione innovativa può ridurre significativamente i tempi di elaborazione, la latenza e i costi, rendendo più facile sfruttare grandi set di dati nelle tue applicazioni AI. Esplora i dettagli di implementazione pratica e impara a sfruttare efficacemente questa tecnologia rivoluzionaria.
Comprendere la memorizzazione nella cache e i suoi vantaggi
Esplorare il processo di memorizzazione nella cache
Comprendere i limiti e i costi dei token
Implementare la memorizzazione nella cache con esempi di codice
Gestire gli aggiornamenti e la scadenza della cache
Conclusione
Comprendere la memorizzazione nella cache e i suoi vantaggi
Comprendere la memorizzazione nella cache e i suoi vantaggi
L'aggiunta recente di Google del caching del contesto alla loro API Gemini mira ad affrontare alcune delle principali limitazioni dei modelli di linguaggio a contesto lungo (LLM). Mentre gli LLM possono contenere una quantità significativa di informazioni, soffrono di diversi problemi:
- Tempo di elaborazione aumentato: Con ogni query, l'intero contesto deve essere inviato all'LLM, il che comporta l'elaborazione di una grande quantità di dati, aumentando il tempo di elaborazione.
- Alta latenza: I grandi trasferimenti di dati richiesti per ogni query portano a un'alta latenza.
- Costi più elevati: Poiché i fornitori di API addebitano in base al numero di token, l'aumento del trasferimento di dati comporta costi più elevati.
La funzionalità di caching del contesto di Google cerca di mitigare questi problemi. Ecco come funziona:
- Inizializzazione della cache: Fornisci un'istruzione di sistema o un contesto ampio (ad esempio, documenti, file video, file audio) che desideri memorizzare nella cache.
- Identificazione della cache: Ogni cache ha un identificatore univoco, che può essere considerato il nome della cache, e un parametro "tempo di conservazione" per determinare la scadenza della cache.
- Recupero della cache: Quando l'API Gemini riceve una query dell'utente, analizza i set di dati della cache disponibili, recupera la cache appropriata e la combina con la query dell'utente per l'elaborazione.
Questo approccio offre diversi vantaggi:
- Tempo di elaborazione ridotto: Riutilizzando i dati memorizzati nella cache, il sistema deve elaborare solo la query dell'utente, riducendo il tempo di elaborazione complessivo.
- Latenza inferiore: Inviando solo la query dell'utente, invece dell'intero contesto, si ottiene una latenza inferiore.
- Risparmio sui costi: La riduzione del numero di token inviati con ogni query comporta costi inferiori.
Google afferma che l'utilizzo del caching per un massimo di 2.128.000 token può comportare quasi quattro volte meno costi rispetto all'invio dell'intero contesto con ogni query.
È importante notare che ci sono alcune limitazioni e considerazioni nell'utilizzo del caching del contesto:
- Numero minimo di token di input: Il numero minimo di token di input per il caching del contesto è attualmente impostato a 32.000 token.
- Numero massimo di token: Il numero massimo di token che possono essere memorizzati nella cache è limitato dalla finestra di contesto massima del modello, che è di circa 2 milioni di token sia per i modelli Gemini Pro che Flash.
- Costo di archiviazione: C'è un costo di archiviazione associato ai contenuti memorizzati nella cache, pari a $1 per milione di token all'ora.
Complessivamente, la funzionalità di caching del contesto nell'API Gemini di Google è un'aggiunta preziosa che può migliorare significativamente le prestazioni e l'efficienza in termini di costi delle applicazioni basate su LLM, in particolare per quelle che gestiscono grandi quantità di contesto.
Esplorare il processo di memorizzazione nella cache
Esplorare il processo di memorizzazione nella cache
L'aggiunta recente di Google del caching del contesto all'API Gemini mira ad affrontare le limitazioni dei modelli di linguaggio a contesto lungo. Memorizzando il contesto nella cache, il sistema può ridurre il tempo di elaborazione, la latenza e i costi associati all'invio dell'intero contesto con ogni query.
Il processo di caching funziona come segue:
-
Inizializzazione della cache: Fornisci un'istruzione di sistema o un contesto ampio (ad esempio, documenti, file video, file audio) che desideri memorizzare nella cache. Ogni cache ha un identificatore univoco e un parametro "tempo di conservazione" per determinare la scadenza della cache.
-
Archiviazione della cache: Il sistema di archiviazione interno dell'API Gemini, ottimizzato per un rapido recupero, memorizza i dati memorizzati nella cache.
-
Elaborazione delle query: Quando l'API Gemini riceve una query dell'utente, analizza i set di dati della cache disponibili, identifica la cache appropriata in base all'identificatore univoco e verifica la validità della cache controllando il parametro "tempo di conservazione". L'API quindi combina i dati memorizzati nella cache e la query dell'utente come input per l'elaborazione.
-
Riduzione dei costi e della latenza: Utilizzando i dati memorizzati nella cache, il sistema riduce il numero di token inviati con ogni query, portando a un tempo di elaborazione e a costi inferiori. Google stima che l'utilizzo del caching per un massimo di 2.128.000 token può comportare quasi quattro volte meno costi rispetto all'invio dell'intero contesto con ogni query.
-
Costo di archiviazione: Il costo di archiviazione per i contenuti memorizzati nella cache è di $1 per milione di token all'ora. Il costo totale dipende da fattori come il numero di token della cache e il parametro "tempo di conservazione".
-
Modelli supportati: Il caching del contesto è attualmente supportato sia dai modelli Gemini Pro che Gemini Flash.
-
Token minimi e massimi: Il numero minimo di token di input per il caching del contesto è di 32.000 token, mentre il massimo è la finestra di contesto massima del modello, che è di circa 2 milioni di token sia per Gemini Pro che per Gemini Flash.
Utilizzando il caching del contesto, gli sviluppatori possono ottimizzare l'utilizzo dell'API Gemini, riducendo i costi e migliorando le prestazioni, in particolare per le applicazioni che richiedono frequenti query su grandi set di dati.
Comprendere i limiti e i costi dei token
Comprendere i limiti e i costi dei token
Quando si utilizza la funzionalità di caching del contesto nell'API Gemini, ci sono alcune considerazioni importanti riguardo ai limiti dei token e ai costi:
-
Numero minimo di token di input: Il numero minimo di token di input per il caching del contesto è di 32.000 token. Ciò significa che dovrai memorizzare nella cache almeno 32.000 token perché la funzionalità funzioni.
-
Numero massimo di token: Il numero massimo di token che puoi memorizzare nella cache è la finestra di contesto massima del modello dato. Per entrambi i modelli Gemini Pro e Flash, questo è di circa 2 milioni di token.
-
Costo di archiviazione: Il costo di archiviazione per i contenuti memorizzati nella cache è di $1 per milione di token all'ora. Questo costo è aggiuntivo rispetto alle normali spese di utilizzo dell'API.
-
Tempo di conservazione (TTL): Quando crei una cache, puoi specificare un parametro "tempo di conservazione" per determinare per quanto tempo la cache deve essere mantenuta. Se non fornisci un valore, il valore predefinito è 1 ora. Il TTL minimo è di 60 secondi.
-
Conteggio dei token: Quando si utilizza il contenuto memorizzato nella cache, il conteggio totale dei token include sia i token memorizzati nella cache che i nuovi token di input dalla query dell'utente. Questo conteggio combinato dei token viene utilizzato ai fini della fatturazione.
-
Disponibilità del caching: Il caching del contesto è attualmente supportato sia dai modelli Gemini Pro che Flash.
Comprendendo questi limiti di token e considerazioni sui costi, puoi sfruttare efficacemente la funzionalità di caching del contesto per ridurre il tempo di elaborazione e i costi quando utilizzi l'API Gemini.
Implementare la memorizzazione nella cache con esempi di codice
Implementare la memorizzazione nella cache con esempi di codice
Per implementare il caching con l'API Gemini, dovremo seguire questi passaggi:
-
Installa i pacchetti richiesti:
!pip install google-generative-ai-client pdfplumber
-
Importa i moduli necessari:
from google.generative.v1 import GenerativeAIClient from google.generative.v1.types import CachedContent import markdown import pdfplumber
-
Imposta il client API Gemini con la tua chiave API Google:
api_key = "your_google_api_key" client = GenerativeAIClient(credentials=api_key)
-
Carica il contenuto del PDF e convertilo in una singola stringa:
with pdfplumber.open("path/to/your/pdf/file.pdf") as pdf: pages = [page.extract_text() for page in pdf.pages] content = "\n".join(pages) print(f"Numero totale di pagine: {len(pages)}") print(f"Numero totale di parole: {len(content.split())}") print(f"Numero totale di token: {len(content.split())}")
-
Crea un oggetto di contenuto memorizzato nella cache e archivialo:
cached_content = CachedContent( model_name="gemini-1.5-flash", system_instruction="Sei un esperto di sistemi rack. Rispondi alle domande in base al testo fornito.", content=content, time_to_live_seconds=7200 # 2 ore ) model = client.from_cached_content(cached_content, name="my-rack-system-cache")
-
Utilizza il modello memorizzato nella cache per rispondere alle domande:
queries = [ "Cos'è un rack? Quali sono i principali componenti?", "Come si usa HuggingFace in LangChain? Fornisci esempi di codice.", "Come funziona il routing in LangChain?" ] for query in queries: response = model.generate_text(prompt=query) print(markdown.markdown(response.generated_text)) print(f"Numero totale di token utilizzati: {response.total_tokens}")
-
Gestisci la cache:
# Aggiorna il tempo di conservazione della cache model.update_cached_content(time_to_live_seconds=14400) # 4 ore # Elenca tutti i contenuti memorizzati nella cache cached_contents = client.list_cached_contents() for cached_content in cached_contents: print(f"Nome: {cached_content.name}") print(f"Creato: {cached_content.created_timestamp}") print(f"Scade: {cached_content.expires_timestamp}") # Elimina un contenuto memorizzato nella cache client.delete_cached_content(name="my-rack-system-cache")
Questo codice dimostra come implementare il caching con l'API Gemini, incluso il caricamento del contenuto da un file PDF, la creazione di un oggetto di contenuto memorizzato nella cache, l'utilizzo del modello memorizzato nella cache per rispondere alle domande e la gestione della cache (aggiornamento del tempo di conservazione ed eliminazione dei contenuti memorizzati nella cache).
Gestire gli aggiornamenti e la scadenza della cache
Gestire gli aggiornamenti e la scadenza della cache
Per gestire gli aggiornamenti e la scadenza della cache, vengono trattati i seguenti punti chiave:
-
Aggiornamento del tempo di conservazione (TTL) della cache: Puoi aggiornare il TTL di una cache chiamando la funzione
update()
sull'oggetto cache e fornendo un nuovo valore di TTL. Ciò ti consente di estendere il tempo di scadenza del contenuto memorizzato nella cache. -
Visualizzazione dei metadati della cache: Sebbene non sia possibile recuperare o visualizzare direttamente il contenuto memorizzato nella cache, puoi accedere ai metadati sulla cache, come il numero totale di token utilizzati, il numero di token dalla query e il numero di token candidati generati dal modello.
-
Elenco dei contenuti memorizzati nella cache: Puoi elencare tutti i contenuti memorizzati nella cache che hai creato accedendo all'attributo
cache_contents
del client Gemini. Questo ti mostra i nomi, i tempi di creazione e i tempi di scadenza di ogni cache. -
Eliminazione delle cache: Se vuoi eliminare una cache prima del suo tempo di scadenza, puoi chiamare la funzione
delete()
sull'oggetto cache. Questo rimuoverà il contenuto memorizzato nella cache dal sistema.
Gestendo gli aggiornamenti e la scadenza della cache, puoi ottimizzare l'utilizzo della funzionalità di caching per ridurre i costi e migliorare le prestazioni quando lavori con l'API Gemini.
Conclusione
Conclusione
L'introduzione del caching del contesto nell'API Gemini di Google è uno sviluppo significativo che affronta alcune delle principali limitazioni dei modelli di linguaggio a contesto lungo. Consentendo agli utenti di memorizzare nella cache grandi quantità di dati di contesto, l'API può ridurre il tempo di elaborazione, diminuire la latenza e diminuire i costi associati alla fatturazione basata sui token.
Il sistema di caching funziona consentendo agli utenti di inizializzare una cache con un ampio set di dati, come documenti, file video o file audio. Ogni cache ha un identificatore univoco e un parametro di tempo di conservazione, che determina per quanto tempo la cache verrà memorizzata. Quando viene ricevuta una query dell'utente, l'API analizza le cache disponibili, combina i dati memorizzati nella cache con la query dell'utente ed elabora l'input per generare una risposta.
I vantaggi di questo approccio sono duplici. In primo luogo, inviando solo la query dell'utente invece dell'intero contesto, la quantità di dati trasferiti viene notevolmente ridotta, portando a una latenza inferiore. In secondo luogo, i risparmi sui costi possono essere sostanziali, poiché l'API addebita per token e il caching può ridurre il numero di token richiesti per ogni query fino a quattro volte.
Sebbene l'attuale implementazione del caching del contesto nell'API Gemini abbia alcune limitazioni, come un numero minimo di token di input di 32.000, è un passo avanti promettente. Man mano che la tecnologia matura, possiamo aspettarci ulteriori miglioramenti, come requisiti di token minimi più bassi e potenzialmente anche una latenza ridotta.
Complessivamente, l'introduzione del caching del contesto nell'API Gemini è uno sviluppo benvenuto che può essere di grande beneficio per gli sviluppatori che lavorano con modelli di linguaggio su larga scala. Affrontando alcune delle sfide chiave, questa funzionalità ha il potenziale per sbloccare nuovi
FAQ
FAQ