3 Punkte von GN⁺ 2024-09-22 | 1 Kommentare | Auf WhatsApp teilen

Einführung in Contextual Retrieval

  • Damit ein AI-Modell in einem bestimmten Kontext nützlich ist, benötigt es Hintergrundwissen
  • Ein Kundensupport-Chatbot braucht Wissen über ein bestimmtes Unternehmen, und ein Bot für juristische Analysen benötigt umfangreiches Wissen über frühere Fälle
  • Entwickler verwenden in der Regel Retrieval-Augmented Generation (RAG), um das Wissen von AI-Modellen zu verbessern
  • Traditionelle RAG-Lösungen entfernen beim Kodieren von Informationen den Kontext und können dadurch relevante Informationen oft nicht abrufen

Methode von Contextual Retrieval

  • Contextual Retrieval ist eine Methode, die die Abrufphase von RAG deutlich verbessert
  • Es verwendet zwei Teiltechnologien: Contextual Embeddings und Contextual BM25
  • Die Zahl fehlgeschlagener Abrufe wird um 49 % reduziert und in Kombination mit Re-Ranking sogar um bis zu 67 %
  • Mit Claude lässt sich eine Contextual-Retrieval-Lösung einfach bereitstellen

Einfach längere Prompts verwenden

  • Wenn die Wissensbasis unter 200.000 Tokens liegt, kann es besser sein, die gesamte Wissensbasis dem Modell bereitzustellen
  • Mit der Prompt-Caching-Funktion von Claude ist dieser Ansatz schneller und kosteneffizienter
  • Wenn die Wissensbasis wächst, ist eine besser skalierbare Lösung erforderlich

Grundkonzepte von RAG

  • RAG wird verwendet, um große Wissensbasen zu verarbeiten
  • Die Wissensbasis wird in kleine Textabschnitte aufgeteilt, und ein Embedding-Modell kodiert deren Bedeutung
  • Die Daten werden in einer Vektordatenbank gespeichert und anhand semantischer Ähnlichkeit abgerufen
  • BM25 ist effektiv, um exakte Wort- oder Phrasenübereinstimmungen zu finden

Grenzen von traditionellem RAG

  • Beim Aufteilen von Dokumenten in kleine Abschnitte kann der Kontext verloren gehen
  • Beispielsweise kann bei einer Frage nach Finanzinformationen eines bestimmten Unternehmens ein Abschnitt ohne ausreichenden Kontext zurückgegeben werden

Implementierung von Contextual Retrieval

  • Jedem Abschnitt wird beschreibender Kontext hinzugefügt, um Embedding- und BM25-Indizes zu erzeugen
  • Mit Claude wird für jeden Abschnitt ein knapper Kontext erzeugt
  • Durch Prompt Caching lassen sich die Kosten senken

Leistungsverbesserung

  • Contextual Embeddings senken die Fehlerrate beim Abruf um 35 %
  • Die Kombination aus Contextual Embeddings und Contextual BM25 senkt die Fehlerrate beim Abruf um 49 %

Überlegungen zur Implementierung

  • Berücksichtigt werden sollten die Art der Dokumentsegmentierung, die Wahl des Embedding-Modells und benutzerdefinierte Prompts zur Kontextualisierung
  • Wenn mehr Abschnitte einbezogen werden, steigt die Wahrscheinlichkeit, relevante Informationen zu enthalten

Leistungssteigerung durch Re-Ranking

  • Re-Ranking verbessert die Antwortqualität, indem nur die relevantesten Abschnitte an das Modell weitergegeben werden
  • Re-gerankte Contextual Embeddings und Contextual BM25 senken die Fehlerrate beim Abruf um 67 %

Fazit

  • Die Kombination von Embeddings und BM25 liefert bessere Ergebnisse
  • Voyage- und Gemini-Embeddings sind am effektivsten
  • Es ist am effektivsten, die Top-20-Abschnitte an das Modell zu übergeben
  • Das Hinzufügen von Kontext verbessert die Suchgenauigkeit erheblich
  • Re-Ranking verbessert die Leistung zusätzlich

Zusammenfassung von GN⁺

  • Contextual Retrieval ist eine Methode, die die Suchgenauigkeit von AI-Modellen deutlich verbessern kann
  • Sie ist besonders nützlich beim Umgang mit großen Wissensbasen
  • Mit der Prompt-Caching-Funktion von Claude lässt sie sich kosteneffizient implementieren
  • Andere Projekte mit ähnlichen Funktionen sind OpenAIs GPT-3 und Googles BERT

1 Kommentare

 
GN⁺ 2024-09-22
Hacker-News-Kommentare
  • Erster Kommentar

    • Erfahrungsbericht zum Aufbau von Enterprise-RAG für Behörden
    • Ergebnisse von A/B-Tests mit RAGAS-Metriken:
      • Hybride Suche (semantisch + Vektor) und LLM-basiertes Reranking zeigen bei synthetischen Evaluierungsfragen keine große Veränderung
      • HyDE verschlechtert bei synthetischen Evaluierungsfragen die Antwort- und Suchqualität erheblich
    • Hybride Suche ist immer nützlich, aber nicht eine einzige Methode gewinnt immer
    • Die semantische Suche von Azure AI Search ist zusammen mit Vektorähnlichkeit ausreichend effektiv
    • Es ist notwendig, verschiedene Methoden zu testen
    • Als Nächstes auszuprobieren:
      • RAPTOR
      • SelfRAG
      • Agentic RAG
      • Query-Verfeinerung (Erweiterung und Sub-Queries)
      • GraphRAG
    • Erkenntnisse:
      • Man sollte immer Baselines und Experimente verwenden, um zu versuchen, die Nullhypothese zu widerlegen
      • Drei Arten von Evaluierungsfragen/-antworten verwenden: von Experten verfasst, echte Nutzerfragen, synthetische Fragen
  • Zweiter Kommentar

    • Gefällt der Ansatz, Prompt Caching zu nutzen
    • Dank Caching sinken die Prompt-Kosten auf ein Zehntel
    • Durch die Kosteneinsparung beim Caching werden verschiedene Tricks möglich
    • Teilt Notizen zu Contextual Retrieval und Prompt Caching
  • Dritter Kommentar

    • Der Ansatz, Basis-Chunks mit einem LLM zu erweitern, um RAG-Ergebnisse zu verbessern, ist verbreitet
    • Query-Expansion mit HyDE führt nicht immer zu Verbesserungen
    • Das Neue bei Anthropic ist die Einführung von Prompt Caching
    • Prompt Caching senkt die Kosten, indem lange Dokumente als Kontext bereitgestellt werden
    • Mit der Cohere API sehr zufrieden
  • Vierter Kommentar

    • Verwendet eine Methode, bei der Dokumente anhand von h1-, h2- und h3-Headings in Chunks aufgeteilt werden und am Anfang des Chunks Header hinzugefügt werden
    • Beispiel:
      • Vorheriger Chunk: "Die übliche Dosierung für Erwachsene beträgt 1–2 Tabletten oder Kapseln zu 200 mg dreimal täglich"
      • Neuer Chunk: "# Fieber ## Behandlung --- Die übliche Dosierung für Erwachsene beträgt 1–2 Tabletten oder Kapseln zu 200 mg dreimal täglich"
    • Diese Methode funktioniert auch ohne LLM gut
  • Fünfter Kommentar

    • Nimmt zu dieser Technik eine ablehnende Haltung ein
    • Vektor-Embeddings können sich übermäßig auf den ersten durch Zeilenumbrüche getrennten Textblock konzentrieren
    • IDF-Suche gleicht das teilweise aus, aber nicht ausreichend
    • Mit "semantic boost" kann man das Embedding auf den Titel, die Zusammenfassung usw. eines Dokuments verschieben
    • Teilt eine Erklärung zu "semantic boost" der Trieve API
  • Sechster Kommentar

    • Verwendet eine "Linked List"-Strategie, bei der Chunks mehrere Pointer auf referenzierte Elemente haben
    • Erklärt es so, dass jeder Kommentar zu einem Pointer auf den ursprünglichen Beitrag wird
    • Teilt ein Beispiel für diese Technik
  • Siebter Kommentar

    • Die Behauptung, mit 200k Token auf kleinen Datensätzen die besten Antworten zu erhalten, entspricht nicht der eigenen Erfahrung
    • Je größer der Prompt wird, desto inkonsistenter wird die Ausgabe und desto schwieriger ist es, Anweisungen zu befolgen
    • Fragt sich, ob andere ähnliche Erfahrungen gemacht haben und wie man das vermeiden kann
  • Achter Kommentar

    • Steht vor dem Problem, mit RAG statt Wissen Regeln abzurufen
    • Schlägt einen Ansatz vor, bei dem ein kleiner Klassifikator trainiert wird, um zu beurteilen, ob eine bestimmte Regel anwendbar sein könnte
    • Beispiel: Entscheidung, ob in einem Multi-User-Dungeon-Spiel eine bestimmte Regel gilt
    • Zu entscheiden, ob eine Regel anwendbar ist, ist ein abstrakteres und schwierigeres Problem
    • Sucht nach einer Möglichkeit, dieses Problem zu lösen
  • Neunter Kommentar

    • Falls die Wissensbasis kleiner als 200.000 Token (etwa 500 Seiten) ist
    • Hofft, dass Anthropic den Tokenizer veröffentlicht
  • Zehnter Kommentar

    • Wartet auf den Tag, an dem die KI-Industrie wieder zu TF-IDF zurückkehrt