Het gebruik van contextcaching optimaliseren voor langere LLM-toepassingen
Ontdek hoe u de contextcaching-functie van Google in de Gemini-API kunt benutten om het gebruik van langere LLM's te optimaliseren, de verwerkingstijd en kosten te verlagen. Leer de implementatiedetails en potentiële voordelen voor ontwikkelaars die bouwen op de Gemini-API.
16 februari 2025

Ontgrendel de kracht van LLM's met lange context met de Gemini-API van Google en zijn nieuwe functie voor context-caching. Ontdek hoe deze innovatieve oplossing de verwerkingstijd, latentie en kosten aanzienlijk kan verminderen, waardoor het gemakkelijker wordt om grote datasets in uw AI-toepassingen te benutten. Verken de praktische implementatiedetails en leer hoe u deze baanbrekende technologie effectief kunt benutten.
Begrijp caching en de voordelen ervan
Verken het caching-proces
Begrijp token-limieten en kosten
Implementeer caching met codevoorbeelden
Beheer cache-updates en -vervaldatum
Conclusie
Begrijp caching en de voordelen ervan
Begrijp caching en de voordelen ervan
De recente toevoeging van contextcaching aan de Gemini-API van Google is bedoeld om enkele van de belangrijkste beperkingen van taalmodellen met lange context (LLM's) aan te pakken. Hoewel LLM's een aanzienlijke hoeveelheid informatie kunnen vasthouden, hebben ze te kampen met verschillende problemen:
- Verhoogde verwerkingstijd: Bij elke query moet de volledige context naar de LLM worden gestuurd, wat resulteert in het verwerken van een grote hoeveelheid gegevens, wat de verwerkingstijd verhoogt.
- Hoge latentie: De grote gegevensoverdrachten die voor elke query nodig zijn, leiden tot hoge latentie.
- Hogere kosten: Aangezien API-providers factureren op basis van het aantal tokens, leidt de verhoogde gegevensoverdracht tot hogere kosten.
De functie voor contextcaching van Google probeert deze problemen te verhelpen. Zo werkt het:
- Cache initialiseren: U levert een systeeminstructie of een grote context (bijvoorbeeld documenten, video's, audiobestanden) die u wilt cachen.
- Cache-identificatie: Elke cache heeft een unieke identifier, die kan worden beschouwd als de naam van de cache, en een "time to live"-parameter om de vervaldatum van de cache te bepalen.
- Cache ophalen: Wanneer de Gemini-API een gebruikersquery ontvangt, analyseert het de beschikbare cachegegevens, haalt de juiste cache op en combineert deze met de gebruikersquery voor verwerking.
Deze aanpak biedt verschillende voordelen:
- Verminderde verwerkingstijd: Door het hergebruik van de gecachete gegevens hoeft het systeem alleen de gebruikersquery te verwerken, wat de totale verwerkingstijd vermindert.
- Lagere latentie: Het verzenden van alleen de gebruikersquery, in plaats van de volledige context, resulteert in lagere latentie.
- Kostenbesparingen: Het verminderen van het aantal tokens dat met elke query wordt verzonden, leidt tot lagere kosten.
Google claimt dat het gebruik van caching voor maximaal 2.128.000 tokens bijna vier keer minder kost in vergelijking met het verzenden van de volledige context met elke query.
Het is belangrijk om op te merken dat er enkele beperkingen en overwegingen zijn bij het gebruik van contextcaching:
- Minimaal aantal invoertokens: Het minimale aantal invoertokens voor contextcaching is momenteel ingesteld op 32.000 tokens.
- Maximaal aantal tokens: Het maximale aantal tokens dat kan worden gecacht, wordt beperkt door het maximale contextvenster van het model, dat ongeveer 2 miljoen tokens is voor zowel de Gemini Pro- als de Flash-modellen.
- Opslagkosten: Er zijn opslagkosten verbonden aan de gecachete inhoud, namelijk $1 per miljoen tokens per uur.
Over het geheel genomen is de functie voor contextcaching in de Gemini-API van Google een waardevolle toevoeging die de prestaties en kosteneffectiviteit van LLM-gebaseerde toepassingen aanzienlijk kan verbeteren, vooral voor toepassingen die te maken hebben met grote hoeveelheden context.
Verken het caching-proces
Verken het caching-proces
De recente toevoeging van contextcaching aan de Gemini-API van Google is bedoeld om de beperkingen van taalmodellen met lange context aan te pakken. Door de context te cachen, kan het systeem de verwerkingstijd, latentie en kosten verminderen die gepaard gaan met het verzenden van de volledige context bij elke query.
Het cacheproces verloopt als volgt:
-
Cache initialiseren: U levert een systeeminstructie of een grote context (bijvoorbeeld documenten, video's, audiobestanden) die u wilt cachen. Elke cache heeft een unieke identifier en een "time to live"-parameter om de vervaldatum van de cache te bepalen.
-
Cache opslaan: Het interne opslagsysteem van de Gemini-API, geoptimaliseerd voor snelle ophaling, slaat de gecachete gegevens op.
-
Query verwerken: Wanneer de Gemini-API een gebruikersquery ontvangt, analyseert het de beschikbare cachegegevens, identificeert het de juiste cache op basis van de unieke identifier en controleert het de geldigheid van de cache door de "time to live"-parameter te controleren. De API combineert vervolgens de gecachete gegevens en de gebruikersquery als invoer voor verwerking.
-
Verminderde kosten en latentie: Door gebruik te maken van gecachete gegevens, vermindert het systeem het aantal tokens dat met elke query wordt verzonden, wat leidt tot een lagere verwerkingstijd en kosten. Google schat dat het gebruik van caching voor maximaal 2.128.000 tokens bijna vier keer minder kost in vergelijking met het verzenden van de volledige context met elke query.
-
Opslagkosten: De opslagkosten voor de gecachete inhoud bedragen $1 per miljoen tokens per uur. De totale kosten hangen af van factoren zoals het aantal cachetokens en de "time to live"-parameter.
-
Ondersteunde modellen: Contextcaching wordt momenteel ondersteund door zowel de Gemini Pro- als de Gemini Flash-modellen.
-
Minimale en maximale tokens: Het minimale aantal invoertokens voor contextcaching is 32.000 tokens, en het maximum is het maximale contextvenster van het model, dat ongeveer 2 miljoen tokens is voor zowel Gemini Pro als Gemini Flash.
Door gebruik te maken van contextcaching kunnen ontwikkelaars hun gebruik van de Gemini-API optimaliseren, de kosten verlagen en de prestaties verbeteren, vooral voor toepassingen die frequent queries op grote datasets vereisen.
Begrijp token-limieten en kosten
Begrijp token-limieten en kosten
Bij het gebruik van de functie voor contextcaching in de Gemini-API zijn er enkele belangrijke overwegingen met betrekking tot tokenlimieten en kosten:
-
Minimaal aantal invoertokens: Het minimale aantal invoertokens voor contextcaching is 32.000 tokens. Dit betekent dat u minimaal 32.000 tokens moet cachen voor de functie te laten werken.
-
Maximaal aantal tokens: Het maximale aantal tokens dat u kunt cachen, is het maximale contextvenster van het gegeven model. Voor zowel de Gemini Pro- als de Flash-modellen is dit ongeveer 2 miljoen tokens.
-
Opslagkosten: De opslagkosten voor de gecachete inhoud bedragen $1 per miljoen tokens per uur. Deze kosten komen bovenop de reguliere API-gebruikskosten.
-
Time to Live (TTL): Bij het maken van een cache kunt u een "time to live"-parameter opgeven om te bepalen hoe lang de cache moet worden bewaard. Als u geen waarde opgeeft, is de standaardwaarde 1 uur. De minimale TTL is 60 seconden.
-
Tokenaantallen: Bij het gebruik van de gecachete inhoud omvat het totale tokenaantal zowel de gecachete tokens als de nieuwe invoertokens van de gebruikersquery. Dit gecombineerde tokenaantal wordt gebruikt voor facturatiedoeleinden.
-
Beschikbaarheid van caching: Contextcaching wordt momenteel ondersteund door zowel de Gemini Pro- als de Flash-modellen.
Door deze tokenlimieten en kostenafwegingen te begrijpen, kunt u de functie voor contextcaching effectief benutten om de verwerkingstijd en kosten te verminderen bij het gebruik van de Gemini-API.
Implementeer caching met codevoorbeelden
Implementeer caching met codevoorbeelden
Om caching te implementeren met de Gemini-API, moeten we de volgende stappen volgen:
-
Installeer de vereiste pakketten:
!pip install google-generative-ai-client pdfplumber
-
Importeer de benodigde modules:
from google.generative.v1 import GenerativeAIClient from google.generative.v1.types import CachedContent import markdown import pdfplumber
-
Stel de Gemini-API-client in met uw Google API-sleutel:
api_key = "your_google_api_key" client = GenerativeAIClient(credentials=api_key)
-
Laad de PDF-inhoud en converteer deze naar één enkele tekenreeks:
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"Totaal aantal pagina's: {len(pages)}") print(f"Totaal aantal woorden: {len(content.split())}") print(f"Totaal aantal tokens: {len(content.split())}")
-
Maak een gecachete inhoudobject aan en sla deze op:
cached_content = CachedContent( model_name="gemini-1.5-flash", system_instruction="You are an expert on rack systems. Answer questions based on the provided text.", content=content, time_to_live_seconds=7200 # 2 uur ) model = client.from_cached_content(cached_content, name="my-rack-system-cache")
-
Gebruik het gecachete model om vragen te beantwoorden:
queries = [ "What is rack? What are the main components?", "How to use HuggingFace in LangChain? Provide code examples.", "How does routing work in LangChain?" ] for query in queries: response = model.generate_text(prompt=query) print(markdown.markdown(response.generated_text)) print(f"Totaal aantal gebruikte tokens: {response.total_tokens}")
-
Beheer de cache:
# Update de cache-time-to-live model.update_cached_content(time_to_live_seconds=14400) # 4 uur # Lijst alle gecachete inhoud op cached_contents = client.list_cached_contents() for cached_content in cached_contents: print(f"Naam: {cached_content.name}") print(f"Gemaakt: {cached_content.created_timestamp}") print(f"Verloopt: {cached_content.expires_timestamp}") # Verwijder een gecachete inhoud client.delete_cached_content(name="my-rack-system-cache")
Deze code laat zien hoe je caching kunt implementeren met de Gemini-API, inclusief het laden van inhoud uit een PDF-bestand, het maken van een gecachete inhoudobject, het gebruik van het gecachete model om vragen te beantwoorden en het beheren van de cache (het bijwerken van de time-to-live en het verwijderen van gecachete inhoud).
Beheer cache-updates en -vervaldatum
Beheer cache-updates en -vervaldatum
Om updates en vervaldatum van de cache te beheren, worden de volgende belangrijke punten behandeld:
-
Cache-time-to-live (TTL) bijwerken: U kunt de TTL van een cache bijwerken door de
update()
-functie op het cacheobject aan te roepen en een nieuwe TTL-waarde op te geven. Hiermee kunt u de vervaldatum van de gecachete inhoud verlengen. -
Cache-metadata bekijken: Hoewel u de gecachete inhoud niet rechtstreeks kunt ophalen of bekijken, kunt u metadata over de cache opvragen, zoals het totale aantal gebruikte tokens, het aantal tokens uit de prompt en het aantal kandidaattokens dat door het model is gegenereerd.
-
Gecachete inhoud weergeven: U kunt alle gecachete inhoud die u hebt gemaakt, weergeven door de
cache_contents
-eigenschap van de Gemini-client te benaderen. Hiermee krijgt u de namen, aanmaaktijden en vervaldatums van elke cache te zien. -
Caches verwijderen: Als u een cache wilt verwijderen voordat deze verloopt, kunt u de
delete()
-functie op het cacheobject aanroepen. Hiermee wordt de gecachete inhoud uit het systeem verwijderd.
Door het beheer van cache-updates en -vervaldatum te beheren, kunt u het gebruik van de cacheringsfunctie optimaliseren om de kosten te verlagen en de prestaties te verbeteren bij het werken met de Gemini-API.
Conclusie
Conclusie
De introductie van contextcaching in de Gemini-API van Google is een belangrijke ontwikkeling die enkele van de belangrijkste beperkingen van taalmodellen met lange context aanpakt. Door gebruikers in staat te stellen grote hoeveelheden contextgegevens te cachen, kan de API de verwerkingstijd verlagen, de latentie verminderen en de kosten verlagen die gepaard gaan met tokengebaseerde facturering.
Het cacheringssysteem werkt door gebruikers in staat te stellen een cache te initialiseren met een grote dataset, zoals documenten, video's of audiobestanden. Elke cache heeft een unieke identifier en een time-to-live-parameter, die bepaalt hoe lang de cache wordt bewaard. Wanneer een gebruikersquery wordt ontvangen, analyseert de API de beschikbare caches, combineert de gecachete gegevens met de gebruikersquery en verwerkt de invoer om een antwoord te genereren.
De voordelen van deze aanpak zijn tweeledig. Ten eerste leidt het feit dat alleen de gebruikersquery wordt verzonden in plaats van de volledige context tot een aanzienlijke vermindering van de hoeveelheid over te dragen gegevens, wat resulteert in lagere latentie. Ten tweede kunnen de kostenbesparingen aanzienlijk zijn, aangezien de API per token in rekening brengt en caching het aantal benodigde tokens per query met wel vier keer kan verminderen.
Hoewel de huidige implementatie van contextcaching in de Gemini-API enkele beperkingen kent, zoals een minimaal aantal invoertokens van 32.000, is het een veelbelovende stap voorwaarts. Naarmate de technologie zich verder ontwikkelt, kunnen we verdere verbeteringen verwachten, zoals lagere minimale tokenvereisten en mogelijk zelfs verminderde latentie.
Over het geheel genomen is de introductie van contextcaching in de Gemini-API een welkome ontwikkeling die grote voordelen kan bieden voor ontwikkelaars die werken met taalmodellen op grote schaal. Door enkele van de belangrijkste uitdagingen aan te pakken, heeft deze functie de potentie om nieuwe toepassingen te ontgrendelen en verdere innovatie op het gebied van natuurlijke taalverwerking aan te jagen.
FAQ
FAQ