Die Beschreibung klingt richtig, stimmt sie aber?
Ein Modell beschreibt ein Foto: zwei Katzen, ein roter Ball und ein Schild mit OFFEN. Es klingt sicher. Doch ein Modell kann einen Hund hinzufügen, der nicht da ist, oder drei Katzen nennen, wo es zwei sind.
Diese Lektion zeigt, wie Sie jede Behauptung mit dem abgleichen, was Sie über die Eingabe wissen.
Am Ende dieser Lektion
Notiz
Ich kann jede Behauptung in der Beschreibung eines Modells mit bekannten Tatsachen abgleichen und entscheiden, ob ich die Antwort annehme.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Behauptung | eine einzelne Aussage einer Antwort über die Eingabe |
| Beleg | die bekannte Tatsache, mit der man eine Behauptung abgleicht |
| Erfunden | eine Behauptung über etwas, das nicht in der Eingabe ist |
| Ungeprüft | eine Behauptung, zu der es keine Tatsache zum Abgleich gibt |
| Urteil | das Ergebnis der Prüfung einer Behauptung |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine Antwort in Behauptungen zerlegen
Eine Antwort lässt sich leichter prüfen, wenn Sie sie in Behauptungen zerlegen, jede klein genug, um wahr oder falsch zu sein. „Zwei Katzen und ein roter Ball“ sind drei Behauptungen.
Prüfen können Sie nur, wozu Sie eine Tatsache haben. Sie kann aus der Eingabe selbst stammen, etwa durch Zählen in einem Raster, oder von einer Person, die das Bild kennt.
Vier Behauptungen und ihre Tatsachen
| Behauptung | Bekannte Tatsache | Urteil |
|---|---|---|
| Es gibt 2 Katzen | Katzen: 2 | belegt |
| Es gibt 3 Katzen | Katzen: 2 | falsche Zahl |
| Es gibt einen Hund | kein Hund gezählt | erfunden |
| Die Tür ist rot | keine Farbe für die Tür bekannt | ungeprüft |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Erst das Erfundene, dann der Abgleich
Prüfen Sie jede Behauptung in fester Reihenfolge. Zuerst: Gibt es das Ding überhaupt? Wenn nicht, ist sie erfunden. Dann: Gibt es eine Tatsache zum Abgleich? Wenn nicht, ist sie ungeprüft.
Erst danach vergleichen Sie den Wert. Stimmt er nicht, nennen Sie das Urteil bei Namen, etwa falsche Zahl oder falsche Farbe.
Ein häufiger Fehler
Warnung
Viele nehmen eine Antwort an, weil das meiste daran stimmt. Eine einzige erfundene Behauptung reicht aber, um die ganze Antwort zu verwerfen, denn dann hat das Modell etwas gesehen, das nicht da ist. Entscheiden Sie nach dem schlimmsten Urteil.
Modell-Helfer 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.
Modell-Helfer 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.
Prüf-Skript schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const raster = [\"..R...\", \".B..R.\", \"R.....\", \"...G..\"];' 'const behauptungen = [' ' { art: \"zahl\", ding: \"R\", wert: 3 },' ' { art: \"zahl\", ding: \"B\", wert: 2 },' ' { art: \"zahl\", ding: \"S\", wert: 1 },' ' { art: \"vorhanden\", ding: \"G\" },' '];' > pruefen5.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.
Prüf-Skript schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function tatsachen(r) {' ' const zaehler = {};' ' for (const zeile of r) {' ' for (const z of zeile) {' ' if (z === \".\") continue;' ' zaehler[z] = (zaehler[z] || 0) + 1;' ' }' ' }' ' return zaehler;' '}' >> pruefen5.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.
Prüf-Skript schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function urteil(zaehler, b) {' ' if (b.art === \"vorhanden\") return b.ding in zaehler ? \"belegt\" : \"erfunden\";' ' if ((b.ding in zaehler) === false) return \"erfunden\";' ' return zaehler[b.ding] === b.wert ? \"belegt\" : \"falsche Zahl\";' '}' >> pruefen5.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.
Prüf-Skript schreiben, Teil 4
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' const zaehler = tatsachen(raster);' ' console.log(\"Tatsachen \" + JSON.stringify(zaehler));' ' for (const b of behauptungen) {' ' const wert = b.wert === undefined ? \"\" : \" \" + b.wert;' ' console.log(b.art + \" \" + b.ding + wert + \": \" + urteil(zaehler, b));' ' }' ' const frage = \"Warum sollte man die Beschreibung eines Bildes mit dem Bild abgleichen? Antworten Sie in einem kurzen Satz.\";' ' const antwort = await fragen([{ role: \"user\", content: frage }], \"Eine Beschreibung kann etwas hinzufügen oder eine Zahl falsch nennen, also gleichen Sie sie mit dem Bild ab.\", 40);' ' console.log(\"Antwort: \" + antwort.text);' '}' 'main();' >> pruefen5.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.
Vier Behauptungen prüfen
docker exec -w /home/node/project agent node pruefen5.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Zeilen, die der Run druckt
| Zeile | Was sie zeigt |
|---|---|
| Tatsachen {"R":3,"B":1,"G":1} | Die gezählten Buchstaben des Rasters |
| zahl R 3: belegt | Drei R stehen im Raster |
| zahl B 2: falsche Zahl | Es gibt ein B, nicht zwei |
| zahl S 1: erfunden | Im Raster steht kein S |
| vorhanden G: belegt | Ein G ist da |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.