Die Ursache eines KI-Vorfalls finden
Ein Vorfall ist ein Zeitpunkt, an dem eine Funktion mehr kostet oder schlechter antwortet, als der Auftrag erlaubt. Die Ursache finden Sie in den Aufzeichnungen: ein Kostenprotokoll für Wann und Wie viel, eine Spur für Wo.
Der Assistent der Bibliothek läuft seit einer Woche. Mittags schlägt der Kostenalarm an. Niemand hat das Modell geändert, die Frage ist also, was sich geändert hat.
Am Ende dieser Lektion
Notiz
Ich kann anhand der Spur und der Protokolle herausfinden, was schiefging.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Vorfall | ein Zeitpunkt, an dem die Funktion ihren Auftrag verletzt | |
| Kostenprotokoll | eine Aufstellung, was jede Stunde kostete | |
| Spur | die Schritte, die eine Anfrage durchlief | |
| Schritt | ein Abschnitt einer Spur, mit seiner Zeit | modell |
| Versuch | ein Aufruf des Modells für eine Anfrage |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Jede Aufzeichnung beantwortet eine Frage
Fragen Sie zuerst, welche Aufzeichnung beantworten kann, was Sie brauchen. Lesen Sie nicht alles.
Das Kostenprotokoll sagt, wann und wie viel. Eine Spur sagt, wohin Zeit und Aufrufe innerhalb einer Anfrage gingen. Die Ereignisliste, etwa eine Auslieferung, sagt, was sich änderte.
Beispiel: drei Aufzeichnungen
| Aufzeichnung | Sie beantwortet | Sie beantwortet nicht |
|---|---|---|
| Kostenprotokoll | Welche Stunden mehr kosten | Warum sie mehr kosten |
| Spur | Was eine Anfrage tat | Wie häufig es war |
| Ereignisliste | Was sich wann änderte | Ob es eine Rolle spielte |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Erst wann, dann wo, dann warum
Suchen Sie zuerst das Wann: die Stunden, die die Grenze brechen. Dann das Wo: die Spur einer Anfrage aus diesen Stunden. Zuletzt das Warum: eine Ursache, die beides erklärt.
Prüfen Sie die Ursache. Ist sie wahr, muss das Protokoll noch etwas zeigen. Eine Ursache, die nichts vorhersagt, ist eine Vermutung.
Ein häufiger Fehler
Warnung
Viele glauben, ein Kostenanstieg bedeute mehr Nutzer. Sehen Sie auch auf die Anfragen. Bleiben die Anfragen gleich und die Versuche steigen, kostet jede Anfrage mehr. Der Verkehr ist nicht gewachsen.
Den Vorfallleser schreiben, Teil 1
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const fs = require(\"fs\");' '// Anfragen und Modellversuche je Stunde. Ein Versuch kostet 5. Der Alarm liegt bei 1500 pro Stunde.' 'const STUNDEN = [[\"08\", 120, 126], [\"09\", 150, 158], [\"10\", 140, 149], [\"11\", 160, 520], [\"12\", 155, 310], [\"13\", 150, 160], [\"14\", 145, 152]];' 'const GRENZE = 1500;' 'const protokoll = STUNDEN.map(function (h) {' ' return { stunde: h[0], anfragen: h[1], versuche: h[2], kosten: h[2] * 5 };' '});' 'fs.writeFileSync(\"kostenprotokoll.json\", JSON.stringify(protokoll, null, 1));' > vorfall.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 Vorfallleser schreiben, Teil 2
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Eine Anfrage, r481, eine Frage zu Mahngebühren, als Schritte gesehen.' 'const SPUR = [' ' { schritt: \"blatt_lesen\", versuch: 0, ms: 4, laenge: 0 },' ' { schritt: \"modell\", versuch: 1, ms: 900, laenge: 52 },' ' { schritt: \"modell\", versuch: 2, ms: 880, laenge: 51 },' ' { schritt: \"modell\", versuch: 3, ms: 910, laenge: 55 },' ' { schritt: \"modell\", versuch: 4, ms: 890, laenge: 53 },' ' { schritt: \"modell\", versuch: 5, ms: 905, laenge: 54 },' ' { schritt: \"letzte_senden\", versuch: 5, ms: 1, laenge: 54 },' '];' 'fs.writeFileSync(\"spur-r481.json\", JSON.stringify(SPUR, null, 1));' >> vorfall.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 Vorfallleser schreiben, Teil 3
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'console.log(\"Stunde Anfragen Versuche pro-Anfrage Kosten\");' 'for (const h of protokoll) {' ' const verhaeltnis = (h.versuche / h.anfragen).toFixed(2);' ' console.log(h.stunde + \":00\", h.anfragen, h.versuche, verhaeltnis, h.kosten, h.kosten > GRENZE ? \"ÜBERSCHRITTEN\" : \"ok\");' '}' >> vorfall.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 Vorfallleser schreiben, Teil 4
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'for (const s of SPUR) {' ' console.log(s.schritt, s.versuch, s.ms + \" ms\", \"Länge \" + s.laenge, s.laenge > 40 ? \"zu lang\" : \"\");' '}' 'const versuche = SPUR.filter(function (s) { return s.schritt === \"modell\"; }).length;' 'console.log(\"Modellversuche für r481:\", versuche);' >> vorfall.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.
Protokoll und Spur lesen
docker exec -w /home/node/project agent node vorfall.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 Run ausgibt
| Teil | Was er zeigt |
|---|---|
| 08:00 bis 10:00 | Etwa 1,05 Versuche pro Anfrage, Kosten 630 bis 790 |
| 11:00 | 3,25 Versuche pro Anfrage, Kosten 2600, ÜBERSCHRITTEN |
| 12:00 | 2,00 Versuche pro Anfrage, Kosten 1550, ÜBERSCHRITTEN |
| 13:00 und 14:00 | Zurück bei etwa 1,05, Kosten unter 1500 |
| Spur von r481 | Fünf Modellschritte, jede Länge über 40 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.