fairlane.systems

TGI · TECH

Text Generation Inference (TGI): Production-Serving aus dem Hugging-Face-Universum

TGI ist Hugging Faces Apache-2.0-Inference-Server für Production-Workloads mit Continuous Batching, Flash-Attention und direkter Anbindung an den Hugging-Face-Hub.

Recherche & Faktencheck: · Stand: 2026-05

Was ist Text Generation Inference?

Text Generation Inference (TGI) ist ein Open-Source-Inference-Server für grosse Sprachmodelle, entwickelt von Hugging Face und Mai 2026 in Version 2.4+ unter Apache 2.0 verfügbar. Das Repository liegt unter github.com/huggingface/text-generation-inference und hat über 10.000 GitHub-Sterne. TGI ist die offizielle Production-Serving-Lösung von Hugging Face – die gleiche Infrastruktur betreibt auch die Inference-Endpoints und die Inference-API auf huggingface.co.

Anders als vLLM, das als rein Open-Source-Projekt der UC-Berkeley/Linux-Foundation lebt, ist TGI eng mit dem Hugging-Face-Hub verbunden: jedes Modell auf huggingface.co lässt sich ohne Konvertierungs-Schritt direkt in TGI laden. "model = huggingface/Llama-3.3-70B-Instruct" reicht – TGI lädt die Gewichte, erkennt die Architektur automatisch, startet die Inferenz. Diese tighte Hub-Integration ist der wichtigste Differenzierungs-Punkt gegenüber vLLM.

Funktional überlappen TGI und vLLM stark: beide bieten Continuous Batching (TGI nennt es "request batching"), beide nutzen FlashAttention 2 / FlashAttention 3 für effiziente Aufmerksamkeits-Berechnung, beide unterstützen Tensor-Parallelism und Quantisierung (AWQ, GPTQ, INT8, FP8, EETQ, Marlin-Kernel), beide bieten OpenAI-kompatible Endpunkte. Unterschiede liegen im Detail: TGI ist mit dem text-embeddings-inference-Schwester-Projekt für Embeddings ergänzt, TGI hat ein robusteres Verhalten bei sehr seltenen Modell-Architekturen, vLLM ist bei reiner Throughput-Optimierung typisch 10-20 Prozent voraus.

Version Mai 2026: TGI 2.4+ mit Unterstützung für Llama 4 Scout und Maverick, Mistral Large 2, Qwen 3, die aktuelle DeepSeek-V-Generation, Apertus 8B und 70B, sowie Vision-Language-Modelle (Idefics 3, Qwen2-VL, LLaVA-NeXT). Quantisierung über bitsandbytes, GPTQ, AWQ, EETQ, FP8 und Marlin.

Die Schnittstelle ist OpenAI-kompatibel auf POST /v1/chat/completions plus native Endpunkte unter /generate und /generate_stream. Damit funktionieren bestehende OpenAI-SDKs, LiteLLM und LangChain ohne Anpassung.

Warum TGI für CH-Daten zählt

TGI hat für Schweizer Treuhand- und Anwalts-Setups vier konkrete Argumente.

Erstens: Hugging-Face-Hub-Nähe als Operations-Vorteil. Wer regelmässig zwischen Modellen testet (Apertus vs Mistral vs Llama vs DeepSeek), spart mit TGI die Modell-Konvertierung. Ein neues Modell ist nach drei Minuten produktiv. Bei vLLM oder llama.cpp ist die Konvertierung von HF-Safetensors zu GGUF oder die AWQ-Quantisierung oft ein eigener Schritt. TGI ist hier operativ direkter.

Zweitens: Stabilität bei seltenen Architekturen. Manche Open-Weight-Modelle haben spezielle Architekturen – Multi-Query-Attention mit ungewöhnlichen Konfigurationen, MoE-Varianten mit eigenen Routing-Logiken, Vision-Sprache-Kombinationen. Hier kommt TGI durch die Hub-Integration gut zurecht: jedes Modell, das auf huggingface.co landet, wird in der Regel auch in TGI getestet. vLLM ist schneller, aber gelegentlich gibt es bei seltenen Architekturen kleine Reibungs-Punkte.

Drittens: Embeddings über das Schwester-Projekt. text-embeddings-inference (TEI) ist von der gleichen Hugging-Face-Mannschaft, hat die gleiche Operations-Logik und bedient Embedding-Modelle wie bge-large, e5-large, gte-large oder nomic-embed-text. Wer eine RAG-Pipeline aufsetzen will, hat mit TGI + TEI zwei kompatible Bausteine – gleiches Docker-Setup, gleiche Monitoring-Logik, gleiche API-Konventionen.

Viertens: Lizenz und Souveränität. TGI ist Apache 2.0. Es läuft komplett im eigenen Rack oder auf einer Schweizer GPU-Instanz bei Infomaniak. Hugging Face als Firma hat zwar US-Sitz, aber die Software selbst hat keine externen Abhängigkeiten – keine Daten verlassen den Server. Für FINMA-AM-08/2024- und EU-AI-Act-Art-10-Compliance ist das ausreichend, solange die Modelle aus dem Hub einmal initial geladen werden (Air-gapped Setups laden Modelle vorab über das huggingface-cli-Tool).

Fünftens, operatives Detail: TGI hat eine sehr ausgereifte Telemetrie-Pipeline. Prometheus-Metriken sind tief – pro Layer, pro Token, pro Request. Audit-Logs lassen sich strukturiert in einem JSON-Format extrahieren. Das ist für regulierte Setups (FINMA, EU AI Act Art. 15) wertvoll.

Wie TGI technisch funktioniert

TGI ist eine Hybrid-Implementierung: ein Rust-Router-Prozess für Request-Handling und ein Python-Inferenz-Worker pro GPU oder Tensor-Parallel-Gruppe.

Setup-Beispiel. Auf einem Hetzner-Server mit zwei H100 80GB:

``` docker run --gpus all --shm-size 4g -p 8080:80 \ -v $PWD/data:/data \ ghcr.io/huggingface/text-generation-inference:2.4.1 \ --model-id meta-llama/Llama-4-Scout-17B-Instruct \ --max-input-tokens 128000 \ --max-total-tokens 132000 \ --num-shard 2 \ --quantize awq ```

Dieser Befehl startet Llama 4 Scout auf zwei GPUs mit Tensor-Parallel-Split, AWQ-4-Bit-Quantisierung und 128k Context-Input. Die API ist auf http://localhost:8080/v1/ verfügbar.

Router-Worker-Architektur. Der Rust-Router nimmt Anfragen entgegen, führt Authentication durch (--api-key) und stellt sie in eine Queue. Der Worker-Prozess (Python mit PyTorch) holt sich Batches aus der Queue und gibt sie an das Modell. Diese Trennung erlaubt Robustheit: wenn der Worker abstuerzt, sammelt der Router weiter Anfragen und startet den Worker neu, ohne dass externe Clients Verbindung verlieren.

FlashAttention. TGI nutzt Mai 2026 FlashAttention 3 auf Hopper-GPUs (H100, H200, B200) – eine speziell für Tensor-Cores optimierte Aufmerksamkeits-Implementierung mit etwa 1,5x bis 2x Speedup gegenüber Standard-Attention. Auf Ampere-GPUs (A100, RTX 4090) wird FlashAttention 2 verwendet.

Quantisierungs-Wahl. Empfehlung Mai 2026 für typische Setups: AWQ (Activation-aware Weight Quantization) auf 4 Bit für 70B-Modelle. AWQ liefert die beste Qualität bei 4 Bit, weil es die Aktivierungs-Verteilung berücksichtigt. FP8 auf Hopper-GPUs ist eine Alternative mit etwa 2x Geschwindigkeit gegenüber FP16, aber etwas höherem Qualitätsverlust (1-2 Prozent auf MMLU).

Streaming-Antworten. GET /generate_stream liefert Server-Sent-Events mit Token-für-Token-Output. Wichtig für Chat-UI mit Lade-Effekt. Die OpenAI-kompatible Streaming-Schnittstelle auf /v1/chat/completions mit stream=true funktioniert identisch.

Production-Pattern Schweiz Mai 2026. Eine Anwaltskanzlei betreibt zwei TGI-Knoten in Genf (Infomaniak) und in Zürich (eigenem Rack), beide mit Apertus 70B auf zwei H100. Eine Nginx-Schicht davor mit Active-Active-Routing. LiteLLM dazwischen für Fallback-Logik (wenn TGI-Knoten ausfällt, geht der Request an Mistral La Plateforme). Audit-Logs aus TGI-stdout in Loki, Metriken in Prometheus, Alerts in Grafana auf p95-Latenz und Queue-Tiefe.

Embeddings via TEI. Ergänzend läuft text-embeddings-inference auf einem kleineren Server (CPU-only oder RTX 4060 reichen). Beispiel: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5 --model-id BAAI/bge-large-en-v1.5. Die API entspricht OpenAI /v1/embeddings.

TGI produktiv in 5 Schritten

  1. 01Hardware-Prüfung: NVIDIA-GPU mit mindestens 24 GB VRAM (RTX 4090, L40S, H100), CUDA 12.4+, Linux mit Docker.
  2. 02Modell-Wahl: HF-Hub-ID definieren (z.B. meta-llama/Llama-4-Scout-17B-Instruct, swiss-ai/Apertus-70B-Instruct), Quantisierung wählen (AWQ für 4-Bit, FP8 für Hopper-GPUs).
  3. 03Docker-Container starten: ghcr.io/huggingface/text-generation-inference:2.4.1 mit --model-id, --max-input-tokens, --num-shard (falls Tensor-Parallel) und --quantize.
  4. 04LiteLLM-Anbindung: TGI als OpenAI-kompatibler Provider eintragen, logischer Modell-Name in config.yaml, Routing-Regeln definieren.
  5. 05TEI für Embeddings dazu: separater Container ghcr.io/huggingface/text-embeddings-inference mit bge-large oder nomic-embed-text. Prometheus auf beide Endpunkte, Grafana-Dashboard mit p95-Latenz und Queue-Tiefe.

Wann TGI einsetzen

TGI ist die richtige Wahl, wenn (a) das Team viele verschiedene Hugging-Face-Modelle testet, (b) Vision-Language-Modelle oder andere Multimodal-Architekturen produktiv laufen sollen, oder (c) Embeddings und LLM-Serving auf einer einheitlichen Operations-Logik laufen sollen.

Konkrete Fälle: Beratungs-Boutique mit experimentellem Charakter – vier verschiedene Modelle (Apertus 70B für Souveränität, Mistral für FR/IT, Llama 4 Scout für Long-Context, Qwen 3 für Code) auf der gleichen Infrastruktur. TGI macht den Wechsel zwischen Modellen schnell. Anwaltskanzlei mit Vision-Pipeline (Vertrag-Foto-Scan, Erkennung von Unterschriften, OCR-Vorverarbeitung mit Vision-Language-Modell) – Idefics 3 oder Qwen2-VL in TGI. Treuhand-Büro mit produktivem RAG-Setup – TGI für LLM, TEI für Embeddings, einheitliche Operations-Pipeline.

Auch für Setups mit kuenftigem Multi-Model-Bedarf ist TGI vorausschauend: jeder neue Modell-Release auf huggingface.co ist innert Stunden produktiv testbar. Die Operations-Logik bleibt gleich.

Wann NICHT

Für reine Throughput-Maximierung auf einem einzigen, stabilen Modell ist vLLM Mai 2026 typisch 10-20 Prozent voraus. Wer den letzten Tropfen GPU-Effizienz braucht, geht zu vLLM.

Für CPU-only-Setups ist TGI nicht die richtige Wahl – die Architektur ist auf GPU optimiert. Hier sind llama.cpp oder Ollama besser.

Für Apple-Silicon-Setups gilt das gleiche – TGI nutzt CUDA und ROCm, kein Metal.

Für Multi-Modal-Setups mit Whisper, Stable Diffusion und TTS ist LocalAI bequemer, weil es alle Modalitäten unter einer API bündelt. TGI fokussiert sich auf Sprachmodelle und Vision-Sprache, deckt aber kein Audio und keine Bild-Generierung ab.

Für kleine Setups mit ein bis zwei Nutzern ist TGI überdimensioniert – Ollama auf der gleichen Hardware ist schneller eingerichtet und liefert vergleichbare Ergebnisse.

Vor- und Nachteile

STÄRKEN

  • Direkter Hugging-Face-Hub-Zugriff – Modell-Wechsel ohne Konvertierungs-Schritt
  • Apache-2.0-Lizenz, vollständig Self-Host-fähig, EU/CH-konform betreibbar
  • Robust auf seltenen Architekturen und Vision-Sprache-Modellen
  • Schwester-Projekt TEI für Embeddings ergibt eine kohaerente RAG-Operations-Pipeline

SCHWÄCHEN

  • Reine LLM-Throughput-Leistung typisch 10-20 Prozent hinter vLLM
  • GPU-Pflicht – kein CPU- oder Apple-Silicon-Modus
  • Konfigurations-Aufwand etwas höher als Ollama, besonders bei Tensor-Parallel-Setups
  • Hugging-Face-Hub-Abhängigkeit bei initialem Modell-Download (in Air-gapped Setups vorab lösen)

Häufige Fragen

Wann TGI statt vLLM?

Wenn das Team viele verschiedene Hugging-Face-Modelle ausprobiert, ist TGI durch die direkte Hub-Integration schneller. Bei seltenen Architekturen (neue MoE-Varianten, exotische Vision-Modelle) ist TGI typisch stabiler. Wenn Embeddings auch lokal laufen sollen, ist TGI + TEI eine kohaerente Familie. Für maximalen Throughput auf einem stabilen Modell ist vLLM voraus.

Wie laufen Vision-Sprache-Modelle in TGI?

Seit TGI 2.0 (2024) sind Vision-Language-Modelle nativ unterstützt. Mai 2026 produktiv: Idefics 3 (HF eigene Familie), Qwen2-VL (Alibaba), LLaVA-NeXT, Pixtral (Mistral). Bilder werden über multipart/form-data oder Base64-encoded JSON-Felder übermittelt. Die OpenAI-kompatible Schnittstelle akzeptiert image_url-Inputs nach der GPT-4-Vision-Spezifikation.

Brauche ich einen Hugging-Face-Account?

Nur für Modelle hinter einer Lizenz-Akzeptanz-Schranke (Llama-Familie, einige Mistral-Modelle). Apache-2.0-Modelle wie Apertus oder Qwen Apache-2.0-Varianten sind ohne Account ladbar. Falls nötig: HF_TOKEN als Umgebungsvariable an TGI übergeben. Air-gapped Setups laden Modelle vorab über das huggingface-cli-Tool und kopieren sie ins isolierte Netzwerk.

Welche Performance liefert TGI auf zwei H100?

Beispiel Mai 2026 mit Apertus 70B in AWQ-4-Bit auf zwei H100 mit Tensor-Parallel: aggregiert 100-160 Tokens/s über alle parallelen Anfragen, p50-Latenz pro Anfrage rund 3-5 Sekunden bei 200-Token-Antworten, p95-Latenz unter 8 Sekunden bei 20 parallelen Anfragen. TTFT (Time To First Token) typisch unter 300ms. Mit Llama 4 Scout auf einer H100 sind 250-400 Tokens/s aggregiert möglich.

Verwandte Themen

VLLM · TECHvLLM: Production-Serving für Open-Weight-LLMs mit hoher Throughput und PagedAttentionOLLAMA · TECHOllama: lokale LLMs auf eigener Hardware – wo es funktioniert und wo nichtLLAMA.CPP · TECHllama.cpp: die portable C/C++-Inferenz-Bibliothek unter Ollama, LM Studio und KoboldCppLOCALAI · TECHLocalAI: OpenAI-API-kompatibler Allrounder für LLM, TTS, STT und Vision in einer BoxLOKALE LLM-RUNTIMES - VERGLEICHLokale LLM-Runtimes im Vergleich: Ollama, vLLM, llama.cpp, LM Studio, LocalAI, TGI, GPT4All, KoboldCpp, Jan, OpenLLMOPEN-WEIGHT-MODELLE - VERGLEICHOpen-Weight-Modelle im Vergleich: Llama 3.3/4, Mistral, DeepSeek, Qwen, Gemma, Phi-4, Command R, Falcon, GLM, ApertusAPERTUS · COMPLIANCEApertus: das offene Schweizer KI-Modell von ETH Zurich, EPFL und CSCS – Stand Mai 2026

Quellen

  1. Hugging Face Text Generation Inference – documentation · 2026-05
  2. huggingface/text-generation-inference – GitHub releases · 2026-05
  3. Hugging Face text-embeddings-inference – sister project · 2026-05
  4. FlashAttention 3 paper and reference · 2026-04

PASSEND ZU IHREM STACK?

Wie das in Ihrem Betrieb konkret aussieht – 30 Minuten Erstgespräch.

Erstgespräch buchen