LLM throughput und goodput: Welche Kennzahl sollten Sie verwenden?

Automatische Übersetzung

Dieser Artikel wurde automatisch aus der englischen Originalversion übersetzt.

Der Throughput eines LLM misst, wie viel Arbeit ein Server pro Sekunde erledigt. Goodput misst die Rate der Arbeit, die zusätzlich definierte Serviceanforderungen erfüllt. Verwenden Sie für Serving-Entscheidungen den Throughput der Ausgabetokens zusammen mit der Anzahl erfolgreicher Anfragen pro Sekunde, die Ihre Latency-Ziele für das erste Token und die Generierung erfüllen.

Ein Server, der mehr Tokens erzeugt, während Anfragen wegen Zeitüberschreitung scheitern, kann einen höheren Throughput und eine geringere nutzbare Kapazität haben.

Definieren Sie eine Anfrage, die die Anforderungen erfüllt

Definieren Sie vor dem Test die Bedingungen, die eine Anfrage erfüllen muss. Zum Beispiel: erfolgreicher Abschluss, TTFT unter 500 ms und durchschnittliche TPOT unter 50 ms. Zählen Sie dann im Messintervall die abgeschlossenen Anfragen, die diese Bedingungen erfüllen:

request goodput = qualifying completed requests / measured seconds
output throughput = generated output tokens / measured seconds

Dies sind ein beispielhaftes SLO und zwei explizite Kennzahlendefinitionen. Wenn 100 Anfragen in zehn Sekunden abgeschlossen werden, aber nur 60 die Anforderungen erfüllen, beträgt der Abschluss-Throughput zehn Anfragen pro Sekunde und der Goodput sechs. Geben Sie auch den Throughput der Ausgabetokens an, da die Antwortlängen unterschiedlich sein können.

DistServe verwendet Goodput, um Serving unter Anforderungen an TTFT und Tokengenerierung zu bewerten. Geben Sie immer an, ob Sie Anfragen oder Tokens zählen, die die Anforderungen erfüllen: Das Wort allein definiert weder den Nenner noch die Bedingungen für die Zählung.

Halten Sie den Workload vergleichbar

ErfassenWarum es das Ergebnis beeinflusst
Eingabe- und AusgabelängenPrefill-Aufwand, Cache-Größe und Decode-Dauer unterscheiden sich
Model, Präzision, GPU und Runtime-RevisionSie verändern die Ausführungskosten
Angebotene Anfragen pro SekundeBestimmt die Warteschlangenbelastung
Gleichzeitige AnfragenVerändert Batching und Speichernutzung
Cache-RichtlinieWiederholte Präfixe können den Prefill-Aufwand senken
Fehler und AbbrücheErfolgreicher Abschluss ist Teil der nutzbaren Kapazität

Bei kleinen Decode-Batches können zusätzliche Anfragen die Wiederverwendung der Weights verbessern. Größere Batches oder eine steigende angebotene Last können schließlich die Latency erhöhen oder Speicher-, Rechen- oder Kommunikationsgrenzen überschreiten. Die Kurve hängt vom Workload ab; eine lineare Skalierung ist nicht garantiert.

Erhöhen Sie die angebotene Last schrittweise und stellen Sie Throughput, Goodput, P99-Latency, Fehler und Warteschlangenlänge grafisch dar. Wählen Sie eine Last, die die Anforderungen erfüllt und Spielraum für Verkehrsschwankungen lässt. Das Anyscale-Experiment zu Continuous Batching zeigt, warum ein Vergleich die Verteilung der Anfragen angeben muss.

Der Engineering-Leitfaden: Throughput und der Zielkonflikt mit Latency erklärt den Zielkonflikt beim Serving im Kontext.