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
| Begriff | Was er bedeutet |
|---|---|
| Latenz | die Zeit, die eine Anfrage bis zur Antwort braucht |
| Erstes Token | das erste Stück einer gestreamten Antwort |
| Perzentil | der Wert, unter dem ein Anteil der Anfragen liegt |
| Ausreißer-Ende | die wenigen langsamsten Anfragen |
| Zeitlimit | das längste Warten, bevor man aufgibt |
| Streaming | eine 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 20 | Wert |
|---|---|---|
| p50 | 10. | 900 ms |
| p90 | 18. | 2300 ms |
| p95 | 19. | 4200 ms |
| p99 | 20. | 7800 ms |
| Mittelwert | keine | 1493 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
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
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
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
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
docker exec -w /home/node/project agent node latency4.jsHier 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
| Zeile | Was sie zeigt |
|---|---|
| ganze Antwort: p50 900, p90 2300, p95 4200, p99 7800 ms | Die Form der ganzen Antwort |
| Mittelwert 1493 ms, langsamste 7800 ms | Der Mittelwert liegt zwischen den beiden Gruppen |
| erstes Token: p50 230, p95 500 ms | Streaming zeigt ein erstes Token viel früher |
| Zeitlimit 5100 ms kappt 1 von 20 | p95 plus 20 Prozent, auf 100 aufgerundet |
| ein Zeitlimit von 2000 ms würde 3 von 20 kappen | Eine Schätzung kappt gute Antworten |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.