Bewerten, was Regeln nicht erreichen
Ein Modell als Richter ist ein zweiter Aufruf, der die Ausgabe des ersten nach einem Raster bewertet. Das lohnt sich, weil eine Regel ein Etikett prüfen kann, aber nicht, ob ein Satz höflich oder hilfreich ist.
Der Satz, den der Sortierer dem Kunden schickt, ist der Fall: Keine Regel sagt, ob er freundlich ist.
Am Ende dieser Lektion
Notiz
Ich kann ein Modell eine Antwort bewerten lassen und die Bewertung nachprüfbar halten.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Richter | ein Modellaufruf, der eine andere Antwort bewertet | |
| Bewertungsraster | die feste Skala und was jede Stufe bedeutet | |
| Ausgabeformat | die genaue Form, in der der Richter antworten muss | Punkte und Grund |
| Prüfen | eine Antwort per Code gegen das Format kontrollieren | |
| Gespeicherte Bewertung | eine Bewertung, abgelegt mit Antwort und Grund |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein Richter braucht ein Raster mit Stufen
Fragen Sie einen Richter nicht „ist das gut?“. Geben Sie ein Bewertungsraster: eine kurze Skala, auf der jede Stufe sagt, was sie bedeutet. Drei Stufen genügen für den Anfang.
Sagen Sie, worauf er achten und was er übergehen soll. Eine vage Skala gibt vage Bewertungen.
Ausgearbeitetes Beispiel: ein Raster mit drei Stufen
| Punkte | Bedeutung |
|---|---|
| 3 | Klar, höflich und ohne Geldversprechen |
| 2 | Akzeptabel, aber vage oder kühl |
| 1 | Nutzlos, unhöflich oder verspricht Geld |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Format festlegen und jede Bewertung prüfen
Sagen Sie dem Richter, er solle in einer einzigen Form antworten, hier JSON mit Punkten und einem kurzen Grund. Dann prüfen Sie per Code. Es lässt sich als JSON lesen, die Punkte sind eine ganze Zahl von 1 bis 3, und der Grund ist da.
Eine Bewertung, die die Prüfung nicht besteht, ist nicht bewertet. Zählen Sie sie. Raten Sie nie, was der Richter meinte.
Die Bewertung neben dem Bewerteten ablegen
Legen Sie jede gespeicherte Bewertung mit Antwort, Grund und verwendetem Raster ab. Eine nackte Zahl lässt sich später nicht mehr erörtern.
Nimmt der Dienst eine Temperatur an, setzen Sie sie niedrig, damit der Richter weniger schwankt. Er schwankt trotzdem, und deshalb prüft ihn die nächste Lektion an Menschen.
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\";' '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 || 200 }),' ' signal: AbortSignal.timeout(30000),' ' });' ' if (res.ok === false) throw new Error(\"Status \" + res.status);' ' return (await res.json()).choices[0].message.content;' > 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' ' } catch (fehler) {' ' console.log(\"Aufgezeichnete Probe: Kein Modell hat geantwortet (\" + fehler.message + \").\");' ' const liste = [].concat(probe);' ' const runde = nachrichten.filter(function (m) { return m.role === \"assistant\"; }).length;' ' return liste[Math.min(runde, liste.length - 1)];' ' }' '}' '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.
Das Richterskript schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'const raster = \"Bewerten Sie die Antwort, die ein Shop an einen Kunden schickte, mit 1 bis 3 Punkten. 3: klar, höflich und ohne Geldversprechen. 2: akzeptabel, aber vage oder kühl. 1: nutzlos, unhöflich oder verspricht Geld. Antworten Sie nur mit JSON mit zwei Schlüsseln: punkte (1, 2 oder 3) und grund (unter 15 Wörtern).\";' > richter4.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 Richterskript schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function pruefen(text) {' ' let daten = null;' ' try { daten = JSON.parse(text); } catch (fehler) { return { ok: false, warum: \"kein JSON\" }; }' ' if (daten === null || Array.isArray(daten) || typeof daten === \"string\" || typeof daten === \"number\") return { ok: false, warum: \"kein Objekt\" };' ' if (Number.isInteger(daten.punkte) === false || daten.punkte < 1 || daten.punkte > 3) return { ok: false, warum: \"Punkte ungültig\" };' ' const grund = typeof daten.grund === \"string\" ? daten.grund.trim() : \"\";' ' if (grund.length === 0 || grund.length > 100) return { ok: false, warum: \"Grund ungültig\" };' ' return { ok: true, punkte: daten.punkte, grund: grund };' '}' >> richter4.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 Richterskript schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function urteil(punkte, grund) {' ' return JSON.stringify({ punkte: punkte, grund: grund });' '}' 'const aufgezeichnet = [' ' urteil(2, \"Höflich, aber vage.\"),' ' urteil(1, \"Verspricht Geld.\"),' ' \"Ich würde eine 3 geben\",' ' urteil(5, \"Unhöflich.\"),' ' urteil(3, \"Klar und höflich, ohne Versprechen.\"),' '];' 'let summe = 0;' 'let gueltig = 0;' 'aufgezeichnet.forEach(function (text, stelle) {' ' const ergebnis = pruefen(text);' ' if (ergebnis.ok) { summe = summe + ergebnis.punkte; gueltig = gueltig + 1; }' ' console.log(\"Aufgezeichnet \" + (stelle + 1) + \": \" + (ergebnis.ok ? \"Punkte \" + ergebnis.punkte + \" (\" + ergebnis.grund + \")\" : \"ungültig, \" + ergebnis.warum));' '});' 'console.log(\"Gültig: \" + gueltig + \" von \" + aufgezeichnet.length + \". Mittel der gültigen: \" + (summe / gueltig).toFixed(1).replace(\".\", \",\"));' >> richter4.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 Richterskript schreiben, Teil 4
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' const probe = urteil(1, \"Verspricht Geld.\");' ' const text = await fragen([{ role: \"user\", content: raster + \"\n\nZu bewertende Antwort: Ihre Erstattung wurde genehmigt.\" }], probe, 80);' ' const ergebnis = pruefen(text);' ' console.log(\"Der Richter sagte: \" + text);' ' console.log(\"Richter: \" + (ergebnis.ok ? \"Punkte \" + ergebnis.punkte : \"ungültig, \" + ergebnis.warum));' '}' 'main();' >> richter4.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.
Fünf Bewertungen und eine echte prüfen
docker exec -w /home/node/project agent node richter4.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 |
|---|---|
| Aufgezeichnet 1 und 2 | Gültige Punkte 2 und 1, je mit Grund |
| Aufgezeichnet 3 | Ungültig, kein JSON |
| Aufgezeichnet 4 | Ungültig, Punkte ungültig: 5 liegt außerhalb der Skala |
| Aufgezeichnet 5 | Gültige Punkte 3 |
| Zeile Gültig | 3 von 5, Mittel 2,0 |
| Richter | Punkte und Grund oder ungültig. Es kann bei jedem Lauf anders sein |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Probieren Sie es
Tipp
Ersetzen Sie in richter4.js in main die zu bewertende Antwort durch Wir sehen uns das an. Starten Sie erneut und lesen Sie Punkte und Grund.
Ein häufiger Fehler
Warnung
Viele vertrauen einem Richter, weil seine Gründe sicher klingen. Ein flüssiger Grund ist kein Beweis. Der Richter ist ein Modell und kann sich selbstsicher irren. Prüfen Sie sein Format per Code und seine Bewertungen an denen von Menschen.