Wie oft erfindet eine Antwort Fakten?
Eine Halluzination ist eine Behauptung in einer Antwort, die ihre Quelle nicht belegt. Ein Hilfe-Bot, der sagt, die Bibliothek öffne um 8, obwohl sie um 9 öffnet, hat halluziniert.
Um das zu steuern, messen Sie es als Quote und sagen dazu, wie sicher Sie sich bei dieser Quote sind.
Am Ende dieser Lektion
Notiz
Ich kann messen, wie oft eine Antwort sagt, was ihre Quelle nicht sagt.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Behauptung | eine einzelne Tatsache, die in einer Antwort steht |
| Quelle | der Text, auf den sich die Antwort stützen soll |
| Unbelegt | eine Behauptung, die die Quelle nicht stützt |
| Quote | unbelegte Behauptungen als Anteil aller Behauptungen |
| Intervall | der Bereich, in dem die wahre Quote liegen kann |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Jede Behauptung gegen die Quelle prüfen
Teilen Sie eine Antwort in Behauptungen, je eine Tatsache. Fragen Sie bei jeder, ob die Quelle sie sagt.
Ein einfacher erster Durchgang nutzt Schlüsselwörter. Eine Behauptung ist belegt, wenn jedes Schlüsselwort, das sie braucht, in der Quelle steht. Fehlt eines, ist sie unbelegt.
Durchgerechnetes Beispiel: vier Behauptungen zu einer Quelle
| Behauptung | Schlüsselwörter | In der Quelle? | Urteil |
|---|---|---|---|
| Sie öffnet um 9 | geöffnet, 9 | Beide | Belegt |
| Sie hat 15 Computer | computer, 15 | 15 fehlt | Unbelegt |
| Die Mahngebühr beträgt 20 Cent pro Tag | 20, cent, tag | Alle | Belegt |
| Sie hat sonntags geöffnet | sonntags | Fehlt | Unbelegt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die Quote ist eine Zahl durch eine Zahl
Zählen Sie die unbelegten Behauptungen. Teilen Sie durch alle Behauptungen und schreiben Sie das Ergebnis als Prozent. Drei unbelegte von acht sind 37,5 Prozent.
Zählen Sie Behauptungen, nicht Antworten. Eine Antwort mit fünf Behauptungen, von denen eine falsch ist, ist eine schlechte von fünf.
Neu ziehen zeigt, wie grob die Quote ist
Schreiben Sie die 40 Behauptungen als 0 für belegt und 1 für unbelegt. Ziehen Sie 40 Mal zufällig aus dieser Liste und legen Sie jede gezogene Zahl zurück. Zählen Sie die Einsen.
Wiederholen Sie das 200 Mal und sortieren Sie die Zählungen. Die 6. und die 195. begrenzen den Bereich. Ein fester Startwert lässt die Ziehungen sich wiederholen.
Durchgerechnetes Beispiel: 6 unbelegte von 40
| Schritt | Ergebnis |
|---|---|
| Behauptungen und unbelegte | 40 und 6 |
| Quote | 15 Prozent |
| Niedrigste sortierte Zählung im Bereich | 2, das sind 5 Prozent |
| Höchste sortierte Zählung im Bereich | 10, das sind 25 Prozent |
| Was Sie berichten | 15 Prozent, Bereich 5 bis 25 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele denken, 6 unbelegte von 40 hießen, die wahre Quote sei genau 15 Prozent. Es ist nur, was diese Stichprobe zeigt. Andere 40 Behauptungen könnten 10 oder 20 ergeben. Berichten Sie die Quote mit ihrem Intervall.
Die Modellhilfe schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const basis = process.env.AI_URL || \"http://ai:4000\";' '// Die Token einer Antwort oder null, wenn sie keine nennt.' 'function zaehlen(daten, name) {' ' return daten.usage && typeof daten.usage[name] === \"number\" ? daten.usage[name] : null;' '}' > model.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.
Die Modellhilfe schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function fragen(nachrichten, probe, max) {' ' try {' ' const res = await fetch(basis + \"/v1/chat/completions\", {' ' method: \"POST\",' ' headers: { \"content-type\": \"application/json\", authorization: \"Bearer lab\" },' ' body: JSON.stringify({ model: \"lab\", messages: nachrichten, max_tokens: max || 100 }),' ' signal: AbortSignal.timeout(30000),' ' });' ' if (res.ok === false) throw new Error(\"Status \" + res.status);' ' const d = await res.json();' ' return { text: d.choices[0].message.content, eingabe: zaehlen(d, \"prompt_tokens\"), ausgabe: zaehlen(d, \"completion_tokens\"), aufgezeichnet: false };' ' } catch (fehler) {' ' console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' ' return { text: probe, eingabe: null, ausgabe: null, aufgezeichnet: true };' ' }' '}' 'module.exports = { fragen };' >> model.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.
Quote und Intervall schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const quelle = \"Die Stadtbibliothek hat werktags von 9 bis 17 Uhr geöffnet. Sie hat 12 Computer. Mitglieder dürfen 6 Bücher für 3 Wochen leihen. Die Mahngebühr beträgt 20 Cent pro Tag.\";' 'const vorhanden = quelle.toLowerCase().split(\".\").join(\" \").split(\" \");' 'const behauptungen = [' ' \"geöffnet 9\", \"17 uhr\", \"computer 12\", \"computer 15\",' ' \"leihen 6 bücher\", \"wochen 4\", \"20 cent tag\", \"sonntags\",' '].map(function (b) { return b.split(\" \"); });' > quote.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.
Quote und Intervall schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function belegt(braucht) {' ' return braucht.every(function (w) { return vorhanden.indexOf(w) >= 0; });' '}' 'const schlecht = behauptungen.filter(function (b) { return belegt(b) === false; });' 'const markierungen = \"0001000001000001000000100000100000010000\".split(\"\").map(Number);' >> quote.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.
Quote und Intervall schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function intervall(liste, start) {' ' const n = liste.length;' ' const zaehlungen = [];' ' let s = start;' ' for (let r = 0; r < 200; r++) {' ' let summe = 0;' ' for (let k = 0; k < n; k++) { s = (s * 16807) % 2147483647; summe += liste[s % n]; }' ' zaehlungen.push(summe);' ' }' ' zaehlungen.sort(function (a, b) { return a - b; });' ' return [zaehlungen[5] * 100 / n, zaehlungen[194] * 100 / n];' '}' >> quote.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.
Quote und Intervall schreiben, Teil 4
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' console.log(\"unbelegt: \" + schlecht.length + \" von \" + behauptungen.length + \" (\" + (schlecht.length * 100 / behauptungen.length) + \" Prozent)\");' ' const einsen = markierungen.filter(function (m) { return m === 1; }).length;' ' const spanne = intervall(markierungen, 12345);' ' console.log(\"größerer Test: \" + einsen + \" von \" + markierungen.length + \" = \" + (einsen * 100 / markierungen.length) + \" Prozent\");' ' console.log(\"Intervall: \" + spanne[0] + \" bis \" + spanne[1] + \" Prozent\");' ' const q = \"Die Quelle sagt, die Bibliothek öffnet um 9 Uhr. Ist diese Behauptung belegt: Sie öffnet um 8? Ein kurzer Satz.\";' ' const probe = \"Nein, laut Quelle öffnet sie um 9 Uhr, also ist die Behauptung nicht belegt.\";' ' const antwort = await fragen([{ role: \"user\", content: q }], probe, 60);' ' console.log(\"Das Modell sagte: \" + antwort.text);' '}' 'main();' >> quote.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.
Quote und Intervall ausführen
docker exec -w /home/node/project agent node quote.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 der Run ausgibt
| Zeile | Was sie zeigt |
|---|---|
| unbelegt: 3 von 8 (37.5 Prozent) | Die Schlüsselwort-Prüfung bei acht Behauptungen |
| größerer Test: 6 von 40 = 15 Prozent | Eine aufgezeichnete Liste mit 40 Behauptungen |
| Intervall: 5 bis 25 Prozent | Der durch Neuziehen gewonnene Bereich |
| Das Modell sagte: ... | Eine echte Prüfung aus dem Labor. Eine Aufgezeichnete Probe, wenn kein Modell antwortet |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.