Eine Suchmaschine für eine Seite Regeln
Retrieval-Augmented Generation ist ein Werkzeug mit Kosten, und manchmal ist es das falsche. Es bringt Zerlegen, Vektoren und eine Suche mit, die die Antwort verfehlen kann.
Ein Radclub hat eine Seite Regeln. Ein Student baut dafür ein ganzes Abrufsystem. Die Seite hätte in die Aufforderung gepasst, und nun kann die Suche das sein, was versagt.
Am Ende dieser Lektion
Notiz
Ich kann sagen, wann der Abruf das falsche Werkzeug ist.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Kontextfenster | die größte Textmenge, die ein Modell auf einmal liest | |
| Token | ein kleines Textstück, das ein Modell zählt | etwa 3/4 Wort |
| Budget | die größte Zahl an Token, die Sie ausgeben wollen | |
| Live-Daten | Fakten, die sich alle paar Minuten ändern | |
| Abruf | das Finden der Stücke, die eine Frage beantworten |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Abruf ist ein Tausch, keine Gewohnheit
Der Abruf lässt ein Modell mehr Text nutzen, als in eine Aufforderung passt. Das ist sein Gewinn.
Er kostet Arbeit und bringt Risiko. Sie müssen zerlegen, Vektoren bauen und eine Suche einstellen. Die Suche kann das falsche Stück liefern oder keines, und dann entsteht die Antwort aus dem falschen Text. Können Sie ihn sparen, sparen Sie ihn.
Ein kleines Dokument passt ganz hinein
Ein Modell liest nur eine begrenzte Textmenge auf einmal: sein Kontextfenster. Text wird in Token gezählt. Im Englischen ist ein Token etwa drei Viertel eines Wortes, im Deutschen meist etwas weniger. Das ist eine Faustregel, keine genaue Zählung.
Wählen Sie ein Budget an Token für den Kontext. Liegt das ganze Dokument darunter, legen Sie alles hinein. Es gibt nichts zu suchen, also nichts zu verfehlen.
Beispiel: sechs Fälle, vier Methoden
| Fall | Methode | Warum |
|---|---|---|
| Eine Seite Regeln | Ganz in die Aufforderung | Sie passt, also gibt es nichts zu suchen |
| Ein Handbuch mit 40.000 Wörtern | Abruf | Zu groß: die wenigen wichtigen Stücke finden |
| Die Summe der Gebühren für 17 Bücher | Im Code rechnen | Ein Modell kann sich verrechnen |
| Die Verspätung des nächsten Busses | Live-Abfrage | Sie ändert sich jede Minute, ein Speicher veraltet |
| Eine Ordnung von 3 Seiten, nach der selten gefragt wird | Ganz in die Aufforderung | Sie passt, und der Mehraufwand ist klein |
| Das Intranet einer Hochschule, tausende Seiten | Abruf | Keine Aufforderung kann es fassen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Dokument am Budget messen
Das nächste Skript hält die Regeln des Radclubs und zählt die Wörter. Es rechnet mit der Faustregel Wörter in Token um und vergleicht mit einem Budget von 3000.
Dasselbe tut es für ein Handbuch von 40.000 Wörtern, nur mit der Zahl, und baut dann die ganze Aufforderung für die Regeln. Es ruft kein Modell auf.
Das Budget-Skript schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const regeln = \"Die Ausfahrten starten um 9 Uhr an der alten Mühle. Jede Fahrerin und jeder Fahrer trägt einen Helm. Eine Gruppe hat höchstens 12 Radfahrende und eine Leitung. Die Leitung bestimmt das Tempo und wartet an jeder Abzweigung. Licht ist Pflicht bei jeder Fahrt, die nach Sonnenuntergang endet. Der Beitrag beträgt 20 Euro im Jahr. Gäste dürfen zwei Fahrten mitfahren, bevor sie zahlen. Bei Glatteis oder starkem Regen fällt die Fahrt aus, und die Leitung sagt bis 7 Uhr allen Bescheid. Niemand bleibt zurück. Melden Sie jeden Sturz noch am selben Tag der Leitung.\";' '// Faustregel: Ein Token ist etwa drei Viertel eines Wortes. Sie ist grob.' 'function tokenFuer(woerter) { return Math.round(woerter * 4 / 3); }' 'const BUDGET = 3000;' > ganz.js"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Das Budget-Skript schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const dokumente = [' ' { name: \"Regeln des Radclubs\", woerter: regeln.split(\" \").length },' ' { name: \"Handbuch der Bibliothek\", woerter: 40000 },' '];' 'dokumente.forEach(function (eins) {' ' const bedarf = tokenFuer(eins.woerter);' ' const urteil = bedarf <= BUDGET ? \"passt ganz hinein\" : \"braucht Abruf\";' ' console.log(eins.name + \": \" + eins.woerter + \" Wörter, etwa \" + bedarf + \" Token, \" + urteil);' '});' 'const aufforderung = \"Antworten Sie nur anhand der Clubregeln.\n\n\" + regeln + \"\n\nFrage: Wie viele Radfahrende dürfen höchstens in einer Gruppe sein?\";' 'console.log(\"Die ganze Aufforderung hat\", aufforderung.length, \"Zeichen. Eine Suche ist nicht nötig.\");' >> ganz.js"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Ausführen und die Urteile lesen
docker exec -w /home/node/project agent node ganz.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was es ausgibt
| Zeile | Was sie zeigt |
|---|---|
| Regeln des Radclubs: 93 Wörter, etwa 124 Token, passt ganz hinein | Weit unter dem Budget |
| Handbuch der Bibliothek: 40000 Wörter, etwa 53333 Token, braucht Abruf | Weit darüber |
| Die ganze Aufforderung hat 670 Zeichen. Eine Suche ist nicht nötig. | Klein genug, um sie so zu senden |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele glauben, Abruf sei immer besser, als das Dokument in die Aufforderung zu legen. Passt das Dokument, bringt der Abruf eine Suche mit, die die Antwort verfehlen kann. Nutzen Sie ihn, wenn es sein muss, nicht weil er fortschrittlich klingt.