Praktische Anwendung von LLM-Servern: Ollama, vLLM und TGI
Die Bereitstellungs Schicht, die Modelldateien in eine LLM-API umwandelt: Ollama für lokale Nutzung, vLLM und Hugging Face TGI für GPUs – sowie das, was herkömmliche Transformers nicht bieten.
Dienst-Engines: die Schicht unter „einfach das Modell aufrufen“
Sie haben bereits Modelle aufgerufen – oft über Ollama. Diese Anleitung befasst sich mit dem Inferenzserver: Er lädt Gewichte, verwaltet die GPU-Memory, gruppiert Aufgaben und streamt Tokens, damit viele Clients auf dieselbe API zugreifen können. Drei Namen, die Sie häufig hören werden: Ollama, vLLM und TGI (Text Generation Inference).
Ollama-Experimente funktionieren einwandfrei mit der CPU eines Laptops. vLLM und TGI benötigen eine GPU – Colab oder Kaggle eignen sich, falls Sie keine haben. Betrachten Sie dies als praktische Anleitung: Führen Sie die Schritte aus und erledigen Sie die Übungen.
Warum reine transformers-Bibliotheken kein Server sind
Das Laden eines Modells und Aufrufen von .generate() funktioniert bei einer langsamen Anfrage. Unter Last versagt es jedoch: Es gibt kein kontinuierliches Batching, eine schwache Speicherverwaltung sowie unpraktische Mehrbenutzer-Streaming-Funktionen. Server-Engines dienen dazu, „Modelldateien“ in eine „API“ umzuwandeln.
Ollama – zunächst lokal
Installieren, herunterladen, ausführen und die HTTP-API aufrufen:
ollama pull llama3.2
ollama serve # usually already running; serves on http://localhost:11434
from openai import OpenAI # pip install openai
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama") # key is ignored locally
resp = client.chat.completions.create(
model="llama3.2",
messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)
Nutzen Sie es, um Prompts zu erlernen und Apps ohne Cloud-Schlüssel zu entwickeln. Kennen Sie jedoch seine Grenzen, wenn Sie eine Skalierung für mehrere Anwendungen benötigen.
vLLM – GPU-Servering für Batching
Auf einer GPU-Betriebsumgebung:
pip install vllm
vllm serve meta-llama/Llama-3.1-8B-Instruct # OpenAI-compatible server on :8000
Kompatible OpenAI-Endpunkte sowie kontinuierliches Batching sind hier entscheidend. Achten Sie auf den GPU-Speicher sowie die Einstellungen für den maximalen Kontextumfang.
TGI – Hugging Face’s Servering-Stack
docker run --runtime nvidia --gpus all \
-v ~/.cache/huggingface:/root/.cache/huggingface \
-p 8000:8000 --ipc=host \
vllm/vllm-openai:latest \
--model meta-llama/Llama-3.1-8B-Instruct
TGI konzentriert sich auf den produktiven Einsatz von HF-Modellen mit Streaming- und Tracing-Funktionen. Vergleichen Sie die Latenz sowie die Betriebskomplexität im Vergleich zu vLLM für Ihre Modelle.
Nebeneinander-Mentalsmodell
client = OpenAI(base_url="http://localhost:8000/v1", api_key="dummy") # ← base_url changed
resp = client.chat.completions.create(
model="meta-llama/Llama-3.1-8B-Instruct", # ← model changed
messages=[{"role": "user", "content": "Explain KV cache in one sentence."}],
)
print(resp.choices[0].message.content)
- Ollama: DX und lokale Iteration
- vLLM: Tokens pro Sekunde auf NVIDIA unter Konkurrenzbedingungen
- TGI: HF-zentrierte Produktionsdienste
Ihre Reihe
docker run --gpus all --shm-size 1g -p 8080:80 \
-v ~/.cache/huggingface:/data \
ghcr.io/huggingface/text-generation-inference:latest \
--model-id meta-llama/Llama-3.1-8B-Instruct
Senden Sie denselben Prompt an jeden Server, notieren Sie die TTFT-Werte sowie die Tokens pro Sekunde und geben Sie anschließend an, welches Tool für Ihr nächstes Projekt geeignet ist – Laptop-Demo, interne GPU-Box oder multi-tenant-API.
Machen Sie die Bereitstellung langweilig: Nutzen Sie Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit realen Einsatzplänen.
Machen Sie die Bereitstellung langweilig: Nutzen Sie Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit realen Einsatzplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Vorgang langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit den tatsächlichen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit realen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit realen Bereitschaftsplänen.
Machen Sie den Deployment-Prozess langweilig: Use von Compose, Health Checks sowie einen einzigen Ort zur Rotation der Modelle. Genau dadurch überstehen interne Tools den Umgang mit realen Bereitschaftsplänen.