Ist es machbar, mittelgroße Dokumente (z. B. bis zu 100 KB) über den System-Prompt in die Kontext einer Discourse AI Persona Bot-Sitzung einzufügen?
ANWENDUNGSFALL
Eine benutzerdefinierte KI-Persona, die mit einem privaten LLM wie Llama3-8b auf einer AWS-Instanz verbunden ist, bei der die Kosten pro Stunde und nicht pro Token berechnet werden. D. h. die Anzahl der Anfrage-/Antwort-Tokens spielt keine Rolle und der Server verfügt über beträchtliche CUDA-Leistung, sodass die Leistung in Ordnung ist. D. h. RAG könnte optional sein?
(Alternativer Anwendungsfall: Gemini.1.5 LLM, bei dem keine Gebühren für API-Aufrufe anfallen)
ZIEL
Reduzierung der beweglichen Teile in der Pipeline und Verbesserung der Genauigkeit durch Vermeidung von Ähnlichkeitsabfragen.
EXPERIMENT
Informeller KI-Persona-Test mit Gemini 1.5 Pro, bei dem ein Textdokument mit ca. 20.000 Tokens in den System-Prompt eingefügt wurde.
Ich stellte mehrere Fragen, von denen ich wusste, dass die Antworten nur in dem Papier enthalten waren. Es beantwortete alle Fragen korrekt. Ich gehe also davon aus, dass es die 20.000 Tokens aus dem Prompt gelesen und für jede Frage analysiert hat?
Gibt es Nachteile bei diesem Ansatz, wenn Sitzungen und Kontextinhalte nicht zu umfangreich sind?
FUSSNOTE - Kontext aus dem Prompt während der Sitzung entfernen
Als ich den Prompt-Injection-Inhalt während der Sitzung löschte und weiterhin Fragen stellte, beantwortete Gemini die Fragen weiterhin korrekt, aber nach mehreren Fragen konnte es den Kontext nicht mehr finden und schlug fehl. Wie einigermaßen erwartet, kann Gemini 1.5 den Kontext über mehrere Gesprächsrunden in einer Sitzung beibehalten, aber nicht unbegrenzt.
Alle Gedanken, Kommentare und Ratschläge sind willkommen!
Ja, wir haben eine Trunkierungslogik, die von der Anzahl der Tokens abhängt, die das LLM zulässt. Wir haben den Schwellenwert für Gemini 1.5-Modelle recht hoch angesetzt (bei 800.000).
Es sollte funktionieren, aber jede Interaktion kann sehr teuer werden.
Insgesamt habe ich festgestellt, dass die Begrenzung des Kontexts den Modellen hilft, fokussierter zu bleiben, aber langfristig (in 2-5 Jahren) … könnte RAG sinnlos werden und wir werden einfach so viele Tokens und Fokus haben, dass es keine Rolle mehr spielt.
Trotz meiner Fragen zum Prompt Stuffing… liebe ich RAG.
Meiner Meinung nach ist die Arbeit, die Sie mit Big-League-Embedding-Engines leisten, leistungsstark und nützlich, aber ich stimme auch zu, dass RAG… zum Scheitern verurteilt sein könnte.
Wie Sam Altman in einem kürzlichen Interview sagte… hüten Sie sich vor Geschäftsmodellen und Projektplänen, die dem LLM im Wege stehen!! Wir werden Sie überrollen! …oder so ähnlich…
Letztendlich… wollen wir vielleicht einfach unsere Sachen dem LLM geben, ohne viele Vorverarbeitungspipelines, die niedrigdimensional (Eingabe) dann hochdimensional (Einbettung) dann niedrigdimensional (Prompting) dann hochdimensional (Transformer-Inferenz) dann niedrigdimensional (Ausgabe) sind… Bob ist dein Onkel!
Hier ist ein Hintergrund zu RAG im Vergleich zu Long Context, auf den ich gerade gestoßen bin… ich habe ihn noch nicht ganz angehört, aber er scheint relevant zu sein… (ich bin mit niemandem in diesem Video verbunden
Ich habe mir das Video über Gradient long-context LLama3 angesehen. Es erinnert uns daran, dass der Kontext alles umfasst, was im Spiel ist:
Benutzereingabe
LLM-Ausgabe
Kontroll-Token
Systemanweisungen
… während das Fenster gleitet, wird etwas weggelassen. Aber sie erwähnten, dass es einen “Schutz” für den System-Prompt in Sitzungen geben kann, in denen das Kontextfenster gefüllt ist.
Es gibt auch die Probleme der “maximalen Eingabegröße” und der ursprünglichen “Sequenzlänge”, auf der das Modell trainiert wurde, die in die Gleichung einfließen können.
Unten ist ein Beispiel für Long-Context Prompt Stuffing in Aktion.
Im Allgemeinen scheint es machbar, ein Team von Discourse AI-Personas zu erstellen, die jeweils einen großen Teil spezialisierter Inhalte oder Codebasen für Abfragen haben (unter Berücksichtigung des Vorbehalts hoher Kosten pro Token!).
RAG works well for some apps, but for other fairly deterministic target cases, (eg, customer Q/A, payments, medical, etc.) myself and others have had problems getting good accuracy with RAG vector search over the past year. I.e, the bot will either miss things or make things up (poor recall, poor precision in IR terms), which is well documented by Stanford, Google, et all.
So the question arises.. why throw a bunch of chunks at the LLM if you can give it the whole corpus. At least with context injection, when the LLM isn’t accurate you have less things to tune..
Ok it’s not going to work for vast document / code libraries .. but for small and moderate sized content bases it seems to work great so far… am working on a project that is formally testing this.. ! more soon .. thanks
PS. → to make things even more interesting.. I’ve had good luck with context injection + fine tuning.. and there’s emerging approaches that combine RAG and context injection ! .. Etc etc.
Hier ist ein Q/A-Test mit einem Whitepaper (~20k Tokens), das mittels Prompt Injection vs. RAG in den Kontext gesetzt wurde. (Inhalt und Einstellungen waren so weit wie möglich gleich. LLM = Gemini-1.5-Pro)..
ANALYSE:
RAG ist inkonsistent.. findet manchmal die Antwort, manchmal fehlt sie.
Ich habe es geschafft, dass RAG Fragen aus dem Dateiupload am Anfang des Dokuments beantwortet, und mit Überredungskunst kann es sich vielleicht auch den mittleren und hinteren Teil ansehen.. es ist also kein Totalausfall.. aber es ist inkonsistent… konsistent oder schwieriger zu handhaben, meiner Meinung nach : )
Hier ist die Testdatei, falls jemand damit spielen möchte:
Die Datei enthält diese BME-Heuhaufen-‘Nadeln’, die garantiert einzigartig sind, d. h. nicht in externen Kopien des Papiers im Internet vorhanden sind.
Anfang:
Korrekturleser: Felonius Monko
Mitte:
Anmerkung des Herausgebers: Die Goldich-Stabilitätsreihe wurde von Maurice Goldrch entdeckt. Während Goldichs ursprüngliche Reihenfolge des Mineralverwitterungspotenzials qualitativ war, ordneten spätere Arbeiten von Michal Kowalski und J. Donald Rimstidt die Reihe in quantitativen Begriffen ein. Dank Dr. Gomez Pyle von der NMU für diese Klarstellung.
Ende:
Dang, S. et al. Kryo-EM-Strukturen des TMEM16A kalziumaktivierten Chloridkanals. Nature 552, 426–429 (2017).
Ich konnte den obigen Test mit GPT4o (128k Kontext) erneut ausführen und habe darauf geachtet, große Token-/Chunk-Einstellungen zu verwenden. Aber für meinen Anwendungsfall mit Whitepaper-Fragen und -Antworten ist er immer noch sehr unzuverlässig (verloren in der Mitte, verloren am Ende usw.). Hier sind meine Einstellungen, falls jemand duplizieren und verfeinern möchte. Ich würde mich freuen, wenn wir die richtigen Einstellungen für diesen Fall finden könnten:
BENUTZERDEFINIERTE KI-PERSONA
Aktiviert?
Ja
Priorität
Ja
Chat erlauben
Ja
Erwähnungen erlauben
Ja
Vision aktiviert
Nein
Name
Rag Testing Bot 3
Beschreibung
Test RAG vs. Long Context Prompt Injection
Standard-Sprachmodell
GPT-4o-custom
Benutzer
Rag_Testing_Bot_bot
Aktivierte Befehle
Categories, Read, Summary
Erlaubte Gruppen
trust_level_4
System-Prompt
Antworte so umfassend wie möglich aus dem bereitgestellten Kontext der Equatic Carbon Removal Research in der angehängten Datei. Erfinde keine Inhalte. Verwende keine Inhalte außerhalb dieser Sitzung. Konzentriere dich auf die bereitgestellten Inhalte und erstelle Antworten daraus so genau und vollständig wie möglich.