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

Canary-Rollout für eine KI-Änderung

Nach dieser Lektion: Ich kann einen kleinen Anteil des Verkehrs zu einer Änderung schicken und nach einer Regel entscheiden.

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

Wie ein Canary-Rollout funktioniert

Ein Canary-Rollout schickt einen kleinen Anteil der Nutzer zu einer Änderung, bevor alle sie bekommen. Ist die Änderung schlecht, trifft der Fehler nur wenige Menschen.

Man wechselt zuerst nur einen kleinen Anteil. Diese Lektion macht den Anteil genau und die Entscheidung zu einer Regel, die vor der Änderung feststeht.

Am Ende dieser Lektion

Notiz

Ich kann einen kleinen Anteil des Verkehrs zu einer Änderung schicken und nach einer Regel entscheiden.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Canarydie kleine Gruppe, die eine Änderung zuerst bekommt
Anteilder Prozentsatz der Nutzer im Canary5
Eimereine feste Zahl von 0 bis 99 für jeden Nutzer
Ausweitendie Änderung mehr Nutzern geben
Zurückrollendie Änderung wieder wegnehmen
Spielraumum wie viel schlechter der Canary sein darf

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

Ein fester Eimer entscheidet, wer dabei ist

Wählen Sie Nutzer nicht bei jeder Anfrage zufällig, sonst springt eine Person zwischen alter und neuer Version hin und her. Geben Sie jedem Nutzer einen Eimer von 0 bis 99, der sich nie ändert.

Ein Nutzer ist im Canary, wenn sein Eimer kleiner als der Anteil ist. Bei einem Anteil von 20 sind die Eimer 0 bis 19 dabei.

Durchgerechnetes Beispiel: fünf Nutzer

NutzerEimerDabei bei Anteil 5Dabei bei Anteil 20Dabei bei Anteil 50
g100JaJaJa
g813NeinJaJa
g1428NeinNeinJa
g164NeinNeinNein
g699NeinNeinNein

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

Ein häufiger Fehler

Warnung

Viele denken, ein kleiner Canary ohne Fehler beweise, dass die Änderung sicher ist. Fünf Nutzer mit wenigen Anfragen beweisen sehr wenig. Legen Sie vorher eine Mindestzahl von Anfragen fest und warten Sie, bis der Canary so viele hat.

Schreiben Sie die Regel vor dem Rollout

Vergleichen Sie den Fehlerprozentsatz des Canary mit dem der alten Version auf derselben Stufe. Rechnen Sie mit ganzzahliger Division, abgerundet.

Warten Sie, wenn der Canary weniger als 50 Anfragen hat. Rollen Sie zurück, wenn sein Prozentsatz um mehr als den Spielraum von 2 über dem alten liegt. Sonst weiten Sie aus.

Durchgerechnetes Beispiel: drei Stufen

AnteilCanary-AnfragenCanary-FehlerAlter ProzentsatzEntscheidung
54011Warten, nur 40 Anfragen
2018042Ausweiten, 2 liegt nicht über 4
50300182Zurückrollen, 6 liegt über 4

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

Die Modellhilfe 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.

Die Modellhilfe 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.

Das Canary-Skript schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const { fragen } = require(\"./model\");' 'function eimer(nutzer) {' '  let summe = 0;' '  for (let i = 0; i < nutzer.length; i++) summe = summe + nutzer.charCodeAt(i);' '  return (summe * 7) % 100;' '}' 'function imCanary(nutzer, anteil) { return eimer(nutzer) < anteil; }' 'const nutzerListe = [];' 'for (let i = 1; i <= 20; i++) nutzerListe.push(\"g\" + i);' > canary.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 Canary-Skript schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const stufen = [' '  { anteil: 5, cn: 40, cf: 1, an: 760, af: 15 },' '  { anteil: 20, cn: 180, cf: 4, an: 640, af: 13 },' '  { anteil: 50, cn: 300, cf: 18, an: 450, af: 9 },' '];' 'function prozent(f, n) { return Math.floor(f * 100 / n); }' 'function entscheiden(s) {' '  if (s.cn < 50) return \"warten\";' '  return prozent(s.cf, s.cn) > prozent(s.af, s.an) + 2 ? \"zurückrollen\" : \"ausweiten\";' '}' >> canary.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 Canary-Skript schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'async function main() {' '  [5, 20].forEach(function (anteil) {' '    const drin = nutzerListe.filter(function (g) { return imCanary(g, anteil); });' '    console.log(\"Anteil \" + anteil + \": \" + drin.join(\" \"));' '  });' '  for (const s of stufen) {' '    const d = entscheiden(s);' '    console.log(\"Stufe \" + s.anteil + \": Canary \" + prozent(s.cf, s.cn) + \" Prozent, alt \" + prozent(s.af, s.an) + \" Prozent -> \" + d);' '    if (d === \"zurückrollen\" || d === \"warten\") break;' '  }' '  const f = \"Schreiben Sie in einem kurzen Satz, warum man eine Änderung zuerst nur wenigen Nutzern zeigt.\";' '  const probe = \"Ist die Änderung schlecht, trifft der Fehler nur wenige Menschen, und man macht sie schnell rückgängig.\";' '  const antwort = await fragen([{ role: \"user\", content: f }], probe, 60);' '  console.log(\"Das Modell sagte: \" + antwort.text);' '}' 'main();' >> canary.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.

Den Canary ausführen

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

Was der Run ausgibt

ZeileWas sie zeigt
Anteil 5: g10Der eine Nutzer im Canary bei 5
Anteil 20: g7 g8 g10 g11 g12 g20Sechs Nutzer. g10 ist weiter dabei
Stufe 5: Canary 2 Prozent, alt 1 Prozent -> wartenUnter 50 Anfragen, also abwarten
Das Modell sagte: ...Ein Satz aus dem Labor. Eine Aufgezeichnete Probe, wenn kein Modell antwortet

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.