paint-brush
Erreichen relevanter LLM-Antworten durch Bewältigung häufiger Herausforderungen im Bereich Retrieval Augmented Generationvon@datastax
755 Lesungen
755 Lesungen

Erreichen relevanter LLM-Antworten durch Bewältigung häufiger Herausforderungen im Bereich Retrieval Augmented Generation

von DataStax4m2024/01/16
Read on Terminal Reader

Zu lang; Lesen

Wir betrachten häufige Probleme, die bei RAG-Implementierungen und LLM-Interaktionen auftreten können.
featured image - Erreichen relevanter LLM-Antworten durch Bewältigung häufiger Herausforderungen im Bereich Retrieval Augmented Generation
DataStax HackerNoon profile picture
0-item
1-item


Entwicklung generativer KI-Anwendungen mit Abruf erweiterte Generation (RAG) und Vektordatenbanken können eine Herausforderung sein. Sie müssen häufig Fehler bei RAG-Implementierungen beheben, die auf Vektordatenbanken basieren, um sicherzustellen, dass relevanter Kontext abgerufen wird. Dies ist von entscheidender Bedeutung, da dieser Kontext dann in eine Eingabeaufforderung für ein großes Sprachmodell einbezogen wird, um genauere Ergebnisse zu liefern.


Im vorherigen Artikel dieser Reihe haben wir uns mit der Einbettungspipeline befasst, die die bevölkert Vektordatenbank mit Einbettungen und berücksichtigte drei Bereiche, die zu schlechten Ergebnissen führen können: suboptimale Einbettungsmodelle, ineffiziente Chunking-Strategien und mangelnde Metadatenfilterung.

Hier werfen wir einen Blick auf die tatsächliche Interaktion mit dem LLM und untersuchen einige häufige Probleme, die zu schlechten Ergebnissen führen können: ungenaue Eingabeaufforderungen und unzureichende Generierungsansätze.

Prompte Verfeinerung

Selbst die besten Einbettungs- und Chunking-Strategien können das Bedürfnis nach Qualität nicht ersetzen schnelles Engineering . Dazu gehört, dass die Eingabeaufforderungen expliziter, spezifischer und auf die beabsichtigte Ausgabe abgestimmt werden. Zur Feinabstimmung des RAG-Prozesses sollten verschiedene Eingabeaufforderungsformate, Längen und lexikalische Auswahlmöglichkeiten getestet werden.

Ein vereinfachter Blick auf ein LLM


Insbesondere sollten Sie beim Erstellen Ihrer Eingabeaufforderungen für RAG-Anwendungen mehrere Dinge berücksichtigen. Diese beinhalten:


Teilen Sie dem LLM seine Rolle mit: Bei der Interaktion mit LLM-Agenten wie ChatGPT verhalten sich diese standardmäßig wie ein hilfreicher Chatbot. Sie können jedoch die Art der generierten Antworten ändern, indem Sie den LLM anweisen, auf eine bestimmte Weise zu handeln. Beispiele könnten Dinge sein wie „Sie sind ein Anwalt, der prüft, ob eine der Parteien gegen eine Vereinbarung verstößt“ oder „Sie sind ein Kundendienstmitarbeiter für einen Internetdienstanbieter; Ihre Aufgabe ist es, Menschen bei der Behebung ihrer Internetprobleme zu helfen“ oder was auch immer für Ihre spezielle Situation sinnvoll ist.


Weisen Sie den LLM ausdrücklich an, den bereitgestellten Kontext zu verwenden : Machen Sie dem LLM klar, dass Sie Kontext bereitstellen und dass die generierte Antwort diesen Kontext widerspiegeln soll. Sie können dies tun, indem Sie etwas sagen wie „Ihre Antwort sollte den folgenden Kontext berücksichtigen“, gefolgt vom Kontext. Anwendungsbeispiele: In dem gerade erwähnten Szenario, in dem der LLM gebeten wird, als Anwalt bei der Bewertung von Verträgen zu fungieren, möchten Sie möglicherweise mehrere Beispiele in die Aufforderung aufnehmen. Sie könnten beispielsweise ein Beispiel für einen Vertrag angeben, der besagt, dass die Zahlung innerhalb von 30 Tagen fällig ist, der Käufer seine Zahlung jedoch erst 40 Tage nach Vertragsunterzeichnung geleistet hat und somit gegen die Vereinbarung verstoßen hat. Sie könnten zusätzliche Beispiele für Rechtsbehelfe und mögliche Wege zur Lösung von Vertragsverletzungen nennen.


Geben Sie das Ausgabeformat an: Wenn Ihr Anwendungsfall eine bestimmte Ausgabe erfordert, können Sie das Format angeben, dem die generierte Ausgabe entsprechen soll. Sie können diese Technik mit dem obigen Tipp kombinieren, um dem LLM anhand von Beispielen deutlich zu machen, wie er reagieren soll und welche Kerninformationen Sie in der generierten Antwort erwarten.


Verwenden Sie die Gedankenkette : Für Anwendungsfälle, bei denen es auf Argumentation ankommt, um die geeignete Antwort zu bestimmen, können Sie die Verwendung einer Technik namens Gedankenkette in Betracht ziehen, um die Schritte zu erklären, die das LLM befolgen soll, um zu einer generierten Antwort zu gelangen. Im Fall von Rechtsverträgen möchten Sie beispielsweise das LLM durch die logischen Schritte führen, die eine Person befolgen würde, um festzustellen, ob eine Vertragsbedingung verletzt wurde. Wenn Sie sich beispielsweise mit rechtlichen Verträgen befassen, können Sie das LLM anweisen, zunächst nach Klauseln zu suchen, die Zahlungsbedingungen festlegen, dann die Zeitspanne zu ermitteln, die der Käufer für die Zahlung hatte, und dann die Anzahl der Tage zwischen dem Zeitpunkt des Zahlungseingangs und dem Zeitpunkt zu berechnen Datum der Vertragsunterzeichnung. Wenn die Zahlung dann länger als die vereinbarte Frist dauerte, verstieß der Käufer gegen die Vereinbarung.


Der Einsatz dieser Techniken zur Verbesserung Ihres Prompt-Engineerings kann erhebliche Auswirkungen auf die Qualität der generierten Ergebnisse haben, die Sie in Ihren RAG-Anwendungen erzielen können. Manchmal müssen Sie jedoch Techniken verwenden, die mehrere Austausche mit dem LLM erfordern, um eine akzeptable Antwort zu erzielen.

Erweiterte Muster

FLARE

Vorausschauendes aktives Abrufen, bzw FLARE ist ein Beispiel für eine RAG-Technik mit mehreren Abfragen, bei der das LLM iterativ mit benutzerdefinierten Anweisungen in Ihrer Eingabeaufforderung aufgerufen wird, die das LLM auffordern, zusätzliche Fragen zu Schlüsselphrasen bereitzustellen, die ihm helfen würden, eine bessere Antwort zu generieren. Sobald der LLM einen lückenlosen Kontext hat, endet er mit der endgültigen Antwort. Der Prozess fügt eine Schleife zwischen dem LLM und dem KI-Agenten (dem KI-Chatbot im Diagramm) hinzu, um diese Iterationen zu erleichtern:

FLARE


Ein Beispiel für die Funktionsweise von FLARE finden Sie im LangChain-Kochbuchbeispiel von FLARE .

RAG-Fusion

Indem wir ähnliche Abfragen wie die Abfrage des Benutzers generieren und relevanten Kontext sowohl für die ursprüngliche Abfrage als auch für die generierten ähnlichen Abfragen abrufen, können wir die Wahrscheinlichkeit erhöhen, dass wir den nützlichsten Kontext ausgewählt haben, um genaue Ergebnisse zu generieren. Der als „RAG-Fusion“ bezeichnete Prozess sieht folgendermaßen aus:

RAG-Fusion

Der entscheidende Schritt besteht darin, eine reziproke Rangfunktion zu verwenden, um die ANN-Ergebnisse weiter zu verfeinern und den relevantesten Kontext für die Generierung einer Antwort zu identifizieren.

Abschluss

RAG ist ein Ansatz, mit dem man leicht anfangen kann, der Entwickler jedoch aus unklaren Gründen oft mit unbefriedigenden Ergebnissen frustriert. Die Relevanz der Ergebnisse in RAG-fähigen generativen KI-Anwendungen kann durch mehrere Faktoren beeinflusst werden. Durch die sorgfältige Auswahl von Einbettungsmodellen, die Formulierung von Chunking-Strategien und die Gestaltung von Eingabeaufforderungen können Sie die Qualität und Präzision der generierten Antworten in Systemen, die auf LLMs wie ChatGPT basieren, erheblich steigern. Hoffentlich helfen Ihnen diese Tipps dabei, nützlichere RAG-Anwendungen zu erstellen, die das Erlebnis und den Wert bieten, den Sie anstreben.


Probieren Sie DataStax Astra DB aus , die einzige Vektordatenbank zum Erstellen von KI-Anwendungen auf Produktionsebene auf der Grundlage von Echtzeitdaten .


Von Chris Latimer, DataStax


Erscheint auch hier .