Der Chatbot kennt unsere Regeln nicht
Ein Online-Shop baut einen Chatbot für Kundenfragen. Im Chat fragt jemand: „Wie lange habe ich Zeit für eine Rücksendung?“
Das Sprachmodell antwortet freundlich und sicher: „14 Tage.“ Im Shop gelten aber 30 Tage.
Das Modell hat die Regeln des Shops nie gesehen. Wie bekommt es die richtigen Fakten? Darum geht es heute.
Am Ende dieser Lektion
Notiz
Ich kann erklären, wie eine App einem Sprachmodell die richtigen Fakten gibt.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Sprachmodell | ein Modell, das zu einem Text den wahrscheinlich nächsten Textteil vorhersagt | ein Chatbot |
| Token | ein Textstück, mit dem das Modell rechnet: ein Wort oder ein Teil davon | |
| Prompt | der Text, den die App an das Modell schickt: Anweisung, Frage und Fakten | |
| Halluzination | eine Antwort, die sicher klingt, aber erfunden oder falsch ist | |
| RAG | erst passende Textstücke suchen, dann dem Modell mitgeben | Retrieval-Augmented Generation |
| Vektorsuche | eine Suche nach Bedeutung statt nach gleichen Wörtern |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Was ein Sprachmodell tut
Ein Sprachmodell wurde mit riesigen Mengen Text trainiert. Es sagt zu einem Text voraus, was wahrscheinlich als Nächstes kommt.
Es rechnet dabei mit Token: Textstücken, oft ein Wort oder ein Teil davon. Es klingt deshalb flüssig, prüft aber keine Fakten.
Drei Grenzen, die jede App kennen muss
Erstens: Das Modell kennt nur, was bis zu seinem Training im Text stand. Neue Preise kennt es nicht.
Zweitens: Es kennt keine privaten Daten wie Ihre Rückgaberegeln.
Drittens: Es kann erfinden. Eine solche Antwort heißt Halluzination. Sie klingt genauso sicher wie eine richtige.
Die Idee: erst suchen, dann fragen
Wir müssen das Modell nicht neu trainieren. Die App gibt ihm die Fakten einfach mit.
Das geht in drei Schritten. Erstens sucht die App in den eigenen Texten die Absätze, die zur Frage passen. Zweitens schreibt sie diese Absätze zusammen mit der Frage in den Prompt. Drittens antwortet das Modell auf dieser Grundlage.
Dieses Vorgehen heißt RAG: erst suchen (Retrieval), dann mit dem Fund antworten lassen.
Eine einfache Suche in Python
# Drei Absätze aus dem Hilfe-Bereich eines Shops.
passagen = [
"Retouren sind 30 Tage nach Erhalt der Ware kostenlos möglich",
"Die Lieferung dauert in Deutschland meist zwei bis drei Werktage",
"Rechnungen finden Sie im Kundenkonto unter Meine Bestellungen",
]
frage = "wie lange dauert die lieferung nach deutschland"
def gemeinsame_woerter(frage, text):
zaehler = 0
woerter_text = text.lower().split()
for wort in frage.lower().split():
if wort in woerter_text:
zaehler = zaehler + 1
return zaehler
beste = passagen[0]
beste_punkte = -1
for passage in passagen:
punkte = gemeinsame_woerter(frage, passage)
print(punkte, "gemeinsame Wörter:", passage)
if punkte > beste_punkte:
beste_punkte = punkte
beste = passage
# Die App baut aus Frage und bestem Absatz die Anweisung für das Sprachmodell.
print("Anweisung: Antworte nur mit diesem Text:", beste)
print("Frage:", frage)
Wörter zählen reicht nicht immer
Die Suche im Code zählt gleiche Wörter. Jemand fragt aber: „Wie komme ich an mein Geld zurück?“ Im Text steht „Erstattung“. Kein Wort ist gleich.
Auch kleine Wörter wie „die“ zählen mit. Für gute Treffer braucht man eine Suche nach Bedeutung.
Vektorsuche in Worten
Ein anderes Modell wandelt jeden Absatz in eine Liste von Zahlen um, einen Vektor. Texte mit ähnlicher Bedeutung bekommen ähnliche Zahlen.
Die Frage wird genauso umgewandelt. Die App sucht dann die Absätze, deren Zahlen der Frage am nächsten liegen. Das ist die Vektorsuche.
Echte Vektoren haben mehrere Hundert Zahlen. In der Tabelle sehen Sie nur zwei.
Rechenbeispiel: der nächste Absatz
| Text | Zahl für Lieferung | Zahl für Rechnung | Abstand zur Frage |
|---|---|---|---|
| Frage: Wie lange dauert die Lieferung? | 9 | 1 | 0 |
| Absatz: Lieferzeit | 8 | 1 | 1 |
| Absatz: Retouren | 5 | 3 | 6 |
| Absatz: Rechnungen | 1 | 9 | 16 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Tabelle lesen
Der Abstand ist der Unterschied je Zahl, zusammengezählt. Für „Lieferzeit“ sind das 1 plus 0, also 1.
Der kleinste Abstand gewinnt. Die App nimmt also den Absatz „Lieferzeit“ und gibt ihn dem Modell mit. Es gibt auch andere Arten, einen Abstand zu messen. Das Prinzip bleibt gleich.
Ein häufiger Irrtum
Warnung
Viele glauben, RAG verhindert Halluzinationen ganz. Das stimmt nicht. Findet die Suche den falschen Absatz, antwortet das Modell auf falscher Grundlage. Prüfen Sie deshalb, was gefunden wurde, und zeigen Sie die Quelle an.
Datenschutz im Blick
Tipp
Alles im Prompt wird an das Modell geschickt, oft an einen fremden Dienst. Schicken Sie keine Namen, Adressen oder Gesundheitsdaten von Kundinnen und Kunden mit, ohne dass dies erlaubt und geklärt ist.