Sicher oder nur laut?
Eine Wetterfunktion zeigt „73,4 % Regenwahrscheinlichkeit“, eine andere „wahrscheinlich Regen“. Welche ist ehrlicher, wenn die Vorhersage nur auf zehn Prozent genau ist?
Die erste wirkt exakt, ist es aber nicht. Wer zeigt, wie sicher eine Antwort ist, wählt Worte und Zahlen, die zu dem passen, was er wirklich weiß.
Am Ende dieser Lektion
Notiz
Ich kann zeigen, wie sicher eine Antwort ist, ohne falsche Genauigkeit.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Punktzahl | eine Zahl dafür, wie sicher eine Antwort ist | 64 |
| Stufe | ein Wort, das aus einer Punktzahl gewählt wird | mittel |
| Schwelle | die Punktzahl, bei der die Stufe wechselt | |
| Scheingenauigkeit | eine Zahl mit mehr Stellen, als man weiß | |
| Quelle | der Text, aus dem eine Antwort stammt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Wort ist leichter zu nutzen als 64
Eine Punktzahl wie 64 sagt den meisten wenig. Ein Wort wie „mittel“ sagt ihnen, was zu tun ist: prüfen.
Wählen Sie die Schwellen einmal, schreiben Sie sie auf und nutzen Sie sie überall. Dann bedeutet „hoch“ auf jedem Bildschirm dasselbe.
Zeigen Sie keine Stellen, die Sie nicht haben
Eine Punktzahl 64 aus einer groben Prüfung ist nicht wirklich 64 und auch nicht 63. Zeigen Sie „etwa 60“ oder nur die Stufe.
Zeigen Sie auch, woher eine Antwort stammt. Eine Quelle lässt die Person nachprüfen. Bei sehr niedriger Punktzahl lehnt ein ehrliches Design ab und sagt, warum.
Ein häufiger Fehler
Warnung
Viele glauben, die Sicherheit, die ein Modell selbst angibt, sei eine echte Wahrscheinlichkeit. Das stimmt nicht immer. Nehmen Sie eine Punktzahl als grobe Orientierung und prüfen Sie die Stufen an bekannten Fällen. Halten Sie die Schwellen stetig: Mehr Punkte ergeben nie eine schlechtere Stufe.
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.
Stufenmacher schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const SCHWELLEN = [[80, \"hoch\"], [50, \"mittel\"]];' 'const ANTWORTEN = [' ' { id: \"f1\", punkte: 91 },' ' { id: \"f2\", punkte: 80 },' ' { id: \"f3\", punkte: 64 },' ' { id: \"f4\", punkte: 49 },' ' { id: \"f5\", punkte: 12 },' '];' > unsicher.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.
Stufenmacher schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function stufe(punkte) {' ' for (const s of SCHWELLEN) {' ' if (punkte >= s[0]) return s[1];' ' }' ' return \"niedrig\";' '}' 'function gerundet(punkte) {' ' return Math.floor((punkte + 5) / 10) * 10;' '}' >> unsicher.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.
Stufenmacher schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' const zaehler = { hoch: 0, mittel: 0, niedrig: 0 };' ' for (const a of ANTWORTEN) {' ' zaehler[stufe(a.punkte)]++;' ' console.log(a.id + \" Punkte \" + a.punkte + \" gezeigt etwa \" + gerundet(a.punkte) + \" Stufe \" + stufe(a.punkte));' ' }' ' console.log(\"Zähler \" + JSON.stringify(zaehler));' ' const frage = \"Schreiben Sie eine kurze Zeile, die einem Studenten sagt, dass Sie nicht sicher sind und er die Quelle prüfen soll.\";' ' const r = await fragen([{ role: \"user\", content: frage }], \"Da bin ich nicht sicher. Bitte prüfen Sie die Quelle.\", 30);' ' console.log(\"Ablehnungszeile: \" + r.text);' '}' 'main();' >> unsicher.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.
Stufenmacher ausführen
docker exec -w /home/node/project agent node unsicher.jsHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Eine mögliche Ausgabe
| Zeile | Was sie zeigt |
|---|---|
| f1 Punkte 91 gezeigt etwa 90 Stufe hoch | Hoch, und die Zahl ist gerundet |
| f2 Punkte 80 gezeigt etwa 80 Stufe hoch | 80 liegt auf der Schwelle, also hoch |
| f4 Punkte 49 gezeigt etwa 50 Stufe niedrig | Die Rundung sagt 50, die Stufe sagt niedrig |
| Zähler {"hoch":2,"mittel":1,"niedrig":2} | Je zwei an den Enden und eine in der Mitte |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.