Langer Kontext

Gemini hat standardmäßig ein Kontextfenster von 1 Million Tokens. Bisher waren Large Language Models (LLMs) durch die Menge an Text (oder Tokens) begrenzt, die dem Modell gleichzeitig übergeben werden konnte. Das lange Kontextfenster von Gemini mit nahezu perfektem Abruf (>99%) eröffnet viele neue Anwendungsfälle und Entwicklerparadigmen.

Der Code, den Sie bereits für Anwendungsfälle wie Inhaltsgenerierung oder multimodale Eingaben verwenden, funktioniert sofort mit langem Kontext.

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 anschließend eine Antwort generiert. Das Kontextfenster lässt sich mit dem Kurzzeitgedächtnis vergleichen. 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 sehen 1 Million Tokens so aus:

  • 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 mit durchschnittlicher Länge
  • Transkripte von über 200 Podcast-Folgen durchschnittlicher Länge

Obwohl die Modelle immer mehr Kontext verarbeiten können, gehen viele der herkömmlichen Annahmen 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 mit der Einschränkung kleiner Kontextfenster umzugehen, gehören:

  • Willkürliches Löschen alter Nachrichten / Texte aus dem Kontextfenster, wenn neuer Text eingeht
  • Vorherige Inhalte zusammenfassen und durch die Zusammenfassung ersetzen, wenn das Kontextfenster fast voll ist
  • RAG mit semantischer Suche verwenden, um Daten aus dem Kontextfenster in eine Vektordatenbank zu verschieben
  • Deterministische oder generative Filter verwenden, um bestimmten Text oder bestimmte 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 vorstellen können, was mit langem Kontext und den In-Context-Learning-Funktionen von Gemini möglich ist.

Anwendungsfälle für langen Kontext

Der Standardanwendungsfall für die meisten generativen Modelle ist zwar weiterhin die Texteingabe, die Gemini-Modellfamilie ermöglicht jedoch ein neues Paradigma multimodaler Anwendungsfälle. Diese Modelle können Text, Video, Audio und Bilder nativ verstehen. Zur besseren Übersicht werden sie von der Gemini Enterprise API für Gemini begleitet, die multimodale Dateitypen verarbeitet.

Text im Langformat

Text hat sich als die Intelligenzebene erwiesen, die einen Großteil der Dynamik rund um LLMs untermauert. 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 zur Verfügung stellen. Mit immer größeren Kontextfenstern werden neue Techniken verfügbar, die neue Anwendungsfälle ermöglichen.

Einige neue und Standardanwendungsfälle für langen Kontext auf Textbasis:

  • Zusammenfassen großer Textmengen
    • Bei den bisherigen Zusammenfassungsoptionen mit kleineren Kontextmodellen war ein gleitendes Fenster oder eine andere Technik erforderlich, um den Status der vorherigen Abschnitte beizubehalten, wenn neue Tokens an das Modell übergeben wurden.
  • Frage und Antwort
    • Bisher war dies nur mit RAG möglich, da der Kontext begrenzt war und die Modelle nur wenige Fakten abrufen konnten.
  • Agentic Workflows
    • Text ist die Grundlage dafür, wie Agenten den Überblick darüber behalten, was sie getan haben und was sie tun müssen. Wenn nicht genügend Informationen über die Welt und das Ziel des Agenten vorhanden sind, schränkt das die Zuverlässigkeit von Agenten ein.

Many-shot in-context learning ist eine der einzigartigsten Funktionen, die durch lange Kontextmodelle ermöglicht werden. Studien haben gezeigt, dass die Skalierung des gängigen Paradigmas mit einem oder mehreren Beispielen, bei dem dem Modell ein oder mehrere Beispiele für eine Aufgabe präsentiert werden, auf Hunderte, Tausende oder sogar Hunderttausende von Beispielen 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

Die Nützlichkeit von Videoinhalten war lange Zeit durch die mangelnde Zugänglichkeit des Mediums selbst eingeschränkt. Es war schwierig, die Inhalte zu überfliegen, Transkripte konnten oft nicht die Nuancen eines Videos erfassen und die meisten Tools verarbeiten Bild, Text und Audio nicht gemeinsam. Mit Gemini können Sie Fragen zu multimodalen Eingaben beantworten und Schlussfolgerungen ziehen, ohne dass die Leistung nachlässt.

Hier sind einige neue und standardmäßige Anwendungsfälle für den langen Kontext von Videos:

  • Fragen und Antworten zu Videos
  • Videospeicher, wie er bei Project Astra von Google gezeigt wird
  • Videountertitelung
  • Videoempfehlungssysteme, indem vorhandene Metadaten mit neuen multimodalen Informationen angereichert werden
  • Videoanpassung durch Analyse eines Datensatzes und zugehöriger Videometadaten und anschließendes Entfernen von Teilen von Videos, 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 umgewandelt werden, da dies sich auf die Abrechnung und die Nutzungslimits auswirkt. Weitere Informationen zum Erstellen von Prompts mit Videodateien

Audioinhalte im Langformat

Die Gemini-Modelle waren die ersten von Grund auf 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, die durch die Ausführung mehrerer Roundtrip-Anfragen erforderlich war, und zu einer verringerten Leistung, die in der Regel auf die nicht zusammenhängenden Architekturen der Einrichtung mehrerer Modelle zurückzuführen ist.

Einige neue und standardmäßige Anwendungsfälle für Audiokontext:

  • Sprache-zu-Text und Übersetzung in Echtzeit
  • Fragen und Antworten zu Podcasts und Videos
  • Besprechungstranskript und ‑zusammenfassung
  • Sprachassistenten

Weitere Informationen zum Erstellen von Prompts mit Audiodateien finden Sie im Leitfaden zum Erstellen von Prompts.

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 Haupteinschrä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 stündlich für die Speicherung 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 Einrichtung 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. Das 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

Anleitung

Mit dem Google Gen AI SDK können Sie die Tokens und ihre Token-IDs eines Prompts auflisten und die Gesamtzahl der Tokens eines Prompts abrufen.