Es bildete die Grundlage fuer neuartige neuronale Netzwerke zur Verarbeitung und zum Verstaendnis natuersslicher Sprache. Kurz darauf popularisierte OpenAI die GPT-Modelle und leitete mit ChatGPT die Aera der Large Language Models (LLMs) ein.
Die dialogfaehige Leistung dieser Modelle hat viele Menschen glauben lassen, dass KI kurz davor sei, menschliche Intelligenz zu erreichen. Doch trotz ihres „menschlichen“ Verhaltens sehen, interpretieren und verstehen LLMs die Welt nicht wie Menschen.
Sie sind keine logischen Denkmaschinen, sondern eher probabilistische Konversationssimulatoren.
Ihr Verhalten basiert auf Mustererkennung und semantischen Korrelationen, nicht auf Logik oder Verstehen. INNOCHAT wird von OpenAI-LLMs betrieben und nutzt Retrieval Augmented Generation (RAG), um Antworten anhand Ihrer hochgeladenen Daten anzupassen.
Was ist Retrieval Augmented Generation (RAG)?
LLMs werden mit riesigen Textmengen trainiert.Sie erkennen Muster und generieren neue Texte basierend auf der Wahrscheinlichkeit, dass bestimmte „Tokens“ (Worte oder Wortteile) aufeinander folgen. Daher nennt OpenAI viele Endpunkte Chat Completions – das Modell „vollendet“ den Prompt.
Eine ausfuehrliche Erklaerung zu Tokens finden Sie in der offiziellen OpenAI-Dokumentation:
https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them
LLMs koennen sehr leicht halluzinieren, wenn keine relevanten Daten vorliegen. RAG versucht dieses Problem zu loesen, indem es dem Prompt zusaetzlichen Kontext hinzufuegt, der die Wahrscheinlichkeiten beeinflusst.
Beispiel
Prompt ohne Kontext:Der Kontext beeinflusst die Token-Generierung und fuehrt zu einer praeziseren Antwort. Das ist RAG: Der Prompt wird mit relevanten Wissensquellen angereichert, ohne das Modell selbst zu veraendern.
Warum füttern wir nicht einfach alle Daten auf einmal?
Weil Tokenlimits existieren. Ein OpenAI-Modell wie gpt-3.5-16k kann etwa 10.000 Woerter als Kontext aufnehmen.Ihre Wissensbasis besteht oft aus Hunderten Seiten oder Tausenden Dokumenten – also weit mehr als in ein einziges LLM-Fenster passt. Deshalb:
- Dokumente werden in Chunks geteilt
- Jeder Chunk wird „eingebettet“ (Embedding)
- Embeddings werden in einer Vektordatenbank gespeichert
- Bei jeder Nutzeranfrage werden die relevantesten Chunks gesucht
- Diese werden in den Prompt eingefuegt
- Das LLM antwortet auf Basis dieses kontextualisierten Prompts
Aehnliche Saetze liegen im Vektorraum „naeher beieinander“. Eine gute Einfuehrung in Embeddings:
https://stackoverflow.blog/2023/11/09/an-intuitive-introduction-to-text-embeddings/
Beispiel: Anfrage „What is innoChat?“
Der relevanteste Chunk ist:
https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-customize-rag.html
Welche Typen von Anfragen funktionieren gut?
| Anfrage-Typ | Beschreibung | Beispiel |
|---|---|---|
| Information Retrieval | Zielt auf konkrete Infos aus Dokumenten | “What is Paladin Max, Inc.’s PTO policy?” |
| Topic-centric Summaries | Zusammenfassung eines thematischen Bereichs | “Summarize the latest developments in generative AI” |
Welche Typen von Anfragen funktionieren schlecht?
| Anfrage-Typ | Beschreibung | Beispiel |
|---|---|---|
| Dokumentvergleich | Vergleich ohne klare Kriterien | “Find inconsistencies across all arguments in my documents.” |
| Zaehlen oder Mathematik | Quantitative Analyse anhand der Trainingsdaten | “How many times is John mentioned across the contracts?” |
| Meta-Level Instructions | Verweis auf Dokumentstruktur / Seitenzahlen | “Summarize section 3 (pages 33–37) of this report.” |
| Library-wide Metadata Queries | Fragen, die mehrere Dokumente statistisch betreffen | “How many documents mention topic X and list them in a table.” |
| Longform Text Generation | Sehr lange Texte auf Grundlage bereitgestellter Dokumente | “Write a 5000 word literature review.” |
- Multi-Agent-Architektur
- Function Calling
Moeglicherweise koennen Sie die Leistung Ihres Chatbots verbessern, indem Sie Ihre Trainingsdaten optimieren.
Lesen Sie hierzu: 👉 Best practices for preparing training data