In einem besser, im anderen schlechter
Ein angepasstes Modell erzielt bei der Aufgabe, für die Sie es trainierten, mehr Punkte. Ist es besser? Noch nicht. Vielleicht ist es bei etwas anderem schlechter geworden oder kostet im Betrieb doppelt so viel.
Ein angepasstes Modell zu beurteilen heißt, es mit der Basis an denselben Fällen zu vergleichen, in jedem wichtigen Bereich.
Am Ende dieser Lektion
Notiz
Ich kann sagen, ob ein angepasstes Modell besser ist als die Basis.
Schlüsselwörter
| Begriff | Was er bedeutet |
|---|---|
| Gewinn | Ergebnisse der angepassten Version minus Basis |
| Mindestgewinn | der kleinste Gewinn, der als echt zählt |
| Rückschritt | ein Fall, den die angepasste Version nun falsch löst |
| Bereich | eine Art von Fällen, etwa Ton oder Rechnen |
| Aufgezeichnet | gespeicherte Ergebnisse, nicht live erzeugt |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Vergleichen Sie an denselben Fällen
Lassen Sie beide Versionen über eine feste Reihe von Fällen laufen, die keine im Training sah. Zählen Sie, was jede richtig löst. Der Unterschied ist der Gewinn.
Ein Gewinn von einem Fall aus zehn ist zu klein, um ihm zu trauen. Legen Sie den Mindestgewinn fest, bevor Sie hinsehen, damit das Ergebnis Sie nicht überredet.
Beispiel: zehn Fälle, drei Bereiche
| Bereich | Basis richtig | Angepasst richtig | Änderung |
|---|---|---|---|
| Anfragen | 2 von 5 | 4 von 5 | +2 |
| Ton | 2 von 3 | 3 von 3 | +1 |
| Rechnen | 2 von 2 | 1 von 2 | -1 |
| alle | 6 von 10 | 8 von 10 | +2 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Eine bessere Antwort kann mehr kosten
Ein angepasstes Modell antwortet vielleicht in mehr Worten oder braucht einen größeren Tarif. Rechnen Sie den Kostenanstieg als Prozent der Basiskosten aus.
Legen Sie zuerst fest, wie viel Sie höchstens hinnehmen. Ein kleiner Gewinn, der die Rechnung verdoppelt, lohnt das Ausliefern meist nicht.
Ein häufiger Fehler
Warnung
Viele glauben, ein höherer Wert bei der trainierten Aufgabe beweise, dass das Modell besser ist. Er beweist nur, dass es dort besser ist. Prüfen Sie die anderen Bereiche, zählen Sie die Fälle, die schlechter wurden, und sehen Sie auf die Kosten, bevor Sie entscheiden.
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.
Vergleich schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' '// Aufgezeichnet: 1 heißt richtig. Dieselben zehn Fälle für beide Versionen.' 'const faelle = [' ' { id: \"f1\", bereich: \"anfragen\", basis: 0, angepasst: 1 }, { id: \"f2\", bereich: \"anfragen\", basis: 0, angepasst: 1 },' ' { id: \"f3\", bereich: \"anfragen\", basis: 1, angepasst: 1 }, { id: \"f4\", bereich: \"anfragen\", basis: 1, angepasst: 0 },' ' { id: \"f5\", bereich: \"anfragen\", basis: 0, angepasst: 1 }, { id: \"f6\", bereich: \"ton\", basis: 0, angepasst: 1 },' ' { id: \"f7\", bereich: \"ton\", basis: 1, angepasst: 1 }, { id: \"f8\", bereich: \"ton\", basis: 1, angepasst: 1 },' ' { id: \"f9\", bereich: \"rechnen\", basis: 1, angepasst: 1 }, { id: \"f10\", bereich: \"rechnen\", basis: 1, angepasst: 0 },' '];' > anpassen5.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.
Vergleich schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function summe(welche) {' ' let n = 0;' ' for (const f of faelle) n = n + f[welche];' ' return n;' '}' 'const schlechter = faelle.filter(function (f) { return f.basis === 1 && f.angepasst === 0; });' 'const aenderung = {};' 'for (const f of faelle) aenderung[f.bereich] = (aenderung[f.bereich] || 0) + f.angepasst - f.basis;' >> anpassen5.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.
Vergleich schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' ' console.log(\"Basis \" + summe(\"basis\") + \" von 10, angepasst \" + summe(\"angepasst\") + \" von 10\");' ' console.log(\"schlechter geworden: \" + schlechter.map(function (f) { return f.id; }).join(\", \"));' ' console.log(\"Änderung je Bereich: \" + JSON.stringify(aenderung));' ' const frage = \"Antworten Sie in einem Satz: Warum prüft man Bereiche, auf die das Anpassen nicht zielte?\";' ' const probe = \"Das Anpassen für eine Aufgabe kann andere Aufgaben unbemerkt verschlechtern, und nur eine Prüfung dort zeigt es.\";' ' const antwort = await fragen([{ role: \"user\", content: frage }], probe, 40);' ' console.log(\"Modell: \" + antwort.text);' '}' 'main();' >> anpassen5.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.
Vergleich ausführen
docker exec -w /home/node/project agent node anpassen5.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 Vergleich druckte
Beide Ergebnismengen sind aufgezeichnet und ins Skript geschrieben. Der Run zählt jede Version, listet die Fälle auf, die schlechter wurden, und zeigt die Änderung je Bereich.
Die letzte Zeile ist ein kurzer Modellaufruf oder eine Aufgezeichnete Probe.