Parallelisierung
Parallelisierung führt mehrere LLM-Aufrufe gleichzeitig aus und aggregiert die Ergebnisse. Zwei Varianten: Sektionierung (Aufteilen einer Aufgabe in unabhängige, parallel ausgeführte Teilaufgaben) und Voting (mehrfaches Ausführen derselben Aufgabe zur Verbesserung der Zuverlässigkeit oder Abdeckung). Sie verringert die Latenz und kann die Qualität steigern.
Problem
Das nacheinander Ausführen unabhängiger Teilaufgaben verschwendet Zeit, und ein einzelner Durchlauf einer schwierigen Aufgabe kann unzuverlässig sein.
Wann zu verwenden
Nutzen Sie Parallelisierung, wenn Teilaufgaben unabhängig sind (Sektionierung) oder wenn mehrere Versuche bei derselben Aufgabe das Vertrauen oder die Abdeckung verbessern (Voting).
Lösung
Sektionierung: Teilen Sie die Arbeit in unabhängige Teile auf, führen Sie diese gleichzeitig aus und kombinieren Sie die Ausgaben. Voting: Führen Sie denselben Prompt mehrmals (oder mit Variationen) aus und aggregieren Sie die Ergebnisse per Mehrheitsentscheid, Vereinigung oder durch ein Judge-Modell.
Beide Ansätze reduzieren die tatsächliche Laufzeit im Vergleich zur sequenziellen Ausführung; Voting tauscht zudem zusätzliche Kosten gegen eine höhere Zuverlässigkeit bei Aufgaben ein, bei denen ein einzelner Durchlauf riskant ist.
Komponenten
Vorteile
- Geringere Latenz durch gleichzeitiges Ausführen von Aufrufen.
- Voting verbessert die Zuverlässigkeit und Abdeckung.
- Jeder parallele Aufruf bleibt einfach und fokussiert.
Risiken
- Voting vervielfacht die Token-Kosten.
- Die Aggregationslogik kann in der korrekten Umsetzung knifflig sein.
- Teilaufgaben, von denen angenommen wird, dass sie unabhängig sind, können sich tatsächlich gegenseitig beeinflussen.
Wann nicht zu verwenden
- Wenn Teilaufgaben von den Ausgaben der jeweils anderen abhängen – verketten Sie diese.
- Wenn das Budget knapp ist und ein einzelner Aufruf ausreicht.
- Wenn Ergebnisse nicht sinnvoll aggregiert werden können.
Technologien
Beispiele
- Gleichzeitiges Zusammenfassen vieler Dokumente und anschließendes Zusammenführen der Zusammenfassungen.
- Paralleles Ausführen einer Sicherheitsprüfung zur Hauptantwort.
- Mehrfaches Generieren einer Antwort und Auswahl der Mehrheit.
KPIs
- Latenzreduktion im Vergleich zu sequenziell
- Eingesparte tatsächliche Laufzeit durch gleichzeitiges Ausführen von Aufrufen; der eigentliche Zweck dieses Musters.
- Aggregationsqualität
- Ob das Zusammenführen der parallelen Ausgaben die Korrektheit bewahrt – der schwierige Teil ist der Join, nicht der Fan-out.
- Parallelitätskosten
- Gesamte Token über alle parallelen Zweige hinweg; Sie tauschen Geld gegen Geschwindigkeit, achten Sie also auf den Multiplikator.
- Rate-Limit- / Drosselungsrate
- Wie oft parallele Aufrufe an die Rate-Limits des Anbieters stoßen, was sie unbemerkt serialisiert oder fehlschlagen lässt.
Beobachtete Fehlermuster
- Aggregationsfehler: Parallele Ergebnisse sind einzeln korrekt, werden aber falsch kombiniert (Doppelzählung, Widersprüche).
- Rate-Limiting verwandelt die beabsichtigte Parallelität wieder in langsame, sequenzielle Aufrufe.
- Kostenüberraschung: N parallele Zweige kosten das N-Fache, selbst wenn nur ein Ergebnis verwendet wird.
- Umgang mit Teilausfällen: Ein Zweig schlägt fehl und der Aggregator blockiert entweder oder verwirft ihn stillschweigend.
Lessons Learned
- Entwerfen Sie zuerst den Aggregationsschritt – das gute Kombinieren von Ergebnissen ist schwieriger als das Aufteilen der Arbeit.
- Beachten Sie die Rate-Limits des Anbieters durch Batching oder Backoff, da die Parallelität sonst verpufft.
- Parallelisieren Sie nur unabhängige Teilaufgaben; Abhängigkeiten erzwingen ohnehin eine Sequenz.
- Entscheiden Sie explizit, wie mit Teilausfällen umgegangen wird, bevor sie in der Produktion auftreten.
FAQs
- Was ist der Unterschied zwischen Sektionierung und Voting?
- Sektionierung teilt eine Aufgabe in verschiedene unabhängige Teilaufgaben auf; Voting führt dieselbe Aufgabe mehrfach aus, um die Ergebnisse für eine höhere Zuverlässigkeit zu aggregieren.
- Verbessert Voting immer die Qualität?
- Oft bei Aufgaben, bei denen die Ergebnisse variieren, aber es vervielfacht die Kosten. Reservieren Sie es für kritische Schritte, bei denen ein einzelner Durchlauf riskant ist.
- Wie kombiniere ich parallele Ergebnisse?
- Je nach Fall: Verketten Sie Abschnitte, führen Sie einen Mehrheitsentscheid durch, vereinigen Sie die Ergebnisse oder nutzen Sie ein Judge-Modell zur Synthese.