Gemini bietet standardmäßig ein Kontextfenster von 1 Million Tokens. In der Vergangenheit waren Large Language Models (LLMs) durch die Menge an Text (oder Tokens), die gleichzeitig an das Modell übergeben werden konnte, erheblich eingeschränkt. Das große Kontextfenster von Gemini mit nahezu perfektem Abruf (> 99 %) ermöglicht viele neue Anwendungsfälle und Entwicklerparadigmen.
Der Code, den Sie bereits für Anwendungsfälle wie Inhaltsgenerierung oder multimodale Eingaben verwenden, funktioniert sofort mit langen Kontexten.
In diesem Leitfaden werden die Grundlagen des Kontextfensters, die Bedeutung des langen Kontextes für Entwickler, verschiedene reale Anwendungsfälle für den langen Kontext und Möglichkeiten zur Optimierung der Nutzung des langen Kontextes kurz erläutert.
Was ist ein Kontextfenster?
Die grundlegende Methode zur Verwendung der Gemini-Modelle besteht darin, Informationen (Kontext) an das Modell zu übergeben, das dann eine Antwort generiert. Eine Analogie für das Kontextfenster ist das Kurzzeitgedächtnis. Im Kurzzeitgedächtnis eines Menschen kann nur eine begrenzte Menge an Informationen gespeichert werden. Das Gleiche gilt für generative Modelle.
Weitere Informationen zur Funktionsweise von Modellen finden Sie in unserem Leitfaden zu generativen Modellen.
Erste Schritte mit langem Kontext
Die meisten generativen Modelle, die in den letzten Jahren erstellt wurden, konnten nur 8.000 Tokens gleichzeitig verarbeiten. Neuere Modelle haben diese Grenze auf 32.000 Token oder 128.000 Token erhöht. Gemini ist das erste Modell, das 1 Million Tokens verarbeiten kann.
In der Praxis würden 1 Million Tokens so aussehen:
- 50.000 Codezeilen (mit den standardmäßigen 80 Zeichen pro Zeile)
- Alle Nachrichten, die Sie in den letzten 5 Jahren gesendet haben
- 8 englische Romane durchschnittlicher Länge
- Transkripte von über 200 Podcast-Folgen durchschnittlicher Länge
Obwohl die Modelle immer mehr Kontext verarbeiten können, geht ein Großteil der herkömmlichen Ansichten zur Verwendung von Large Language Models von dieser inhärenten Einschränkung des Modells aus, was im Jahr 2024 nicht mehr der Fall ist.
Zu den gängigen Strategien, um die Einschränkung kleiner Kontextfenster zu umgehen, gehören:
- Willkürliches Löschen alter Nachrichten/Texte aus dem Kontextfenster, wenn neuer Text eingeht
- Zusammenfassen von vorherigen Inhalten und Ersetzen durch die Zusammenfassung, wenn das Kontextfenster fast voll ist
- RAG mit semantischer Suche verwenden, um Daten aus dem Kontextfenster in eine Vektordatenbank zu verschieben
- Verwendung deterministischer oder generativer Filter, um bestimmte Texte/Zeichen aus Prompts zu entfernen und so Tokens zu sparen
Viele davon sind in bestimmten Fällen immer noch relevant, aber standardmäßig werden jetzt einfach alle Tokens in das Kontextfenster eingefügt. Da Gemini-Modelle speziell für ein langes Kontextfenster entwickelt wurden, sind sie viel besser für In-Context-Learning geeignet.
Dieses Beispiel zeigt, wie Sie sich überlegen können, was mit dem langen Kontext und den In-Context-Lernfunktionen von Gemini möglich ist.
Anwendungsfälle für langen Kontext
Der Standardanwendungsfall für die meisten generativen Modelle ist zwar immer noch die Texteingabe, aber die Gemini-Modellfamilie ermöglicht ein neues Paradigma multimodaler Anwendungsfälle. Diese Modelle können Text, Video, Audio und Bilder nativ verstehen. Sie werden von der Gemini Enterprise API für Gemini begleitet, die multimodale Dateitypen akzeptiert.
Text im Langformat
Text hat sich als die Intelligenzebene erwiesen, die einen Großteil der Dynamik rund um LLMs ausmacht. Wie bereits erwähnt, waren die praktischen Einschränkungen von LLMs größtenteils darauf zurückzuführen, dass das Kontextfenster für bestimmte Aufgaben nicht groß genug war. Dies führte zur schnellen Einführung von Retrieval-Augmented Generation (RAG) und anderen Techniken, die dem Modell dynamisch relevante Kontextinformationen bereitstellen. Mit immer größeren Kontextfenstern werden neue Techniken verfügbar, die neue Anwendungsfälle ermöglichen.
Hier sind einige neue und standardmäßige Anwendungsfälle für textbasierte lange Kontexte:
- Zusammenfassen großer Textmengen
- Bei früheren Zusammenfassungsoptionen mit kleineren Kontextmodellen wäre ein gleitendes Fenster oder eine andere Technik erforderlich, um den Status früherer Abschnitte beizubehalten, während neue Tokens an das Modell übergeben werden.
- Frage und Antwort
- In der Vergangenheit war dies aufgrund des begrenzten Kontexts und der geringen faktischen Erinnerung der Modelle nur mit RAG möglich.
- Agentische Workflows
- Text ist die Grundlage dafür, wie KI-Agenten den Status dessen, was sie getan haben und was sie tun müssen, im Auge behalten. Wenn nicht genügend Informationen über die Welt und das Ziel des KI-Agenten vorhanden sind, ist die Zuverlässigkeit von KI-Agenten eingeschränkt.
Many-shot in-context learning ist eine der einzigartigsten Funktionen, die durch lange Kontextmodelle ermöglicht werden. Forschungsergebnisse haben gezeigt, dass das gängige „Single-Shot“- oder „Multi-Shot“-Beispielparadigma, bei dem dem Modell ein oder mehrere Beispiele einer Aufgabe präsentiert werden, auf Hunderte, Tausende oder sogar Hunderttausende von Beispielen skaliert werden kann, was zu neuen Modellfunktionen führen kann. Es hat sich gezeigt, dass dieser Many-Shot-Ansatz ähnlich wie Modelle funktioniert, die für eine bestimmte Aufgabe optimiert wurden. Für Anwendungsfälle, in denen die Leistung eines Gemini-Modells für einen Produktions-Roll-out noch nicht ausreicht, können Sie den Many-Shot-Ansatz ausprobieren. Wie Sie später im Abschnitt zur Optimierung des langen Kontexts noch einmal untersuchen werden, ist diese Art von Arbeitslast mit hoher Eingabetoken durch Kontext-Caching in einigen Fällen wesentlich wirtschaftlicher und hat sogar eine geringere Latenz.
Videos im Langformat
Der Nutzen von Videoinhalten wurde lange Zeit durch die mangelnde Barrierefreiheit des Mediums selbst eingeschränkt. Es war schwierig, den Inhalt zu überfliegen, Transkripte gaben oft nicht die Nuancen eines Videos wieder und die meisten Tools verarbeiten Bilder, Text und Audio nicht zusammen. Mit Gemini können die Textfunktionen für lange Kontexte genutzt werden, um multimodal Eingaben zu analysieren und Fragen dazu zu beantworten, ohne dass die Leistung beeinträchtigt wird.
Hier sind einige neue und standardmäßige Anwendungsfälle für den langen Kontext von Videos:
- Fragen und Antworten zu Videos
- Videogedächtnis, wie bei Project Astra von Google gezeigt
- Videountertitelung
- Videoempfehlungssysteme, indem vorhandene Metadaten mit neuen multimodalen Informationen angereichert werden
- Videoanpassung, indem ein Datenkorpus und zugehörige Videometadaten analysiert und dann Teile von Videos entfernt werden, die für den Zuschauer nicht relevant sind
- Moderation von Videoinhalten
- Videoverarbeitung in Echtzeit
Bei der Arbeit mit Videos ist es wichtig, zu berücksichtigen, wie die Videos in Tokens verarbeitet werden, da sich dies auf die Abrechnung und die Nutzungslimits auswirkt. Weitere Informationen zu Prompts mit Videodateien finden Sie im Prompting-Leitfaden.
Audioinhalte im Langformat
Die Gemini-Modelle waren die ersten nativ multimodalen Large Language Models, die Audio verstehen konnten. In der Vergangenheit bestand der typische Entwickler-Workflow darin, mehrere domänenspezifische Modelle wie ein Sprache-zu-Text-Modell und ein Text-zu-Text-Modell miteinander zu verknüpfen, um Audio zu verarbeiten. Dies führte zu zusätzlicher Latenz, da mehrere Roundtrip-Anfragen ausgeführt werden mussten, und zu einer geringeren Leistung, die normalerweise auf die getrennten Architekturen der Einrichtung mit mehreren Modellen zurückzuführen ist.
Hier sind einige neue und standardmäßige Anwendungsfälle für Audiokontext:
- Sprache-zu-Text und Übersetzung in Echtzeit
- Fragen und Antworten zu Podcasts/Videos
- Transkription und Zusammenfassung von Besprechungen
- Sprachassistenten
Weitere Informationen zum Prompting mit Audiodateien finden Sie im Prompting-Leitfaden.
Optimierungen für langen Kontext
Die wichtigste Optimierung bei der Arbeit mit langen Kontexten und den Gemini-Modellen ist die Verwendung von Kontext-Caching. Neben der bisherigen Unmöglichkeit, viele Tokens in einer einzigen Anfrage zu verarbeiten, waren die Kosten die andere wesentliche Einschränkung. Wenn Sie eine App "Mit Ihren Daten chatten" haben, bei der ein Nutzer 10 PDFs, ein Video und einige Arbeitsdokumente hochlädt, müssten Sie in der Vergangenheit mit einem komplexeren RAG-Tool (Retrieval Augmented Generation) / Framework arbeiten, um diese Anfragen zu verarbeiten und einen erheblichen Betrag für in das Kontextfenster verschobene Tokens zu bezahlen. Jetzt können Sie die vom Nutzer hochgeladenen Dateien im Cache speichern und für die Speicherung auf Stundenbasis bezahlen. Die Ein-/Ausgabekosten pro Anfrage sind geringer als die Standard-Ein-/Ausgabekosten. Wenn der Nutzer also ausreichend mit seinen Daten chattet, bedeutet das für Sie als Entwickler eine enorme Kosteneinsparung.
Einschränkungen bei langen Kontexten
In verschiedenen Abschnitten dieses Leitfadens ging es darum, wie Gemini-Modelle eine hohe Leistung bei verschiedenen „Nadel im Heuhaufen“-Evaluationsvorgängen erzielen. Bei diesen Tests wird die einfachste Konfiguration berücksichtigt, bei der Sie nach einer einzelnen Nadel suchen. Wenn Sie mehrere „Nadeln“ oder bestimmte Informationen suchen, ist die Genauigkeit des Modells nicht so hoch. Die Leistung kann je nach Kontext stark variieren. Dies ist wichtig, da es einen inhärenten Kompromiss zwischen dem Informationsabruf und den Kosten gibt. Sie können bei einer einzelnen Abfrage etwa 99 % erreichen, müssen aber jedes Mal, wenn Sie diese Abfrage senden, die Kosten für die Eingabetokens bezahlen. Wenn Sie also 100 Informationen abrufen möchten und eine Leistung von 99 % benötigen, müssen Sie wahrscheinlich 100 Anfragen senden. Dies ist ein gutes Beispiel dafür, wie Kontext-Caching die Kosten für die Verwendung von Gemini-Modellen erheblich senken kann, während die Leistung hoch bleibt.
Nächste Schritte
Tokens auflisten und zählen
Mit dem Google Gen AI SDK die Tokens und Token-IDs eines Prompts auflisten und die Gesamtzahl der Tokens eines Prompts abrufen.