LLMs in der Produktion einsetzen: Eine Schritt-für-Schritt-Anleitung
LLMs in der Produktion einsetzen: Eine Schritt-für-Schritt-Anleitung
Der Weg von einer erfolgreichen Demo zu einer zuverlässigen, skalierbaren und kosteneffizienten Large Language Model (LLM)-Anwendung ist voller Herausforderungen, die Demos nie offenbaren: unerwartete Benutzereingaben, Leistungsengpässe, kaskadierende Systemausfälle und explodierende Kosten. Dieser Leitfaden bietet einen umfassenden, schrittweisen Rahmen, um diese Komplexitäten zu bewältigen und Ihnen beim Aufbau eines produktionsreifen LLM-Systems zu helfen.
Was Sie lernen werden
Am Ende dieses Leitfadens verstehen Sie den gesamten Lebenszyklus der Bereitstellung von LLMs – von der Auswahl des richtigen Modells und der Infrastruktur bis hin zur Implementierung robuster Test-, Überwachungs- und Sicherheitspraktiken. Sie erhalten einen klaren, umsetzbaren Plan, um Ihr LLM-Projekt von einem Prototypen zu einem zuverlässigen, leistungsstarken Produktionsdienst zu machen, mit besonderem Fokus auf die kritischen Schritte für die Bereitstellung auf Kubernetes-Basis.
Schritt 1: Grundlagen – Modellauswahl und Infrastrukturplanung
Bevor Sie Code schreiben, müssen Sie entscheidende Entscheidungen über Ihr Modell und die Infrastruktur treffen, auf der es laufen soll. Diese anfängliche Planungsphase ist entscheidend, um kostspielige Umstrukturierungen später zu vermeiden.
Modell und Hardware auswählen
Das Universum offener Modelle ist riesig, und die richtige Auswahl ist die erste große Hürde. Raten Sie nicht; nutzen Sie einen kuratierten Hub. Cloud-Anbieter wie Google Clouds Vertex AI Model Garden bieten ein zentrales Repository mit über 200+ validierten Modellen (darunter Gemma, Qwen und Llama) mit wichtigen Informationen wie empfohlener Hardware (GPU-Typen und -Größen) für optimale Leistung. Das spart die zeitaufwändige Einrichtung von Umgebungen, nur um einen einzigen Test durchzuführen. Oft finden Sie „One-Click-Deployment"-Optionen, die optimierte Serving-Container (z. B. mit vLLM oder SGLang) verwenden.
Für die Hardware bestimmt die Größe Ihres Modells direkt Ihren GPU-Bedarf. Hier ist eine allgemeine Orientierungshilfe basierend auf gängigen GPU-Optionen von Anbietern wie DigitalOcean:
| GPU-Typ | Typischer Anwendungsfall | Geeignete Modellgröße |
|---|---|---|
| RTX 4000 Ada | Kosteneffiziente Inferenz | Kleinere Modelle (7B-13B Parameter) |
| RTX 6000 Ada | Ausgewogene Leistung | Mittlere Modelle (13B-34B Parameter) |
| L40S | Maximale Leistung für große Workloads | Große Modelle (70B+ Parameter) |
⚠️ Warnung zum Modellzugriff: Viele beliebte Modelle, wie Metas Llama, erfordern, dass Sie ein HuggingFace-Konto haben, Zugriff anfordern und eine Lizenzvereinbarung akzeptieren, bevor Sie sie herunterladen können. Planen Sie diese Genehmigungszeit unbedingt in Ihren Projektzeitplan ein.
Infrastruktur auswählen: Der Kubernetes-Standard
Für die produktionsreife LLM-Bereitstellung hat sich Kubernetes als De-facto-Standard etabliert. Es bietet die Skalierbarkeit, Ausfallsicherheit und Cloud-native Tooling, die für die Verwaltung komplexer, ressourcenintensiver Workloads unerlässlich sind. Egal, ob Sie einen verwalteten Kubernetes-Dienst wie Google Kubernetes Engine (GKE), Amazon EKS oder DigitalOcean Kubernetes (DOKS) verwenden, die Prinzipien bleiben gleich:
- GPU-Unterstützung: Ihr Kubernetes-Cluster muss GPU-Knoten haben. Dazu muss das NVIDIA Device Plugin installiert werden, um GPUs für Ihre Pods verfügbar zu machen.
- Scheduling: Für Multi-Node-Bereitstellungen können erweiterte Scheduler wie Volcano für „Gang Scheduling" verwendet werden, um sicherzustellen, dass alle Pods eines verteilten Trainings- oder Inferenz-Jobs gleichzeitig starten.
Schritt 2: Kernbereitstellung – Ihr Modell servieren
Der „alte Weg" – Gewichte herunterladen und mit requirements.txt herumhantieren – ist für die Produktion nicht tragbar. Sie benötigen ein robustes, leistungsstarkes Serving-Framework.
Der vLLM Production Stack
vLLM hat sich als führende Open-Source-LLM-Inferenz-Engine etabliert. Sein Production Stack, entstanden aus einer Zusammenarbeit von Berkeley und UChicago, kapselt das Upstream-vLLM und bietet eine für die Produktion optimierte Codebasis, die auf Benutzerfreundlichkeit und hohe Leistung ausgelegt ist. Zu den Hauptfunktionen gehören Multi-Modell-Unterstützung, modellbewusstes Routing und KV-Cache-Auslagerung.
Um den vLLM Production Stack in Ihrem Kubernetes-Cluster bereitzustellen:
- Stellen Sie sicher, dass Helm auf Ihrem GPU-Server installiert ist. Helm ist der Paketmanager für Kubernetes.
- Fügen Sie das vLLM-Helm-Repository hinzu:
sudo helm repo add vllm https://vllm-project.github.io/production-stack - Installieren Sie das Chart:
Dieser Befehl stellt ein kleines Beispielmodell (sudo helm install vllm vllm/vllm-stack -f tutorials/assets/values-01-minimal-example.yamlfacebook/opt-125m) als Proof of Concept bereit.
Die Kernkonfiguration der Bereitstellung wird über eine YAML-Datei verwaltet, in der Sie die Modell-URL, die Replikatanzahl und die Ressourcenanforderungen für CPU, Arbeitsspeicher und GPU angeben.
Bereitstellung validieren
Überwachen Sie nach der Installation den Status:
sudo kubectl get pods
Warten Sie, bis alle Pods den Status Running anzeigen. Dies kann einige Zeit dauern, da Docker-Images und Modellgewichte heruntergeladen werden.
Dienst abfragen
Sobald der Dienst läuft, können Sie einen lokalen Port weiterleiten und den OpenAI-kompatiblen API-Endpunkt abfragen:
sudo kubectl port-forward svc/vllm-router-service 30080:80
curl -o- http://localhost:30080/v1/models
Dies bestätigt, dass Ihr Modell-Serving-Stack betriebsbereit ist.
Schritt 3: Fortgeschrittene Architekturen und Optimierung
Für wirklich skalierbare, produktionsreife Systeme müssen Sie über eine einzelne Modellinstanz hinausgehen. Moderne Frameworks entkoppeln den Inferenzprozess für bessere Leistung und Ressourcennutzung.
Entkoppelte Inferenz mit llm-d
llm-d ist ein verteiltes Inferenz-Framework, das die LLM-Inferenz-Pipeline in zwei separate Phasen aufteilt: Prefill (Kontextverarbeitung) und Decode (Token-Generierung). Dadurch kann jede Phase unabhängig optimiert und skaliert werden, was zu höherem Durchsatz und besserer GPU-Auslastung führt.
Um ein entkoppeltes System auf Kubernetes bereitzustellen, können spezialisierte Operatoren wie Kthena verwendet werden, um den Lebenszyklus und das Scheduling dieser komplexen, verteilten Workloads zu verwalten. Kthena bietet eine ModelServing Custom Resource Definition (CRD) zur deklarativen Bereitstellung von Multi-Node-vLLM-Diensten unter Nutzung von Volcano für Gang Scheduling. Der Prozess umfasst:
- Installation von Volcano und Kthena in Ihrem Cluster.
- Anwenden eines
ModelServing-Manifests, das die Einstiegs- (Leader) und Worker-Pods für Prefill- und Decode-Rollen definiert. - Der Operator orchestriert die Pods, die dann Ray nutzen, um einen verteilten Cluster zu bilden.
Dieser Ansatz ist ideal für Anwendungen mit hohem Durchsatz und niedriger Latenz im großen Maßstab, bringt jedoch eine erhebliche betriebliche Komplexität mit sich.
Schritt 4: Die Produktionsmentalität – Zuverlässigkeit, Beobachtbarkeit und Sicherheit
Sobald Ihr LLM bereitgestellt ist, beginnt die eigentliche Arbeit. Der Übergang zur Produktion erfordert einen signifikanten Wandel in der Denkweise – von „es zum Laufen bringen" zu „es am Laufen halten".
Realitätstests
Der Happy Path einer Demo ist nicht die Produktionsrealität. Sie müssen eine systematische Teststrategie verfolgen:
- Robustheitstests: LLMs sind überraschend anfällig. Kleine Änderungen in der Eingabe können große Verschiebungen in der Ausgabe verursachen. Automatisierte Test-Frameworks, die das Modellverhalten unter verschiedenen Störungen systematisch bewerten, sind unerlässlich.
- Goldener Datensatz: Erstellen Sie einen „goldenen Datensatz" mit repräsentativen Benutzerabfragen und erwarteten Ausgaben. Dies ist die Grundlage für die Automatisierung der Evaluierung. Neue Modellversionen oder Prompt-Änderungen sollten vor der Bereitstellung gegen diesen Datensatz getestet werden. Liefern Sie niemals ohne ihn aus.
- RAG-Evaluierung: Wenn Sie Retrieval Augmented Generation (RAG) verwenden, bewerten Sie nicht nur die endgültige Antwort, sondern auch die Abrufqualität mithilfe von Metriken wie kontextueller Präzision und Recall.
Eine Produktions-Checkliste implementieren
Eine Produktions-Checkliste ist ein wichtiges Werkzeug, um Disziplin zu wahren. Zu den wichtigsten Punkten gehören:
- Client-Hygiene: Setzen Sie Timeouts, implementieren Sie Wiederholungen mit Jitter und verwenden Sie Idempotenzschlüssel für wiederholte Operationen.
- Server-Einstellungen: Implementieren Sie strenge tokenbewusste Ratenbegrenzungen pro Benutzer. Setzen Sie Kontext- und Ausgabelimits basierend auf echten Geschäftsanforderungen, nicht auf dem Maximum des Modells.
- Zuverlässigkeitsmuster: Verwenden Sie Health Probes, Circuit Breaker und Graceful Shutdowns. Führen Sie Ausfallübungen durch (z. B. Simulation eines Out-of-Memory-Fehlers), um sicherzustellen, dass sich Ihre Systeme wie erwartet erholen.
Messen, was Benutzer fühlen
Beobachtbarkeit ist nicht verhandelbar. Verfolgen Sie Metriken, die sich direkt auf die Benutzererfahrung auswirken:
- Time to First Token (TTFT) und Tokens Per Second (TPS): Wichtige Indikatoren für die gefühlte Geschwindigkeit. Streben Sie ≤800 ms für TTFT beim p95-Perzentil an.
- Warteschlangenlänge und GPU-Speicherreserve: Überwachen Sie diese, um Überlastung zu vermeiden und die Ressourcennutzung zu optimieren.
- Fehlerraten nach Typ: Unterscheiden Sie zwischen OOM-Fehlern, Timeouts und Client-Fehlern.
Sicherheit und Kosten
- Sicherheit: Erzwingen Sie TLS überall, verwenden Sie pro Dienst API-Schlüssel und protokollieren Sie niemals rohe Prompts standardmäßig.
- Kosten: Behandeln Sie Tokens als endliche Ressource. Überwachen Sie den Token-Verbrauch pro Funktion und pro Mandant und cachen Sie Antworten aggressiv. Verwenden Sie kleinere, effizientere Modelle für einfachere Aufgaben, um Kosten zu senken.
Quellen
- vLLM Production Stack Dokumentation: Quelle für die Bereitstellung von vLLM auf Kubernetes mit Helm-Charts und das Verständnis seiner Konfiguration.
- Etiq AI – Production LLM Systems: Quelle für Prinzipien von Robustheitstests, RAG-Evaluierung und die „Produktionsrealität".
- DigitalOcean – Deploy llm-d on Kubernetes: Quelle für praktische Schritte zur Bereitstellung verteilter LLM-Inferenz auf Kubernetes und GPU-Auswahl.
- Google Cloud Blog – Vertex AI Open Model Guide: Quelle für Modellentdeckung, Fine-Tuning und optimiertes Serving auf verwalteten Plattformen.
- vLLM Kthena Dokumentation: Quelle für die Bereitstellung von Multi-Node-vLLM-Diensten mit Kthena und Volcano.
- Hivenet – Production Checklist for Your LLM API: Quelle für eine praktische Checkliste zu Client-Hygiene, Server-Einstellungen, Zuverlässigkeit und Überwachung.
- Deepchecks – How are teams implementing LLMOps?: Quelle für LLMOps-Referenzarchitektur, Implementierungsphasen und operative Best Practices.
— Editorial Team
Noch keine Kommentare.