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

Latenz, Zeitlimits und Perzentile

Nach dieser Lektion: Ich kann sagen, wohin die Zeit bei einem Modellaufruf geht, und aus aufgezeichneten Dauern ein Zeitlimit festlegen.

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

Sagen, wohin die Zeit geht

Latenz ist die Zeit von einer Anfrage bis zu ihrer Antwort. Bei einem Modellaufruf sind das zwei Zahlen: das Warten auf das erste Token und das auf das letzte. Das ist wichtig, weil Nutzer eine Funktion nach ihren schlechtesten Momenten beurteilen, nicht nach dem Durchschnitt.

Eine Funktion, die neunzehn Nutzern in einer Sekunde antwortet und dem zwanzigsten in acht, wirkt für den zwanzigsten kaputt.

Am Ende dieser Lektion

Notiz

Ich kann sagen, wohin die Zeit bei einem Modellaufruf geht, und aus aufgezeichneten Dauern ein Zeitlimit festlegen.

Schlüsselwörter

BegriffWas er bedeutet
Latenzdie Zeit, die eine Anfrage bis zur Antwort braucht
Erstes Tokendas erste Stück einer gestreamten Antwort
Perzentilder Wert, unter dem ein Anteil der Anfragen liegt
Ausreißer-Endedie wenigen langsamsten Anfragen
Zeitlimitdas längste Warten, bevor man aufgibt
Streamingeine Antwort in Stücken senden, während sie entsteht

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

Perzentile zeigen das langsame Ende

Ein Mittelwert verbirgt die langsamen Anfragen. Sortieren Sie stattdessen die Dauern. Der Median (p50) ist die mittlere. p95 ist der Wert, den 95 Prozent der Anfragen erreichen oder unterschreiten. Die wenigen darüber bilden das Ausreißer-Ende.

Nutzen Sie den nächstgelegenen Rang. Bei n Werten nehmen Sie den an der Stelle p Prozent von n, aufgerundet, ab 1 gezählt. Es gibt keine Interpolation, also liefern alle Werkzeuge dasselbe.

Durchgerechnetes Beispiel: zwanzig Dauern

MaßStelle von 20Wert
p5010.900 ms
p9018.2300 ms
p9519.4200 ms
p9920.7800 ms
Mittelwertkeine1493 ms

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

Ein Zeitlimit aus den Daten festlegen

Ein Zeitlimit ist das längste Warten, das Sie hinnehmen. Zu kurz, und Sie kappen gute Antworten. Zu lang, und ein hängender Aufruf hält eine Person und eine Verbindung fest. Nehmen Sie ein hohes Perzentil wie p95, fügen Sie Spielraum hinzu und runden Sie.

Streaming verbirgt Wartezeit: Hier sieht die Hälfte der Nutzer das erste Token innerhalb von 230 ms, während der Rest eintrifft. Messen Sie das erste Token und die ganze Antwort getrennt und geben Sie jedem ein eigenes Limit.

Ein häufiger Fehler

Warnung

Viele legen das Zeitlimit nach dem Mittelwert fest, weil es eine einzige einfache Zahl ist. Dann werden gute Antworten gekappt: Hier würde ein Zeitlimit von 1493 ms 4 von 20 kappen. Legen Sie es nach einem hohen Perzentil aufgezeichneter Dauern fest und prüfen Sie, wie viele es kappen würde.

Den Latenzbericht schreiben, Teil 1

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Zwanzig aufgezeichnete, erfundene Dauern in Millisekunden: die ganze Antwort und das erste Token.' 'const GESAMT = [820, 910, 760, 1500, 880, 940, 830, 4200, 900, 870, 1020, 790, 850, 2300, 910, 880, 960, 840, 7800, 900];' 'const ERSTES = [210, 240, 200, 300, 220, 250, 215, 500, 230, 225, 260, 205, 222, 380, 240, 228, 255, 218, 900, 232];' > latency4.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 Latenzbericht schreiben, Teil 2

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Nearest Rank: sortieren, dann den Wert an der Stelle aufrunden(p Prozent von n) nehmen.' 'function perzentil(werte, p) {' '  const sortiert = werte.slice().sort(function (a, b) { return a - b; });' '  const rang = Math.ceil(p * sortiert.length / 100);' '  return sortiert[rang - 1];' '}' 'function mittelwert(werte) {' '  return Math.round(werte.reduce(function (summe, w) { return summe + w; }, 0) / werte.length);' '}' >> latency4.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 Latenzbericht schreiben, Teil 3

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' '// Ein Zeitlimit: das 95. Perzentil plus 20 Prozent Spielraum, auf 100 ms aufgerundet.' 'function zeitlimitFuer(werte) {' '  return Math.ceil(perzentil(werte, 95) * 120 / 100 / 100) * 100;' '}' 'function ueber(werte, limit) {' '  return werte.filter(function (w) { return w > limit; }).length;' '}' >> latency4.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 Latenzbericht schreiben, Teil 4

Befehl
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const limit = zeitlimitFuer(GESAMT);' 'console.log(\"ganze Antwort: p50 \" + perzentil(GESAMT, 50) + \", p90 \" + perzentil(GESAMT, 90) + \", p95 \" + perzentil(GESAMT, 95) + \", p99 \" + perzentil(GESAMT, 99) + \" ms\");' 'console.log(\"Mittelwert \" + mittelwert(GESAMT) + \" ms, langsamste \" + Math.max(...GESAMT) + \" ms\");' 'console.log(\"erstes Token: p50 \" + perzentil(ERSTES, 50) + \", p95 \" + perzentil(ERSTES, 95) + \" ms\");' 'console.log(\"Zeitlimit \" + limit + \" ms kappt \" + ueber(GESAMT, limit) + \" von \" + GESAMT.length);' 'console.log(\"ein Zeitlimit von 2000 ms würde \" + ueber(GESAMT, 2000) + \" von \" + GESAMT.length + \" kappen\");' >> latency4.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 Bericht ausführen

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

Diese Dauern sind aufgezeichnet

Nichts hier macht einen Aufruf absichtlich langsam. Die zwanzig Dauern sind aufgezeichnet und erfunden, daher haben alle Studierenden dieselben Zahlen. Ein echtes System liest sie aus seinen Traces, wie in der ersten Lektion.

Der Run ruft kein Modell auf: Er braucht keine Hilfe und hat nichts zu ersetzen.

Ausgabe des Runs

ZeileWas sie zeigt
ganze Antwort: p50 900, p90 2300, p95 4200, p99 7800 msDie Form der ganzen Antwort
Mittelwert 1493 ms, langsamste 7800 msDer Mittelwert liegt zwischen den beiden Gruppen
erstes Token: p50 230, p95 500 msStreaming zeigt ein erstes Token viel früher
Zeitlimit 5100 ms kappt 1 von 20p95 plus 20 Prozent, auf 100 aufgerundet
ein Zeitlimit von 2000 ms würde 3 von 20 kappenEine Schätzung kappt gute Antworten

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.