Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

LLM-Modell sicher wechseln

Nach dieser Lektion: Ich kann aus zwei aufgezeichneten Läufen entscheiden, ob eine Funktion zu einem anderen Modell wechselt.

Lektion, 70 Min.6 BefehleLab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Ein neues Modell antwortet anders

Ein Modell hinter einer Funktion zu wechseln heißt, dieselben Fälle auf beiden Versionen laufen zu lassen. Danach ziehen Sie die Nutzer langsam um. Das ist wichtig, weil eine neue Version im Schnitt besser und in einzelnen Fällen schlechter ist, und Ihre Nutzer finden diese Fälle zuerst.

Kein Labor hier trainiert oder betreibt ein Modell, daher vergleicht diese Lektion zwei aufgezeichnete Versionen. Die Methode ist die, die Sie echt anwenden würden.

Am Ende dieser Lektion

Notiz

Ich kann aus zwei aufgezeichneten Läufen entscheiden, ob eine Funktion zu einem anderen Modell wechselt.

Schlüsselwörter

BegriffWas er bedeutet
Rückschrittein Fall, der früher bestand und jetzt scheitert
Canaryein kleiner Anteil Nutzer, der zuerst wechselt
Rollbackder Weg zurück zur alten Version
Eimereine feste Zahl, in die ein Nutzer immer fällt
Kostenanstiegder Prozentsatz, um den die neue Version teurer ist

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Beide Versionen über dieselben Fälle laufen lassen

Nutzen Sie für beide Versionen dieselben Fälle und notieren Sie je Fall, ob er bestand und was er kostete. Vergleichen Sie die Zahl der Treffer, listen Sie aber auch die Rückschritte auf.

Zwei Versionen mit gleicher Trefferzahl können sich unterscheiden: Eine kann einen Fall verfehlen, den die andere bestand. Ein Rückschritt bei einem wichtigen Fall kann mehr zählen als ein besserer Schnitt.

Durchgerechnetes Beispiel: alt und neu über sechs Fälle

VersionBestandenKostenRückschritte
Alt5 von 6180keine
Neu5 von 6144c3 bestand früher und scheitert jetzt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Zuerst einen kleinen Anteil umziehen

Stellen Sie nicht alle auf einmal um. Schicken Sie einen kleinen Anteil der Nutzer zur neuen Version und beobachten Sie. Wählen Sie die Nutzer nach einer festen Regel, damit dieselbe Person immer dieselbe Version bekommt.

Lassen Sie die alte Version weiterlaufen, damit Sie in einem Schritt zurück können. Und schauen Sie auf die Rechnung: Eine Preisänderung kann den Gewinn auffressen. Legen Sie den akzeptierten Anstieg fest, bevor Sie nachsehen.

Ein häufiger Fehler

Warnung

Viele glauben, ein neueres Modell sei immer besser, ein kurzer Test genüge also. Ein neues Modell kann im Schnitt besser und bei Ihren Fällen schlechter sein. Lassen Sie Ihre eigenen Fälle laufen, ziehen Sie zuerst einen kleinen Anteil um und behalten Sie den Weg zurück.

Modell-Helfer schreiben, Teil 1

Befehl
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

Befehl
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

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' '' '// Zwei aufgezeichnete Versionen einer Funktion über dieselben sechs Fälle. Die Kosten sind in Mikro-Euro.' 'const alt = [1, 1, 1, 0, 1, 1].map(function (ok, i) { return { fall: \"c\" + (i + 1), ok: ok === 1, kosten: 30 }; });' 'const neu = [1, 1, 0, 1, 1, 1].map(function (ok, i) { return { fall: \"c\" + (i + 1), ok: ok === 1, kosten: 24 }; });' 'const MAX_RUECKSCHRITTE = 1;' 'function bestanden(lauf) { return lauf.filter(function (r) { return r.ok; }).length; }' 'function summe(lauf) { return lauf.reduce(function (s, r) { return s + r.kosten; }, 0); }' > wechsel.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

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'function rueckschritte(a, b) {' '  return a.filter(function (r, i) { return r.ok && b[i].ok === false; }).map(function (r) { return r.fall; });' '}' '// Ein Nutzer ist im Canary, wenn die Buchstaben seines Namens einen Eimer unter dem Prozentwert ergeben.' 'function imCanary(nutzer, prozent) {' '  let n = 0;' '  for (const b of nutzer) n = n + b.charCodeAt(0);' '  return n % 100 < prozent;' '}' >> wechsel.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

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  console.log(\"alt: \" + bestanden(alt) + \" von 6, Kosten \" + summe(alt));' '  console.log(\"neu: \" + bestanden(neu) + \" von 6, Kosten \" + summe(neu));' '  const schlecht = rueckschritte(alt, neu);' '  console.log(\"Rückschritte: \" + schlecht.join(\", \") + (schlecht.length <= MAX_RUECKSCHRITTE ? \" (erlaubt)\" : \" (zu viele)\"));' '  const leute = [\"ana\", \"cy\", \"eva\", \"gus\", \"li\", \"zoe\"];' '  console.log(\"Canary bei 10 Prozent: \" + leute.filter(function (u) { return imCanary(u, 10); }).join(\", \"));' '  const r = await fragen([{ role: \"user\", content: \"Wie viel sind 15 Prozent von 200 Euro? Antworten Sie in einem kurzen Satz.\" }], \"15 Prozent von 200 Euro sind 30 Euro.\", 40);' '  console.log(\"Heute live (nicht in der Aufzeichnung): \" + r.text);' '}' 'main();' >> wechsel.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

Befehl
docker exec -w /home/node/project agent node wechsel.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.

Eine mögliche Ausgabe

ZeileWas sie zeigt
alt: 5 von 6, Kosten 180Die aufgezeichnete alte Version
neu: 5 von 6, Kosten 144Die aufgezeichnete neue Version, günstiger
Rückschritte: c3 (erlaubt)Ein Rückschritt, innerhalb der Grenze von einem
Canary bei 10 Prozent: anaDer Nutzer, den die feste Regel in den kleinen Anteil legt
Heute live (nicht in der Aufzeichnung): ...Ihr eigener Aufruf. Er ändert sich bei jedem Lauf oder zeigt Aufgezeichnete Probe

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Über dieses Lab und seinen Quellcode: Lab für KI-Coding-Agenten: mit opencode Code erklären und reparieren lassen und die Arbeit prüfen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.