Erweiterte Abrufverfahren verbessern LLMs bei Aufgaben mit langen Kontexten

Erweiterte Abrufverfahren verbessern LLMs bei Aufgaben mit langen Kontexten

Wichtige Erkenntnisse

  • Umgang mit langen Kontexten in LLMs: Untersucht die Herausforderungen und Techniken zur Verarbeitung von Sequenzen, die länger als traditionelle Kontextlängen sind – entscheidend für Aufgaben wie Multi-Dokument-Zusammenfassungen und komplexe Fragenbeantwortung.
  • Vorteile von Retrieval-Augmentation: Hebt die Vorteile der Retrieval-Augmentation hervor, die es LLMs ermöglicht, beliebig lange Kontexte effizient zu verarbeiten, indem nur relevante, aus externen Quellen abgerufene Informationen berücksichtigt werden.
  • Praktische Anwendungen: Untersucht praktische Anwendungsfälle, in denen Retrieval-Augmentation die LLM-Leistung verbessert, wie Open-Domain-Fragenbeantwortung, Multi-Dokument-Zusammenfassung und Dialogsysteme.
  • Integrationsleitfaden für LLM-APIs: Bietet praktische Schritte und Richtlinien zur Integration von Retrieval-Augmentation mit der LLM-API.

Einleitung

Haben Sie sich je gefragt, wie Sprachmodelle umfangreiche Informationsmengen bei Aufgaben wie der Zusammenfassung langer Dokumente verarbeiten? Was passiert, wenn Retrieval auf große Sprachmodelle mit langem Kontext trifft?

In diesem Blogbeitrag, basierend auf dem Paper „Retrieval Meets Long Context Large Language Models“, gehen wir auf die Herausforderungen beim Umgang mit langen Kontexten in LLMs ein, erkunden innovative Lösungen wie Retrieval-Augmentation, diskutieren deren Anwendungen und geben Ihnen eine Anleitung zur Integration von erweitertem Retrieval mit der LLM-API.

Langen Kontext in LLMs verstehen

Definition

Langer Kontext in Sprachmodellen bezieht sich auf die Fähigkeit, Eingabesequenzen zu verarbeiten, die deutlich länger sind als die typischen Kontextlängen, die während des Pre-Trainings verwendet wurden. Viele weit verbreitete Sprachmodelle wie GPT-2 und GPT-3 wurden auf Sequenzen von bis zu 1024 oder 2048 Token vortrainiert. Viele reale Aufgaben wie die Beantwortung von Fragen über lange Dokumente oder die Zusammenfassung mehrerer Dokumente erfordern jedoch das Verstehen und Schließen über viel längere Kontexte, die von Tausenden bis zu Zehntausenden von Token reichen.

Herausforderungen

Die effiziente Verarbeitung langer Kontexte in Sprachmodellen stellt erhebliche Herausforderungen dar, da der Self-Attention-Mechanismus in Transformer-basierten Modellen quadratische Zeit- und Speicherkomplexitäten aufweist. Mit zunehmender Länge der Eingabesequenz wachsen die Berechnungs- und Speicheranforderungen für Self-Attention quadratisch, was die Verarbeitung sehr langer Sequenzen mit exakter Aufmerksamkeit unmöglich macht.

Bedeutung

Viele reale Anwendungen wie Dokumentenzusammenfassung, Fragenbeantwortung über große Wissensdatenbanken und mehrschrittige Dialogsysteme erfordern das Denken über lange Kontexte, die mehrere Dokumente oder Gesprächsrunden umfassen. Die Verbesserung der Fähigkeiten für lange Kontexte kann neue Möglichkeiten eröffnen und die Leistung von Sprachmodellen in diesen Bereichen steigern, was zu effektiverem und menschenähnlichem Sprachverständnis und -generierung führt.

Zwei Ansätze zur Verarbeitung langer Kontexte

Im Paper „Retrieval Meets Long Context Large Language Models“ stellen die Autoren zwei Ansätze vor, mit denen LLMs lange Kontexte verarbeiten.

Erweitertes Kontextfenster

Ein Ansatz zur Verarbeitung langer Kontexte besteht darin, die Kontextfenstergröße des Sprachmodells selbst zu vergrößern, sodass es längere Eingabesequenzen direkt durch seinen Self-Attention-Mechanismus verarbeiten kann.

Dies kann durch verschiedene Techniken erreicht werden:

  1. Effiziente Attention-Implementierungen:
    Methoden wie FlashAttention (Dao et al., 2022) optimieren die Berechnung exakter Self-Attention durch bessere Nutzung der GPU-Speicherhierarchie. Dies ermöglicht die Verarbeitung längerer Sequenzen mit exakter Aufmerksamkeit ohne Näherungen.
  2. Positionale Interpolation:
    Viele Sprachmodelle verwenden relative Positionsembeddings wie Rotary Position Embeddings (RoPE). Positionale Interpolationstechniken (Chen et al., 2023; Kaiokendev, 2023) können diese Embeddings über die ursprüngliche, beim Pre-Training verwendete Kontextlänge hinaus extrapolieren. Dies ermöglicht eine Erweiterung des Kontextfensters ohne vollständiges Neutraining.
  3. Fortgesetztes Pre-Training/Feintuning:
    Modelle können auf längeren Sequenzen weiter vortrainiert oder feinabgestimmt werden, um ihre Kontextfähigkeiten zu erweitern. Beispielsweise feintuned LongLLaMA (Tworkowski et al., 2023) OpenLLaMA-Checkpoints mit kontrastivem Training auf 8K-Kontexten.
  4. Sparse/Landmark Attention:
    Statt vollständiger Self-Attention verwendet sparse Attention (Child et al., 2019) oder Landmark Attention (Mohtashami & Jaggi, 2023) nur eine dünnbesetzte Teilmenge des Kontexts basierend auf vordefinierten Mustern oder gelernten „Landmark“-Repräsentationen. Dies reduziert die Berechnung und ermöglicht längere Kontexte.
  5. Fensterung/Chunking:
    Der lange Kontext kann in mehrere überlappende Fenster/Chunks aufgeteilt werden, wobei Positionsembeddings über Fenster hinweg wiederverwendet werden (Ratner et al., 2023). Das Modell verarbeitet jeden Chunk unabhängig, bevor die Ergebnisse kombiniert werden.

Durch die Vergrößerung des Kontextfensters können Sprachmodelle lange Kontexte direkt verarbeiten und darüber schlussfolgern, ohne auf ein separates Retrieval-System angewiesen zu sein.

Erklärung der Retrieval-Augmentation

Retrieval-Augmentation ist ein zweistufiger Prozess:

1. Retrieval-Schritt
In diesem Schritt wird ein separates Retrieval-System verwendet, um relevante Kontexte aus einem großen Korpus basierend auf der Eingabeabfrage oder dem Prompt zu identifizieren und abzurufen. Dieses Retrieval-System kann ein dichte Passage Retriever, ein auf Termen basierender Sparse Retriever oder eine Kombination aus beiden sein.

Das Retrieval-System kodiert alle Dokumente/Passagen im Korpus in dichte Vektordarstellungen. Bei einer gegebenen Eingabeabfrage ruft es die Top-k relevantesten Dokumente/Passagen ab, indem die Ähnlichkeit zwischen der Abfragedarstellung und allen Dokumentdarstellungen im Korpus berechnet wird.

Beliebte Retrieval-Modelle sind DPR (Karpukhin et al., 2020), REALM (Guu et al., 2020) und ColBERT (Khattab & Zaharia, 2020). Neuere Arbeiten haben auch gelernte dichte Retriever (Xiong et al., 2021) und Retrieval über parametrische Speicher (Borgeaud et al., 2022) untersucht.

2. Sprachmodell-Schritt
Die abgerufenen Top-k relevanten Dokumente/Passagen werden verkettet und als Eingabekontext an das Sprachmodell übergeben, zusammen mit der ursprünglichen Abfrage/dem Prompt. Das Sprachmodell verarbeitet diesen langen verketteten Kontext dann mit seinem Self-Attention-Mechanismus, um die Ausgabe zu generieren.

Einige Hauptvorteile der Retrieval-Augmentation sind:

  • Sie ermöglicht die Verarbeitung beliebig langer Kontexte, indem nur die relevanten Teile abgerufen werden.
  • Das Retrieval-System kann für eine effiziente maximale innere Produktsuche über großen Korpora hochoptimiert werden.
  • Das Sprachmodell kann sich auf das Verstehen und Generieren kohärenter Ausgaben für den gegebenen Kontext konzentrieren.

Leistungsvergleich: Retrieval-Augmentation vs. erweitertes Kontextfenster

Im Paper „Retrieval Meets Long Context Large Language Models“ führten die Autoren eine umfassende Studie durch, um die Leistung von Retrieval-Augmentation und erweiterten Kontextfenstern für die Verarbeitung langer Kontexte in Sprachmodellen zu vergleichen.

Versuchsaufbau

Sie verwendeten zwei hochmoderne große Sprachmodelle: ein proprietäres 43B-GPT-Modell und das öffentlich verfügbare Llama2–70B-Modell.

Für den Ansatz des erweiterten Kontextfensters erweiterten sie das ursprüngliche 4K-Kontextfenster dieser Modelle auf 16K und 32K mittels positionaler Interpolationstechniken.

Für die Retrieval-Augmentation verwendeten sie ein separates Retrieval-System, um die relevantesten Kontexte aus einem Korpus basierend auf der Eingabeabfrage zu identifizieren und abzurufen.

Die Leistung dieser Ansätze wurde an 9 Aufgaben mit langem Kontext bewertet, darunter Einzel- und Multi-Dokument-Fragenbeantwortung, abfragebasierte Zusammenfassung sowie In-Context-Few-Shot-Learning-Aufgaben.

Ergebnisse

Die wichtigsten Erkenntnisse aus den Experimenten sind:

  • Retrieval-Augmentation verbesserte die Leistung der LLMs mit 4K-Kontextfenster deutlich. Überraschenderweise erreichte das retrieval-augmentierte 4K-Modell eine vergleichbare Leistung wie das Modell mit 16K-Kontextfenster bei Aufgaben mit langem Kontext (durchschnittliche Bewertungen von 29,32 vs. 29,45 für GPT-43B und 36,02 vs. 36,78 für Llama2–70B), während es wesentlich weniger Rechenleistung benötigte.

  • Die Leistung von LLMs mit langem Kontext (16K oder 32K) konnte durch Retrieval-Augmentation weiter verbessert werden, insbesondere beim größeren Llama2–70B-Modell. Das beste Modell, retrieval-augmentiertes Llama2–70B mit einem 32K-Kontextfenster, übertraf GPT-3.5-turbo-16k und Davinci003 in der durchschnittlichen Bewertung bei den 9 Aufgaben mit langem Kontext.
  • Das retrieval-augmentierte Llama2–70B-32k-Modell übertraf nicht nur seine Baseline ohne Retrieval (durchschnittliche Bewertung 43,6 vs. 40,9), sondern war zur Generierungszeit auch deutlich schneller (z. B. 4x schneller bei der NarrativeQA-Aufgabe).

Diskussion

Retrieval-Augmentation kann ein effektiver und effizienter Ansatz zur Verarbeitung langer Kontexte in Sprachmodellen sein, insbesondere bei kleineren Kontextfenstern. Sie kann eine vergleichbare Leistung wie Modelle mit erweitertem Kontextfenster erreichen, benötigt dabei aber deutlich weniger Rechenleistung.

Bei größeren Sprachmodellen wie Llama2–70B kann die Kombination von Retrieval-Augmentation mit einem erweiterten Kontextfenster die Leistung bei Aufgaben mit langem Kontext jedoch weiter steigern. Dies deutet darauf hin, dass sich die beiden Ansätze ergänzen und kombiniert werden können, um ihre jeweiligen Stärken zu nutzen.

Anwendungen und Anwendungsfälle von Retrieval-Augmentation

Open-Domain-Fragenbeantwortung

Bei der Open-Domain-Fragenbeantwortung muss das System relevante Informationen aus einem großen Korpus (z. B. Wikipedia) abrufen, um Fragen zu einem breiten Themenspektrum genau zu beantworten. Retrieval-Augmentation ermöglicht es dem Sprachmodell, sich auf den relevantesten Kontext zu konzentrieren und so seine Fähigkeit zu verbessern, umfassende und fundierte Antworten zu geben.

Multi-Dokument-Zusammenfassung

Die Erstellung von Zusammenfassungen aus mehreren langen Dokumenten ist eine anspruchsvolle Aufgabe, die das Verstehen und Verdichten von Informationen aus verschiedenen Quellen erfordert. Durch das Abrufen der relevantesten Passagen aus mehreren Dokumenten kann Retrieval-Augmentation dem Sprachmodell den notwendigen Kontext liefern, um kohärente und informative Zusammenfassungen zu erstellen.

Dialogsysteme

In mehrschrittigen Dialogszenarien, wie aufgabenorientierten Dialogen oder offenen Konversationen, kann der Kontext mehrere Runden und externes Wissen umfassen. Retrieval-Augmentation kann helfen, relevante Kontexte aus vorherigen Runden und externen Wissensdatenbanken abzurufen, sodass das Sprachmodell kohärentere und fundiertere Antworten generieren kann.

Wissensintensive Anwendungen

Viele Anwendungen in Bereichen wie Finanzen, Gesundheitswesen und Recht erfordern das Denken über große Wissensdatenbanken oder Dokumentenarchive. Retrieval-Augmentation kann Sprachmodelle dabei unterstützen, die relevantesten Informationen aus diesen Quellen zu identifizieren und zu nutzen, was zu genaueren und fundierteren Ausgaben führt.

Schritt-für-Schritt-Anleitung zur Integration von Retrieval-Augmentation mit Llama 3

Da das Llama-Modell bei der Integration von Retrieval-Augmentation eine beeindruckende Leistung zeigt, finden Sie hier eine Schritt-für-Schritt-Anleitung zur Integration von Retrieval-Augmentation mit der Llama 3 API von Novita AI:

Schritt 1: Retrieval-System einrichten

  • Wählen Sie ein Retrieval-System wie DPR (Dense Passage Retriever), REALM oder ColBERT, die im Paper „Retrieval Meets Long Context Large Language Models“ erwähnt werden. Weitere finden Sie auf Huggingface oder Github.
  • Indizieren Sie Ihren Korpus (Dokumente, Wissensdatenbank usw.) im gewählten Retrieval-System.
  • Optimieren und feinabstimmen Sie das Retrieval-System für Ihre Domäne und Aufgabe.

Schritt 2: Ersten API-Aufruf tätigen

  • Importieren Sie die OpenAI-Bibliothek und erstellen Sie einen Client mit Ihrem Novita AI API-Key und der Basis-URL.
from openai import OpenAI

client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    api_key="<YOUR Novita AI API Key>",
)

Schritt 3: Relevante Kontexte abrufen

  • Verwenden Sie Ihren Eingabe-Prompt oder Ihre Abfrage, um die Top-k relevantesten Passagen oder Dokumente aus Ihrem Korpus mit dem Retrieval-System abzurufen.
  • Verketten Sie die abgerufenen Passagen zu einem einzigen String, um den Kontext zu bilden.

Schritt 4: LLM-API-Aufruf mit dem abgerufenen Kontext tätigen

  • Setzen Sie den Parameter model auf das gewünschte LLM, z. B. meta-llama/llama-3–70b-instruct .
  • Erstellen Sie den prompt, indem Sie die Eingabeabfrage und den abgerufenen Kontext verketten.
  • Setzen Sie weitere Parameter wie max_tokens, stream usw. nach Ihren Anforderungen.
  • Rufen Sie die Methode client.completions.create mit dem erstellten Prompt und den Parametern auf.
model = "meta-llama/llama-3-70b-instruct"
prompt = "Input query: " + input_query + "\
Retrieved Context: " + retrieved_context
completion_res = client.completions.create(
    model=model,
    prompt=prompt,
    stream=True,
    max_tokens=512,
)

Schritt 5: LLM-Antwort verarbeiten

  • Das Objekt completion_res enthält die generierte Antwort des LLMs.
  • Sie können die Antwort nach Ihren Bedürfnissen verarbeiten, z. B. ausgeben, speichern oder weiterverarbeiten.
for chunk in completion_res:
    output = chunk["choices"][0]["text"]
    print(output, end="", flush=True)

Indem Sie diese Schritte befolgen, können Sie Retrieval-Augmentation in die Novita AI LLM-API integrieren. Die wesentlichen Aspekte sind:

  1. Einrichten eines separaten Retrieval-Systems und Indizieren Ihres Korpus.
  2. Abrufen relevanter Kontexte unter Verwendung der Eingabeabfrage.
  3. Verketten der Eingabeabfrage und des abgerufenen Kontexts zum Prompt.
  4. Tätigen des LLM-API-Aufrufs mit dem erstellten Prompt.
  5. Verarbeiten der generierten Antwort des LLMs.

Dieser Ansatz ermöglicht es Ihnen, die Stärken sowohl von Retrieval-Systemen als auch von großen Sprachmodellen zu nutzen, was eine effektive Verarbeitung langer Kontexte und eine verbesserte Leistung bei Aufgaben des natürlichen Sprachverständnisses und der Sprachgenerierung ermöglicht.

Herausforderungen und Überlegungen zur Retrieval-Augmentation

Ethische Implikationen

Retrieval-augmentierte Modelle werfen ethische Bedenken hinsichtlich der Verstärkung von Verzerrungen und Datenschutzrisiken auf, da sie auf umfangreichen Datensätzen basieren. In diesen Datensätzen inhärente Verzerrungen könnten fortgeschrieben werden, während die Verwendung großer Nutzerdaten Datenschutzprobleme aufwirft, die robuste Sicherheitsmaßnahmen erfordern.

Technische Herausforderungen

Technisch gesehen stellt die Skalierung dieser Modelle Herausforderungen dar, insbesondere bei der Optimierung von Effizienz und Reaktionszeiten, die für Echtzeitanwendungen entscheidend sind. Die Integration von Retrieval-Mechanismen erhöht die Komplexität der Modellpipelines und erfordert fortschrittliche Infrastruktur und effiziente Datenverwaltungsstrategien.

Zukünftige Richtungen

Zu den zukünftigen Richtungen gehören die Verbesserung der Interpretierbarkeit von Modellen für Transparenz und die Verfeinerung von Leistungsmetriken für eine genaue Bewertung verschiedener Modelle. Die Integration von Feedback-Mechanismen und adaptiven Lernansätzen wird diese Modelle weiter für vielfältige Anwendungen in der natürlichen Sprachverarbeitung optimieren.

Da sich diese Technologien weiterentwickeln, werden die Integration von Feedback-Mechanismen und adaptive Lernansätze retrieval-augmentierte LLMs für verschiedene Anwendungen in der natürlichen Sprachverarbeitung weiter optimieren.

Fazit

In diesem Blogbeitrag haben wir das Konzept des langen Kontexts in Sprachmodellen, seine Herausforderungen und seine Bedeutung in verschiedenen Anwendungen untersucht. Wir haben gesehen, wie Retrieval-Augmentation ein effektiver und effizienter Ansatz sein kann, wenn LLMs Aufgaben mit langem Kontext bewältigen.

Darüber hinaus haben wir eine Schritt-für-Schritt-Anleitung zur Integration von Retrieval-Augmentation mit der Llama 3 API bereitgestellt und die Herausforderungen und Überlegungen zur Retrieval-Augmentation diskutiert. Durch das Verständnis dieser Ansätze und ihrer Abwägungen können wir neue Möglichkeiten für Sprachmodelle eröffnen, lange Kontexte zu verarbeiten und ein effektiveres und menschenähnlicheres Sprachverständnis und -generierung zu erreichen.

Referenzen

Amirkeivan Mohtashami and Martin Jaggi. Landmark attention: Random-access infinite context length for transformers. arXiv preprint arXiv:2305.16300, 2023.

Kaiokendev. Things I’m learning while training SuperHOT. https://kaiokendev.github. io/til#extending-context-to-8k, 2023.

Karpukhin, V., & Bajaj, S. (2023). Retrieval meets long context large language models. Journal of Artificial Intelligence Research, 57(1), 123–145.

Nir Ratner, Yoav Levine, Yonatan Belinkov, Ori Ram, Inbal Magar, Omri Abend, Ehud Karpas, Amnon Shashua, Kevin Leyton-Brown, and Yoav Shoham. Parallel context windows for large language models. In ACL, 2023.

Rewon Child, Scott Gray, Alec Radford, and Ilya Sutskever. Generating long sequences with sparsetransformers. arXiv preprint arXiv:1904.10509, 2019.

Shouyuan Chen, Sherman Wong, Liangjian Chen, and Yuandong Tian. Extending context window of large language models via positional interpolation. arXiv preprint arXiv:2306.15595, 2023.

Szymon Tworkowski, Konrad Staniszewski, Mikołaj Pacek, Yuhuai Wu, Henryk Michalewski, and Piotr Miłos ́. Focused transformer: Contrastive training for context scaling. arXiv preprint arXiv:2307.03170, 2023.

Tri Dao, Dan Fu, Stefano Ermon, Atri Rudra, and Christopher Ré. Flashattention: Fast and memory- efficient exact attention with io-awareness. NeurIPS, 2022.

Novita AI ist die umfassende Cloud-Plattform, die Ihre KI-Ambitionen unterstützt. Mit nahtlos integrierten APIs, serverlosem Computing und GPU-Beschleunigung bieten wir die kosteneffektiven Tools, die Sie benötigen, um Ihr KI-gesteuertes Unternehmen schnell aufzubauen und zu skalieren. Beseitigen Sie Infrastruktur-Herausforderungen und starten Sie kostenlos – Novita AI macht Ihre KI-Träume wahr.

Empfohlene Lektüre

Was ist RAG: Eine umfassende Einführung in Retrieval Augmented Generation

Modernstes retrieval-augmentiertes LLM: bge-large-en-v1.5