Ein Bericht ist eine Liste von Behauptungen
Der Bericht eines Arbeiters ist eine Menge von Behauptungen, und jede sagt, sie stamme aus einer Quelle. Das ist wichtig, denn ein Arbeiter, der keine Antwort findet, schreibt oft eine, die richtig klingt.
Der Orchestrator sieht den Unterschied beim Lesen nicht. Er muss jede Behauptung gegen die Quelle prüfen, die sie nennt.
Am Ende dieser Lektion
Notiz
Ich kann erkennen, wann der Bericht eines Arbeiters nicht durch seine Quellen belegt ist, und die Behauptungen markieren, die durchfallen.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Behauptung | eine Aussage in einem Bericht, die wahr oder falsch sein kann |
| Quelle | der Text, aus dem eine Behauptung angeblich stammt |
| Belegt | die Quelle sagt wirklich, was die Behauptung sagt |
| Prüfer | ein zweiter Agent, der eine Behauptung und ihre Quelle liest |
| Stichprobe | wenige Behauptungen von Hand lesen, nach einem festen Muster gewählt |
| Erfindung | eine Behauptung, die der Arbeiter erfand, um eine Lücke zu füllen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Drei Prüfungen, von billig bis teuer
Die billigste Prüfung ist ein Programm. Existiert die genannte Quelle, und stehen die Zahlen der Behauptung darin? Das fängt erfundene Quellen und falsche Zahlen.
Als Nächstes kommt ein Prüfer, ein Modell, das Behauptung und Quelle liest. Die teuerste ist ein Mensch, der wenige nach einer festen Regel gewählte Behauptungen liest.
Ausgearbeitetes Beispiel: was jede Prüfung fängt
| Prüfung | Fängt | Übersieht |
|---|---|---|
| Programm: Quelle und Zahlen | Eine erfundene Quelle, eine falsche Zahl | Eine Behauptung, die den Sinn umkehrt |
| Prüfermodell | Viele umgekehrte Aussagen | Eigene Fehler und den Hang zuzustimmen |
| Stichprobe durch einen Menschen | Was die beiden anderen übersahen | Alles, was nicht gezogen wird |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Warum Arbeiter erfinden
Ein Arbeiter wird für eine Antwort belohnt, leere Hände sehen also nach Misserfolg aus. Sagen Sie ihm, dass keine Antwort erlaubt ist: ein Auftrag, der verlangt, «nicht gefunden» zu antworten, wenn das Material nichts sagt.
Zählen Sie dann die Antworten «nicht gefunden». Ein Arbeiter, der nie so antwortet, erfindet wahrscheinlich.
Ein häufiger Fehler
Warnung
Viele lesen eine Quellenangabe als Beweis. Eine Behauptung, die eine Quelle nennt, kann sich über sie trotzdem irren. Geprüft wird, ob die Quelle es sagt, nicht, ob die Behauptung eine nennt.
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.
Den Prüfer schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const QUELLEN = {' ' s1: \"Umfrage: 212 von 400 Besuchern wünschten sich Sonntagsöffnung.\",' ' s2: \"Personal: sechs Stunden zu 18 Euro pro Stunde sind 108 Euro an jedem Sonntag.\",' ' s3: \"Besuche: Samstag gab es letzten Monat 310 Besuche, an einem Werktag 120.\",' '};' 'const BEHAUPTUNGEN = [' ' { text: \"212 von 400 Besuchern wünschten sich Sonntagsöffnung.\", quelle: \"s1\" },' ' { text: \"Das Personal kostet am Sonntag 108 Euro.\", quelle: \"s2\" },' ' { text: \"Am Samstag gab es letzten Monat 410 Besuche.\", quelle: \"s3\" },' ' { text: \"Die meisten Leser wünschen längere Leihfristen.\", quelle: \"s1\" },' ' { text: \"Das Personal hält die Öffnung für gerecht.\", quelle: \"s7\" },' ' { text: \"An Werktagen kamen mehr Besuche als am Samstag.\", quelle: \"s3\" },' '];' > pruefen.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.
Den Prüfer schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function zahlen(t) { return t.match(/[0-9]+/g) || []; }' 'function woerter(t) {' ' return (t.toLowerCase().match(/\p{L}+/gu) || []).filter(function (w) { return w.length >= 5; });' '}' >> pruefen.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.
Den Prüfer schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Eine billige Prüfung: Die Quelle existiert, ihre Zahlen stimmen, die Hälfte der langen Wörter steht darin.' 'function warum(b) {' ' const text = QUELLEN[b.quelle];' ' if (text === undefined) return \"Quelle fehlt\";' ' const bekannt = zahlen(text);' ' if (zahlen(b.text).some(function (n) { return bekannt.includes(n) === false; })) return \"Zahl steht nicht in der Quelle\";' ' const w = woerter(b.text);' ' const gefunden = w.filter(function (x) { return woerter(text).includes(x); });' ' return 2 * gefunden.length >= w.length ? \"\" : \"Wörter stehen nicht in der Quelle\";' '}' >> pruefen.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.
Den Prüfer schreiben, Teil 4
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' BEHAUPTUNGEN.forEach(function (b, i) {' ' console.log((i + 1) + \" \" + (warum(b) === \"\" ? \"besteht die Prüfung\" : \"MARKIERT: \" + warum(b)));' ' });' ' console.log(\"Stichprobe, jede 3. Behauptung: \" + [1, 4].join(\", \"));' ' const b = BEHAUPTUNGEN[5];' ' const q = [{ role: \"user\", content: \"Quelle: \" + QUELLEN.s3 + \" Behauptung: \" + b.text + \" Belegt die Quelle die Behauptung? Antworten Sie mit Ja oder Nein.\" }];' ' const r = await fragen(q, \"Nein\", 10);' ' console.log(\"Prüfer zu Behauptung 6: \" + r.text.trim());' '}' 'main();' >> pruefen.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.
Den Prüfer starten
docker exec -w /home/node/project agent node pruefen.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 das Programm nicht sieht
Behauptung 6 sagt, an Werktagen kamen mehr Besuche als am Samstag. Die Quelle sagt das Gegenteil. Das Programm lässt sie durch, weil die Wörter passen. Nur ein Prüfer oder ein Mensch liest den Sinn.
Der eine Live-Aufruf befragt einen Prüfer zu dieser Behauptung. Seine Antwort kann bei jedem Lauf anders sein, und sie kann falsch sein.
Eine mögliche Ausgabe
| Zeile | Was sie zeigt |
|---|---|
| 1 besteht die Prüfung, 2 besteht die Prüfung | Zahlen und Wörter passen |
| 3 MARKIERT: Zahl steht nicht in der Quelle | Die Behauptung sagt 410, die Quelle 310 |
| 4 MARKIERT: Wörter stehen nicht in der Quelle | Nichts in der Quelle handelt von Leihfristen |
| 5 MARKIERT: Quelle fehlt | Sie nennt s7, das nicht existiert |
| 6 besteht die Prüfung | Sie besteht, obwohl der Sinn umgekehrt ist |
| Stichprobe, jede 3. Behauptung: 1, 4 | Diese beiden liest ein Mensch von Hand |
| Prüfer zu Behauptung 6: … | Eine zweite Meinung, nie ein Beweis |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.