Was ist verteilte Inferenz?

URL kopieren

Verteilte Inferenz sorgt dafür, dass KI-Modelle Workloads effizienter verarbeiten können, indem die Inferenzarbeit innerhalb einer Gruppe miteinander verbundener Geräte verteilt wird. Stellen Sie sich dies als Äquivalent zum Sprichwort „Viele Hände machen ein schnelles Ende“ für den Softwarebereich vor. 

Warum Sie sich mit KI-Inferenz befassen sollten 

Die verteilte Inferenz unterstützt ein System, das Anfragen über eine ganze Flotte von Hardware-Komponenten verteilt, darunter physische und Cloud-Server. Von dort aus verarbeiten die einzelnen Inferenzserver ihren zugewiesenen Teil parallel, um eine Ausgabe zu erstellen. Das Ergebnis ist ein resilientes und beobachtbares System zum Bereitstellen konsistenter und skalierbarer KI-gestützter Services.

Mehr über Red Hat AI erfahren

Analogie zu einer Dinnerparty

Nehmen wir an, Sie veranstalten eine Dinnerparty für 10 Personen. Sie möchten Ihren Gästen ein 4-Gänge-Menü servieren: eine Vorspeise, einen Salat, ein Hauptgericht und ein Dessert. Aber Sie haben nur 2 Stunden Zeit, um das Essen zuzubereiten. Dies alleine zu schaffen, ist nahezu unmöglich – entweder leidet darunter die Qualität des Endprodukts (Essensqualität) oder das Tempo verlangsamt sich. 

Zur Lösung dieses Problems bitten Sie einige Freunde um Hilfe und weisen den einzelnen Personen entsprechend ihrer Fachkenntnisse einen Menügang zu. Beispielsweise bereitet eine Person, die nicht oft kocht, den Salat zu, während eine andere Person, die eine Ausbildung zum Koch absolviert hat, das komplexe Hauptgericht übernimmt. Durch die Nutzung der Fähigkeiten der einzelnen Personen und die gleichzeitige Arbeit an individuellen Aufgaben wird das Abendessen pünktlich serviert und schmeckt fantastisch.

In der Analogie der Dinnerparty entspricht die Zusammenarbeit der Freunde einer verteilten Inferenz, wobei die einzelnen Gänge Anfragen darstellen und die einzelnen Freunde verschiedene Arten von Inferenzservern sind. 

Geschwindigkeit, Skalierbarkeit und Kostenersparnis durch verteilte Inferenz

Mit der zunehmenden Perfektionierung von KI-Modellen nehmen diese auch an Umfang zu. So kann beispielsweise ein LLM (Large Language Model) mehrere hundert Milliarden Parameter enthalten. Parameter bestimmen das Sprachverständnis eines LLM. Je mehr Parameter ein Modell aufweist, desto komplexer und genauer sind die Aufgaben, die es ausführen kann. 

Manche KI-Modelle (wie DeepSeek mit 671 Milliarden Parametern) sind einfach zu groß, um auf eine einzige GPU (Graphic Processing Unit) zu passen. Damit diese Modelle funktionieren, ist ein Eingriff wie die verteilte Inferenz erforderlich. 

Mit zunehmender Anzahl von Parametern in einem Modell steigt auch der Bedarf an Hardwareressourcen.

Das Speichern dieser riesigen Modelle und das Ausführen der Inferenzberechnungen erfordern viel Speicher und Rechenleistung. Zur Bewältigung dieser Herausforderungen haben Sie mehrere Möglichkeiten:

  • Steigern der Leistungsfähigkeit Ihrer vorhandenen Rechner durch Hinzufügen weiterer GPUs zu einem Server:  Mehr GPUs bedeuten mehr Rechenleistung, oder? GPUs sind jedoch teuer. Außerdem riskieren Sie die Entstehung eines Single Point of Failure, durch den das gesamte System beeinträchtigt werden kann, wenn eine Instanz (Kopie Ihrer Inferenzanwendung) ausfällt.
  • Verschlanken der Modelle durch Modellquantisierung: Bei dieser Optimierungstechnik werden die Parameter eines Modells vereinfacht. Dabei wird die numerische Präzision der Parameter verringert, um die Modellgröße insgesamt zu verkleinern. Die Modellquantisierung ist die erste Strategie, die wir für die optimierte Verarbeitung großer Modelle empfehlen, da sie weniger komplex zu implementieren ist als die verteilte Inferenz.
  • Steigern der Effizienz Ihrer vorhandenen Hardware durch Fördern einer gemeinschaftlichen Workload-Verteilung mit verteilter Inferenz: Dieser Ansatz bietet die Geschwindigkeit, Zuverlässigkeit und Skalierbarkeit, die für Unternehmensanforderungen nötig sind. Die verteilte Inferenz kann als Strategie zusätzlich zur Modellquantisierung verwendet werden. 

Warum Inferenz über Erfolg oder Misserfolg Ihrer KI-Strategie entscheiden kann 

Ein Inferenzserver ist die grundlegende Software, mit der ein KI-Modell auf der Basis seines vorherigen Trainings neue Rückschlüsse ziehen kann. Inferenzserver leiten die Eingabeanfragen (wie eine Suchanfrage oder eine Eingabeaufforderung) durch ein Machine Learning-Modell und generieren eine entsprechende Ausgabe.

Inferieren bedeutet, Rückschlüsse zu ziehen, die auf Evidenz basieren. Stellen Sie sich vor, dass im Wohnzimmer einer befreundeten Person das Licht brennt, aber Sie sehen sie nicht. Sie können zwar darauf schließen, dass sie zuhause ist, aber Sie haben keine eindeutigen Beweise dafür.

Ein Sprachmodell verfügt auch nicht über eindeutige Beweise für die Bedeutung eines Wortes oder einer Formulierung – da es sich um eine Software handelt – sodass es sich auf sein Training stützt. Das Modell generiert mithilfe datengestützter Berechnungen einen Rückschluss. 

4 wichtige Überlegungen zur Implementierung von KI-Technologie

Die verteilte Inferenz basiert darauf, dass KI-Modelle einen einzigen intelligenten Koordinator erhalten, der als Gehirn für Ihre KI-Workloads fungiert. Wenn eine neue Anfrage eingeht, trägt verteilte Inferenz dazu bei, die Anfrage zu analysieren und sie an den für diese Aufgabe am besten geeigneten Teil Ihres Hardwaresystems weiterzuleiten (erinnern Sie sich an die Analogie mit der Dinnerparty?). 

Große Modelle, zu viele Nutzende oder Latenzprobleme können die Performance beeinträchtigen. Entsprechend den Ursachen für den Engpass werden bei der verteilten Inferenz verschiedene Strategien angewendet:

  • Aufteilung des Modells: Ist das Modell zu groß für 1 GPU, verwendet die verteilte Inferenz Modellparallelität, um das Modell auf mehrere GPUs aufzuteilen.
  • Aufteilung der Daten: Zur gleichzeitigen Verwaltung vieler Nutzender werden Datenparallelität und intelligentes Load Balancing verwendet, um die Eingabedaten auf die Server zu verteilen. Dadurch werden gleichzeitige Anforderungen effizient verwaltet.
  • Aufteilung des Inferenzprozesses: Für die Optimierung des gesamten Workflows wird die Disaggregation von Prozessen genutzt. Dabei werden die 2 Berechnungsphasen, die eine Inferenzantwort erstellen (Prefill und Decode), getrennt und in separaten Umgebungen ausgeführt.

Intelligentes Inferenz-Scheduling

Verteilte Inferenz erfordert eine Control Plane oder einen Scheduler, der Informationen koordinieren und übertragen kann, um Aufgaben zu erledigen. Intelligentes Scheduling ist ein Prozess, der innerhalb verteilter Inferenzsysteme kontinuierlich ausgeführt wird, um diese Koordination zu erreichen. 

Stellen Sie sich intelligentes Scheduling als einen Projektmanager vor. Anstatt eine Anfrage an den nächsten Server zu senden, wird beim intelligenten Scheduling Folgendes berücksichtigt:

  • welche Server bereits über relevante zwischengespeicherte Informationen zu Ihrer Anfrage verfügen
  • welche Server über die Kapazität verfügen, Ihre Anforderung zu verarbeiten
  • welche Server am besten geeignet sind, die von Ihnen angeforderte Aufgabe auszuführen

Intelligentes Scheduling wird durch Softwarealgorithmen implementiert und optimiert während der Inferenz den Datenfluss.

Prefill- und Decode-Disaggregation

Das Generieren einer Antwort auf eine Abfrage erfordert 2 Phasen: Prefill und Decode. Durch die Unterteilung einer Nutzeranfrage in diese Phasen können verteilte Systeme die einzelnen Teile der jeweils am besten geeigneten Hardware zuweisen und so die Effizienz steigern. 

  • Prefill (oder Vorabfüllen des KV-Cache) bezieht sich auf den anfänglichen, rechenintensiven Schritt, in dem das Modell den Prompt des Nutzenden verarbeitet. Stellen Sie sich diese Phase als eine Phase vor, in der das Modell „liest“ und ein „Verstehen“ Ihrer Anfrage entwickelt. 

  • Unter Decode versteht man den nachfolgenden, speicherintensiven Schritt, bei dem das Modell die Antwort Token für Token generiert. In dieser Phase greift das Modell auf den KV-Cache zu, um gespeicherte Informationen zu erfassen, die für die Abfrage relevant sind. 

Durch die Trennung der Prefill-Phase von der Decode-Phase kann das System seine Ressourcen effizienter planen. Das Zusammensetzen der einzelnen Teile erfordert einen sogenannten KV-Cache.

Was ist ein KV-Cache?

KV steht für „Key Value“ (Schlüsselwert). Der Key Value bezieht sich auf die Art und Weise, wie ein LLM die Bedeutung eines Wortes oder einer Phrase formuliert. Angenommen, Sie verarbeiten den Key Value für einen Artikel auf einer Speisekarte. Eine Bestellung von Pommes frites (Key) kostet 3,99 US-Dollar (Value). Wenn also eine Kassenkraft eine Bestellung von Pommes frites verbucht, beträgt der berechnete „Value“ für diesen „Key“ 3,99 US-Dollar. LLMs verarbeiten KVs auf ähnliche Weise, indem sie den entsprechenden Value für den jeweiligen Key (oder das jeweilige Token) in ihrem Cache speichern.

Cache bezeichnet einen Kurzzeitspeicher. Denken Sie an Ihren eigenen Computer: Wenn er langsam ist, können Sie seinen Cache leeren, um Platz für eine bessere und schnellere Verarbeitung zu schaffen.

Mit dem KV-Cache speichert das Modell das zuvor generierte Wort und hilft dabei, einen Kontext für das nächste Wort zu erstellen, was letztlich die Verarbeitung beschleunigt. Ohne den KV-Cache müsste das Modell Ihre Abfrage Wort für Wort erneut verarbeiten. 

Die Hauptaufgabe von vLLM besteht darin, für Effizienz innerhalb des KV-Cache zu sorgen. 

vLLM ist das „Gehirn“ der Software, das GPUs dabei unterstützt, Aufgaben zu verteilen und parallel zusammenzuarbeiten. Das vLLM fungiert als Satz von Anweisungen, die den KV-Cache dazu bringen, durch kontinuierliches Batching von Nutzerantworten Verknüpfungen zu erstellen.

Erfahren Sie, wie bekannte Unternehmen wie LinkedIn und Roblox mit vLLM effizienter skalieren.

3 Use Cases aus der Praxis ansehen 

Modellparallelität mit vLLM

Wenn Ihr Modell zu groß für Ihre GPU ist, können Sie Tensorparallelität, Pipeline-Parallelität, Mixture of Experts (MoE) oder eine Kombination aus allen 3 verwenden:

Tensorparallelität: Ein GPU-Team erledigt eine Aufgabe, indem es eine große Aufgabe in kleinere, identische Teile aufteilt. In diesem Fall fungiert vLLM als Koordinator und orchestriert die ständige Kommunikation, die erforderlich ist, um die Systemteile zu synchronisieren. 

Pipeline-Parallelität: Wie bei einem Fließband wird bei der Pipeline-Parallelität eine Aufgabe in aufeinanderfolgende Phasen unterteilt. Die Verarbeitung erfolgt so lange von einer Phase zur anderen, bis die Aufgabe abgeschlossen ist. Durch die Pipeline-Parallelität können mehrere Server zur Ausführung eines einzigen Modells verkettet werden, das ansonsten zu groß wäre, um es in einen Speicher zu laden. In diesem Fall verwaltet vLLM das hypothetische Fließband, analysiert die Schritte und stellt sicher, dass die Aufgabe nach Abschluss einer Phase von einem Server zum nächsten weitergereicht wird.

Mixture of Experts (MoE): Hier sind „Experts“ spezialisierte Teile des Modells, die darauf trainiert werden, bestimmte Arten von Eingaben zu verarbeiten. Innerhalb dieser Architektur leitet ein sogenanntes Gating-Netzwerk Aufgaben an den leistungsfähigsten Teil des Modells weiter, um schnellere und genauere Ergebnisse zu erzielen. Das in vLLM integrierte Gating-Netzwerk koordiniert dies, indem es sämtliche eingehende Anfragen liest und den Teil des Modells aktiviert, der die Anfrage verarbeiten kann. 

Datenparallelität mit vLLM

Wenn Sie viele Nutzende gleichzeitig bedienen müssen, können Sie Techniken zur Datenparallelität einsetzen. Bei der Datenparallelität geht es um das Aufteilen der Eingabedaten (Workload-Anforderungen) anstelle des Modells. 

Datenparallelität ist eine Rechentechnik, bei der die Bearbeitung einer großen Anzahl an Aufgaben auf ein Team von Servern verteilt wird. Bei dieser Technik wird eine Kopie des Modells auf die einzelnen GPUs verteilt, und die Aufgaben werden auf das Serverteam aufgeteilt, um die Anfragen parallel auszuführen.

Stellen Sie sich vor, bei einer KI-Anwendung fragen 1.000 Nutzende gleichzeitig Ihr LLM ab. Durch Datenparallelität lassen sich Kopien Ihres LLM auf 10 Server verteilen, wobei pro Server 100 Anfragen verarbeitet werden. Durch Aufteilen des Workloads in kleinere Batches kann Ihre Anwendung mehr Anforderungen mit minimaler Verzögerung verarbeiten. 

vLLM kann dazu beitragen, die Performance zu verbessern und eine Umgebung für eine noch schnellere und effizientere Verarbeitung zu schaffen. 

Mehr über vLLM erfahren

Was ist llm-d?

llm-d ist ein Open Source Framework für verteilte Large Language Models. Ein Open Source Framework ist eine Sammlung von öffentlich verfügbarem, vorgefertigtem Code und Tools, die Entwicklungsteams frei verwenden, ändern und verteilen können.

llm-d standardisiert einen klar definierten Weg – ein Blueprint für den Aufbau verteilter Inferenz in großem Umfang. Das Framework enthält ein Layout, Kommunikationstechniken und ein Trainingshandbuch sowie eine Schritt-für-Schritt-Anleitung für Organisationen beim Aufbau einer verteilten Architektur.

Durch den Ersatz manueller, fragmentierter Prozesse durch integrierte, klar definierte Abläufe können Unternehmen schneller implementieren und skalieren und so die Zeit vom Pilotprojekt bis zur Produktion verkürzen. 

Die Installation basiert auf Helm Charts und bietet ein vertrautes und anpassbares Verfahren. Eine Quickstart-Befehlszeile (CLI) ermöglicht ein unkompliziertes Deployment, einschließlich Abhängigkeiten, Voraussetzungen und Beobachtbarkeitsfunktionen.

llm-d wurde für die Erweiterung und Interoperabilität mit vLLM entwickelt und kann auf verschiedenen Kubernetes-Clustern ausgeführt werden, darunter auch Red Hat® OpenShift®. 

Mehr über llm-d erfahren

Verteilte Inferenz sorgt für eine schnellere Verarbeitung und größere Skalierbarkeit von KI-Systemen, doch die erforderliche Koordination zur Aufgabenerfüllung ist komplex. Zu den wichtigsten Herausforderungen gehören:

Latenz und Bandbreite 

Verteilte Inferenz verteilt Ihr Modell und verarbeitet Anfragen über mehrere Server und Geräte an verschiedenen Standorten. Das bedeutet, dass Informationen und Daten einen weiten Weg zurücklegen müssen, bevor sie für Nutzende eine Ausgabe generieren. Wenn die Netzwerkverbindungen zwischen Servern langsam oder überlastet sind, wird der Prozess langsamer, wie ein Auto, das im Stau steht. 

Ineffiziente Ressourcenzuweisung 

Die Verteilung der Inferenzaufgaben auf die Server muss ausgewogen sein, damit nicht einige Server überlastet sind, während andere ungenutzt bleiben.

Wiederherstellung nach Fehlern 

Wie eine Zweitbesetzung in einem Theaterstück bedarf es eines Backup-Plans. In verteilten Systemen können Verbindungen unterbrochen werden, Server ausfallen und Rechenzentren offline gehen. Stellen Sie sicher, dass bei Ausfall eines Teils Ihres Systems ein anderer Teil einspringen kann. 

Komplexität bei Debugging und Fehlerbehebung 

In verteilten Inferenzsystemen verwendete, miteinander verbundene Server können schneller und effizienter arbeiten als nicht miteinander verbundene Server. Allerdings erschwert ihre Verbindung untereinander die Suche nach der Ursache eines Problems – ähnlich wie bei der Diagnose einer Kopfschmerzursache.

Synchronisierungs-Overhead 

Stellen Sie sich vor, Sie führen eine Telefonkonferenz mit 300 Personen. Die Systeme müssen mehr leisten als sonst, um Video und Ton in Echtzeit wiederzugeben. Manchmal friert das Video einer Person ein oder ihre Stimme wird verzögert übertragen. Die synchronisierte Koordination kann sehr aufwendig sein und erfordert eine leistungsfähige Infrastruktur.

Modellmanagement und -Deployment 

Sind Sie bereit für das Update Ihres Modells? Die Einführung verteilter Inferenz erfordert eine Strategie und sorgfältige Koordination durch Fachkräfte, was mitunter komplex und zeitaufwendig sein kann.

Kostenmanagement 

Verteilte Systeme haben eine komplexere Kostenarchitektur als einzelne Computer. Diese Kosten können je nach Nutzungsmuster, Datenübertragungen zwischen Standorten und Skalierungsanforderungen schwanken. Für optimale Performance, Resilienz und effektives Kostenmanagement ist es wichtig, einen auf Metriken basierenden Ansatz zu etablieren.

Sicherheit 

Server über mehrere Standorte zu verteilen bedeutet, Maßnahmen zum Schutz mehrerer Standorte zu ergreifen. Sie müssen Kommunikation verschlüsseln, Zugriffskontrollen verwalten und vor Angriffen schützen. All dies erfordert Fachwissen. 

Was ist KI-Sicherheit?

Mit verteilter Inferenz können Sie LLMs für eine Vielzahl von Anwendungen einsetzen. Dies liegt daran, dass dadurch die Größen- und Geschwindigkeitsbeschränkungen beim Ausführen von Modellen auf einer einzelnen Hardware reduziert werden. Dadurch lassen sich mit verteilter Inferenz Latenzzeiten (Verzögerungen) reduzieren und die Bandbreite (Kapazität) erhöhen, um vielfältige Use Cases auf der bestehenden Infrastruktur zu unterstützen. 

Konsistente und vorhersehbare Performance

Herkömmliche KI-Inferenz ist oft eine „Blackbox“, die zu unvorhersehbaren Antwortzeiten und einem schlechten Benutzererlebnis führen kann. Bei der verteilten Inferenz werden eingehende Anfragen durch intelligentes Scheduling analysiert und an die optimale Hardware weitergeleitet. Dies sorgt für ein zuverlässigeres und stabileres Benutzererlebnis.

Kostenmanagement

Die Kosten können bei der verteilten Inferenz zwar eine Herausforderung darstellen, aber auch einen Vorteil bieten. Je größer die Modelle werden, desto größer wird der Bedarf an teuren Hardwarebeschleunigern wie GPUs. Bei ordnungsgemäßer Verwaltung können Sie mit verteilter Inferenz Kosten reduzieren, indem Sie Ihre Hardware so effizient wie möglich nutzen. 

Verbesserte Beobachtbarkeitstools

Wenn generative KI-Modelle von der Pilotphase in die Produktion übergehen, wird die Überwachung des Zustands, der Performance und der Kosten Ihrer KI-Services zu einer neuen Herausforderung. Verteilte Inferenz bietet ein hochgradig beobachtbares System, mit dem Sie Ihre KI-Workloads proaktiv überwachen können – von der Token-Verarbeitung bis zu Latenzzeiten und Durchsatz. Anhand dieser Transparenz können Sie Engpässe erkennen und Probleme beheben und so für eine vorhersehbare Performance und Kostenkontrolle sorgen. 

Datenschutzbestimmungen 

Datenschutzgesetze wie die DSGVO (Datenschutz-Grundverordnung) und der CCPA (California Consumer Privacy Act) stellen strenge Regeln für die Erfassung und Übermittlung personenbezogener Daten auf. Die verteilte Inferenz entspricht diesen Bestimmungen, da Daten lokal verarbeitet und nur nicht-sensible Teile der Daten an einen zentralen Server gesendet werden. So werden personenbezogene Daten innerhalb bestimmter geografischer Gerichtsbarkeiten geschützt und die Datensouveränität unterstützt. 

Datenlokalität  

Bei der verteilten Inferenz wird der Inferenzprozess (die eigentliche Berechnung) an zahlreiche Server gesendet, die Daten bleiben jedoch lokal. Anwendungen arbeiten schneller, wenn Daten direkt an ihrem Erfassungsort verarbeitet werden und nicht an einen entfernten Server gesendet werden müssen. 

Red Hat® AI ist eine Plattform mit Produkten und Services, die Ihr Unternehmen in den einzelnen Phasen der KI-Einführung unterstützen kann – unabhängig davon, ob Sie gerade erst beginnen oder schon skalierungsbereit sind. Die Lösungen können sowohl generative als auch prädiktive KI-Initiativen für die spezifischen Use Cases Ihres Unternehmens unterstützen.

Mit Red Hat AI erhalten Sie Zugriff auf Red Hat AI Inference Server, mit dem Sie die Modellinferenz in der gesamten Hybrid Cloud optimieren und so schnellere und kosteneffiziente Deployments erzielen können. Der auf vLLM basierende Inferenzserver maximiert die GPU-Nutzung und ermöglicht schnellere Reaktionszeiten.

Mehr über Red Hat AI Inference Server erfahren 

Red Hat AI Inference Server umfasst das Repository von Red Hat AI, eine Kollektion validierter und optimierter Drittanbietermodelle, die mehr Modellflexibilität und teamübergreifende Konsistenz ermöglicht. Durch den Zugriff auf das Repository von Drittanbietermodellen können Unternehmen die Markteinführungszeit verkürzen und finanzielle Hindernisse für eine erfolgreiche KI-Implementierung abbauen.

Mehr über validierte Modelle von Red Hat AI erfahren

Blogbeitrag

Wie souverän ist Ihre Strategie? Einführung in das Red Hat Digital Sovereignty Readiness Assessment Tool

Das Red Hat Sovereignty Readiness Assessment Tool ist eine webbasierte Self Service-Bewertung, die eine klare, objektive Grundlage für die digitale Kontrolle Ihres Unternehmens in 7 kritischen Bereichen bietet.

Erfolgreiche KI-Einführung mit Red Hat: Fachwissen, Training und Support für den KI-Prozess

Lernen Sie das KI-Portfolio von Red Hat kennen. Red Hat AI kann Sie beim Erreichen Ihrer Geschäfts- und IT-Ziele mit KI (Künstlicher Intelligenz) unterstützen.

Weiterlesen

Prädiktive KI vs. Generative KI: KI-Typen im Vergleich

Was ist der Unterschied zwischen prädiktiver und generativer KI? Erfahren Sie alles über Funktionsweisen, Vorteile und Use Cases beider KI-Technologien.

LoRA vs. QLoRA: Parametereffizientes Fine Tuning erklärt

LoRA und QLoRA ermöglichen LLM-Anpassungen mit minimalen Ressourcen. Erfahren Sie mehr über Speicherersparnis, Quantisierung und die Wahl der richtigen Technik.

Was ist MLOps? Machine Learning Operations einfach erklärt

MLOps optimiert den Lifecycle von ML-Modellen (Machine Learning). Erfahren Sie alles über Workflow-Praktiken, Automatisierung und den Unterschied zu DevOps.

Ressourcen zu KI/ML

Verwandte Artikel