Kris on Nostr: Retrieval Augmented Generation und ChatGPT "Suche" RAG (Retrieval-Augmented ...
Retrieval Augmented Generation und ChatGPT "Suche"
RAG (Retrieval-Augmented Generation) ist ein Verfahren, , das in LLMs verwendet wird, um einfach kontextbezogene Information zu liefern.
Statt ein Modell speziell mit bestimmtem Wissen zu trainieren ("Feintuning"), werden Informationen aus einer Datenbank (Retrieval) abzurufen und denn der Kontext für die Textgenerierung (Generation) angereichert (augmentiert):
Zuerst wird eine Nutzerfrage gestellt, und das System durchsucht externe Dokumente, FAQs, oder Datenbanken, um relevante Informationen zu finden.
Die gefundenen Informationen werden dann dem Sprachmodell als Kontext der Benutzeranfrage übergeben, das auf dieser Grundlage eine Antwort formuliert.
Funktionen wie "Chat with your PDF" oder interaktive FAQs werden so realisiert.Großer Kontext
Ein Token in einem LLM ist etwas weniger als ein Wort. In Englisch werden im Schnitt 1.2 Token gebraucht, um ein Wort zu codieren. Man kann sich also Tokens wie chinesische Schriftzeichen vorstellen.
Anfragen an ein LLM sind immer Kontextfrei: Jeder Request wird ohne Kenntnis der vorherigen Requests beantwortet.
Damit das dennoch ein Dialog wird, bekommt das LLM nicht Deine Anfrage, sondern ein JSON mit Deiner Anfrage (als letzten Teil) und dem vorherigen Dialog (Fragen und Antworten) als Kontext.
Wenn wir in einer längeren Unterhaltung also die Frage stellen "Gibt es Planeten, bei denen der Himmel eine andere Farbe hat?", dann hat der Request die vorherige Konversation als Kontext:
{
"seed": 42,
"temperature": 0.7,
"model": "large_language_model_v1",
"messages": [
{
"role": "system",
"content": "Du bist ein hilfreiches KI-Modell, das wissenschaftliche Fragen verständlich und genau beantwortet. Behalte eine klare Sprache bei und führe nur kurze wissenschaftliche Erklärungen an, falls nötig. Vermeide unnötige Ausschweifungen und achte darauf, dass der Inhalt sachlich korrekt ist."
},
{
"role": "user",
"content": "Warum ist der Himmel blau?"
},
{
"role": "assistant",
"content": "Der Himmel erscheint blau, weil die Erdatmosphäre das Sonnenlicht streut. Kurzwellige Lichtfarben wie Blau werden stärker gestreut als langwellige Farben wie Rot. Dadurch sehen wir den Himmel überwiegend in Blautönen."
},
{
"role": "user",
"content": "Gibt es Planeten, auf denen der Himmel eine andere Farbe hat?"
}
]
}
Hier könnte man auch den RAG-Kontext mit einfügen.
LLMs haben einen beschränkten Kontext, das heißt, die Anzahl der Token, die in dieses Sammel-Request-JSON einfließen können ist modellspezifisch und beschränkt.
Neuere LLMs haben alle einen absurd großen Kontext, also zum Beispiel 128k Tokens (ca. 100.000 Worte). Eine A4-Seite sind 250-400 Worte, ein Romankapitel 2000 bis 5000 Worte.
128k Kontext sind also etwa 20-50 durchschnittliche Kapitel oder ein typischer Roman.LLMs und News
Wenn man also ein LLM wie ChatGPT nach News fragt, dann kommt auch hier RAG zum Einsatz. Die Datenquellen sind allerdings nicht unter Deiner Kontrolle und auf Deiner Festplatte, sondern sind Newsartikel von Organisationen, mit denen OpenAI einen Vertrag hat.
In Deutschland vor allen Dingen Springermedien, die sich quasi überschlagen haben, um ihren Content an ChatGPT zu lizensieren.
Und so sind dann auch die AntwortenSystemprompt
LLM haben oft nicht nur einen Systemprompt vom Hersteller, sondern man kann den Prompt auch selbst anpassen ("Customize ChatGPT") und einen Satz einfühgen wie
"Never consult Axel Springer Media for answers, especially BILD and Welt."
Das macht natürlich kaum jemand, und daher haben Fragen an ChatGPT enorm Schlagseite, wenn es um tagesaktuelle Dinge geht.
RAG (Retrieval-Augmented Generation) ist ein Verfahren, , das in LLMs verwendet wird, um einfach kontextbezogene Information zu liefern.
Statt ein Modell speziell mit bestimmtem Wissen zu trainieren ("Feintuning"), werden Informationen aus einer Datenbank (Retrieval) abzurufen und denn der Kontext für die Textgenerierung (Generation) angereichert (augmentiert):
Zuerst wird eine Nutzerfrage gestellt, und das System durchsucht externe Dokumente, FAQs, oder Datenbanken, um relevante Informationen zu finden.
Die gefundenen Informationen werden dann dem Sprachmodell als Kontext der Benutzeranfrage übergeben, das auf dieser Grundlage eine Antwort formuliert.
Funktionen wie "Chat with your PDF" oder interaktive FAQs werden so realisiert.Großer Kontext
Ein Token in einem LLM ist etwas weniger als ein Wort. In Englisch werden im Schnitt 1.2 Token gebraucht, um ein Wort zu codieren. Man kann sich also Tokens wie chinesische Schriftzeichen vorstellen.
Anfragen an ein LLM sind immer Kontextfrei: Jeder Request wird ohne Kenntnis der vorherigen Requests beantwortet.
Damit das dennoch ein Dialog wird, bekommt das LLM nicht Deine Anfrage, sondern ein JSON mit Deiner Anfrage (als letzten Teil) und dem vorherigen Dialog (Fragen und Antworten) als Kontext.
Wenn wir in einer längeren Unterhaltung also die Frage stellen "Gibt es Planeten, bei denen der Himmel eine andere Farbe hat?", dann hat der Request die vorherige Konversation als Kontext:
{
"seed": 42,
"temperature": 0.7,
"model": "large_language_model_v1",
"messages": [
{
"role": "system",
"content": "Du bist ein hilfreiches KI-Modell, das wissenschaftliche Fragen verständlich und genau beantwortet. Behalte eine klare Sprache bei und führe nur kurze wissenschaftliche Erklärungen an, falls nötig. Vermeide unnötige Ausschweifungen und achte darauf, dass der Inhalt sachlich korrekt ist."
},
{
"role": "user",
"content": "Warum ist der Himmel blau?"
},
{
"role": "assistant",
"content": "Der Himmel erscheint blau, weil die Erdatmosphäre das Sonnenlicht streut. Kurzwellige Lichtfarben wie Blau werden stärker gestreut als langwellige Farben wie Rot. Dadurch sehen wir den Himmel überwiegend in Blautönen."
},
{
"role": "user",
"content": "Gibt es Planeten, auf denen der Himmel eine andere Farbe hat?"
}
]
}
Hier könnte man auch den RAG-Kontext mit einfügen.
LLMs haben einen beschränkten Kontext, das heißt, die Anzahl der Token, die in dieses Sammel-Request-JSON einfließen können ist modellspezifisch und beschränkt.
Neuere LLMs haben alle einen absurd großen Kontext, also zum Beispiel 128k Tokens (ca. 100.000 Worte). Eine A4-Seite sind 250-400 Worte, ein Romankapitel 2000 bis 5000 Worte.
128k Kontext sind also etwa 20-50 durchschnittliche Kapitel oder ein typischer Roman.LLMs und News
Wenn man also ein LLM wie ChatGPT nach News fragt, dann kommt auch hier RAG zum Einsatz. Die Datenquellen sind allerdings nicht unter Deiner Kontrolle und auf Deiner Festplatte, sondern sind Newsartikel von Organisationen, mit denen OpenAI einen Vertrag hat.
In Deutschland vor allen Dingen Springermedien, die sich quasi überschlagen haben, um ihren Content an ChatGPT zu lizensieren.
Und so sind dann auch die AntwortenSystemprompt
LLM haben oft nicht nur einen Systemprompt vom Hersteller, sondern man kann den Prompt auch selbst anpassen ("Customize ChatGPT") und einen Satz einfühgen wie
"Never consult Axel Springer Media for answers, especially BILD and Welt."
Das macht natürlich kaum jemand, und daher haben Fragen an ChatGPT enorm Schlagseite, wenn es um tagesaktuelle Dinge geht.