Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).
Skalierbare KI/ML-Infrastrukturen¶
Hinweis zur Software-Auswahl:
Diese Dokumentation priorisiert Open-Source-Software, die auf Ubuntu-Servern betrieben werden kann.
Bei kommerziellen Cloud-Lösungen wird stets eine Open-Source-Alternative für das eigene Rechenzentrum (On-Premise) gegenübergestellt.
LLM-Modelle und Inference-Server werden unabhängig vom Preis gelistet, da sie die funktionale Kernkomponente darstellen.
Legende¶
| Symbol | Bedeutung |
|---|---|
| 🟩 | Open Source – kostenlos, self-hosted / Ubuntu-kompatibel |
| 💰 | Kostenpflichtig |
| 🤖 | LLM-Modell / API / Inference-Server – bleibt immer gelistet |
| 🐧 | Linux / Ubuntu nativ |
| 🌐 | Nur Web-Browser |
Lernpfad-Übersicht¶
graph LR
A["🟢 Phase 1\nSingle-Node & CUDA"] --> B["🟡 Phase 2\nContainer & MLOps"]
B --> C["🔴 Phase 3\nCluster-Skalierung"]
A --> A1["Hardware & CUDA\nvLLM & Ollama\nGPU-Monitoring"]
B --> B1["Docker / Podman\nKubernetes / K3s\nMLflow Pipelines"]
C --> C1["Multi-Node Cluster\nGPU Partitioning (MIG)\nDistributed Training"]
Inhaltsverzeichnis¶
- 🟢 Phase 1 – Hardware, CUDA & Single-Node Serving
- 🟡 Phase 2 – Containerisierung, Orchestrierung & MLOps
- 🔴 Phase 3 – Cluster-Skalierung, Virtualisierung & High-Availability
- 📋 Praxisprojekte
- 📦 Vollständige Softwareübersicht & Vergleich
🟢 Phase 1 – Hardware, CUDA & Single-Node Serving¶
Was lerne ich hier?
Die richtige Hardware-Evaluierung, das Installieren der GPU-Treiber unter Ubuntu und das Hosten deines ersten Inference-Servers inklusive Überwachung.
Voraussetzungen: Grundkenntnisse in Linux-Systemadministration.
1.1 Konzept: Hardware-Anforderungen für KI/ML¶
Konzept: CPU vs. GPU vs. TPU¶
| Chip-Typ | Architektur | Eignung für KI |
|---|---|---|
| CPU | Wenige, komplexe Kerne (latenzoptimiert) | Sehr langsame Inferenz, ungeeignet für Training |
| GPU | Tausende, einfache Kerne (durchsatzoptimiert) | Standard für Training & Inferenz (NVIDIA CUDA) |
| TPU / NPU | Spezialisierte ASICs für Matrix-Multiplikation | Extrem schnell für spezifische Modelle |
Konzept: Der VRAM-Flaschenhals¶
Das wichtigste Kriterium einer GPU für LLMs ist der VRAM (Video-RAM). Ein Modell muss vollständig in den VRAM passen, um schnell ausgeführt zu werden.
Modellgröße berechnen (Faustregel):
Parameterzahl (z.B. 8B) * Byte pro Parameter (FP16 = 2 Byte, INT8 = 1 Byte, INT4 = 0.5 Byte)
Beispiel Llama 3 8B in FP16: 8.000.000.000 * 2 Byte = 16 GB VRAM benötigt.
1.2 Thema: NVIDIA CUDA & Driver unter Ubuntu einrichten¶
Konzept: Der GPU-Treiber-Stack¶
Damit Applikationen die GPU nutzen können, muss der Stack korrekt installiert sein:
graph TD
A["🐍 KI-Anwendung (PyTorch / vLLM)"] --> B["⚙️ CUDA Toolkit (Bibliotheken)"]
B --> C["📦 NVIDIA Container Toolkit (für Docker)"]
C --> D["🐧 Kernel-Treiber (Ubuntu NVIDIA Driver)"]
D --> E["🔌 Physische GPU"]
CLI-Befehle zur Einrichtung unter Ubuntu 24.04 LTS:¶
# NVIDIA-Treiber installieren
sudo apt update
sudo apt install nvidia-driver-550 nvidia-utils-550
# System neustarten und Installation prüfen
sudo reboot
nvidia-smi # Zeigt GPU-Temperatur, VRAM und Prozesse
1.3 Thema: Single-Node Inference-Server (vLLM & Ollama)¶
Konzept: Batching und Durchsatz-Optimierung¶
Ein Standard-LLM-Inference-Server reagiert träge, wenn viele Anfragen parallel eingehen. Leistungsstarke Server wie vLLM nutzen PagedAttention, um VRAM-Fragmentierung zu verhindern und Anfragen dynamisch zu bündeln (Continuous Batching).
Software – Open Source / LLM:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 🤖 vLLM | Server | Hochperformanter Inference-Server mit PagedAttention | 🐧 Ja | github.com/vllm-project |
| 🟩 🤖 Ollama | Server | Einfacher, benutzerfreundlicher Modell-Server | 🐧 Ja | ollama.com |
| 🟩 🤖 Triton Inference Server | Server | NVIDIAs Enterprise Multi-Modell-Server | 🐧 Ja | github.com/triton-inference-server |
Vergleich: Open Source vs. Kommerziell¶
| Server | Open Source 🟩 (Ubuntu / Self-hosted) | Kommerziell 💰 (Cloud-API) |
|---|---|---|
| LLM-Hosting | vLLM, Ollama, Triton Server | OpenAI API, Replicate, AWS Bedrock |
1.4 Thema: GPU-Monitoring (Prometheus & Grafana)¶
Konzept: DCGM (Data Center GPU Manager)¶
NVIDIA-GPUs im Rechenzentrum liefern detaillierte Metriken über Auslastung, Temperatur, Stromverbrauch und Speicherfehler. Der DCGM Exporter übersetzt diese in das Prometheus-Format.
Software – alle Open Source:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 Prometheus | Time-Series-DB | Speicherung der Performance-Metriken | 🐧 Ja | prometheus.io |
| 🟩 Grafana | Dashboard | Visualisierung der GPU- und Systemauslastung | 🐧 Ja | grafana.com |
| 🟩 NVIDIA DCGM Exporter | Exporter | Exportiert GPU-Metriken für Prometheus | 🐧 Ja | github.com/NVIDIA |
🟡 Phase 2 – Containerisierung, Orchestrierung & MLOps¶
Was lerne ich hier?
Wie du ML-Umgebungen in Docker-Containern isolierst, Workloads über Kubernetes steuerst und den Lebenszyklus von Modellen mit MLOps-Tools verwaltest.
Voraussetzungen: Phase 1 abgeschlossen.
2.1 Konzept: Container-Vorteile im ML-Bereich¶
Das Dependency-Chaos verhindern¶
ML-Code hat komplexe Abhängigkeiten (bestimmte Python-Versionen, spezifische PyTorch-Versionen, die genau zu einer CUDA-Version passen müssen). Container kapseln diese Umgebung ein für alle Mal ein:
2.2 Thema: Docker & Podman für GPU-Workloads¶
Konzept: NVIDIA Container Toolkit¶
Docker-Container können standardmäßig nicht auf die Grafikkarte zugreifen. Das NVIDIA Container Toolkit schleift die GPU sicher in den Container durch.
# Docker mit GPU-Zugriff starten
docker run --gpus all -it nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi
Software – alle Open Source:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 Docker Engine | Container | De-facto-Standard zur Containerisierung | 🐧 Ja | docker.com |
| 🟩 Podman | Container | Rootless, daemonlose Docker-Alternative | 🐧 Ja | podman.io |
| 🟩 NVIDIA Container Toolkit | Helper | Ermöglicht GPU-Schnittstelle für Container | 🐧 Ja | github.com/NVIDIA |
2.3 Thema: Kubernetes (K8s) & K3s für ML-Orchestrierung¶
Konzept: GPU-Scheduling¶
Kubernetes verwaltet ein Cluster aus Servern. Durch den NVIDIA GPU Operator kann Kubernetes erkennen, welche Nodes freie GPUs haben, und Container gezielt dort deployen:
# Pod-Ressourcenanforderung in Kubernetes
resources:
limits:
nvidia.com/gpu: 1 # Kubernetes reserviert genau 1 GPU für diesen Container
Software – alle Open Source:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 K3s (Rancher) | Kubernetes | Leichtgewichtiges K8s, perfekt für Edge und mittlere Cluster | 🐧 Ja | k3s.io |
| 🟩 Kubernetes | Orchestrierung | Branchenstandard für Container-Orchestrierung | 🐧 Ja | kubernetes.io |
| 🟩 NVIDIA GPU Operator | Operator | Automatisiert das GPU-Setup auf Kubernetes Nodes | 🐧 Ja | github.com/NVIDIA |
2.4 Thema: MLOps-Pipelines & Versionierung (MLflow)¶
Konzept: Das Modell-Register¶
Modelle verhalten sich anders als herkömmlicher Code. Sie bestehen aus Code + Hyperparametern + Trainingsdaten. MLflow trackt all diese Faktoren und registriert die daraus resultierenden Modellgewichte.
Software – alle Open Source:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 MLflow | MLOps Platform | Tracking von Experimenten, Code & Modellversionen | 🐧 Ja | mlflow.org |
| 🟩 Kubeflow | MLOps Platform | Komplettes MLOps-Framework für Kubernetes | 🐧 Ja | kubeflow.org |
Vergleich: Open Source vs. Kommerziell¶
| MLOps-Schritt | Open Source 🟩 (Ubuntu / Self-hosted) | Kommerziell 💰 |
|---|---|---|
| Experiment-Tracking | MLflow | Weights & Biases, Neptune.ai |
| Workflow-Pipelines | Kubeflow Pipelines, Apache Airflow | AWS SageMaker, Azure ML |
🔴 Phase 3 – Cluster-Skalierung, Virtualisierung & High-Availability¶
Was lerne ich hier?
Wie du GPUs virtualisierst, extrem schnelle Speichersysteme für Terabytes an Trainingsdaten anbindest und Modelle über mehrere Server parallel trainierst.
Voraussetzungen: Phase 1 & 2 abgeschlossen.
3.1 Konzept: Skalierungstechnologien (Horizontal vs. Vertikal)¶
| Skalierungsart | Beschreibung | Vorteile | Nachteile |
|---|---|---|---|
| Vertikal (Scale-Up) | Stärkere/Mehr GPUs in einen Server einbauen | Keine Netzwerklatenz, einfach zu programmieren | Limit durch Mainboard & Stromversorgung |
| Horizontal (Scale-Out) | Mehr Server in das Cluster aufnehmen | Unbegrenztes Potenzial | Hohe Latenz über das Netzwerk (InfiniBand nötig) |
3.2 Thema: GPU-Virtualisierung & Partitionierung (MIG)¶
Konzept: Multi-Instance GPU (MIG)¶
Größere GPUs (wie NVIDIA H100 oder A100) sind für kleinere Aufgaben (z. B. Entwicklung oder Übersetzung) unterfordert. Durch MIG kann eine physische GPU in bis zu 7 unabhängige Hardware-Instanzen partitioniert werden.
Physische GPU (z.B. A100 80GB)
--> Instance 1 (10GB VRAM) -> User A (Dev-Notebook)
--> Instance 2 (10GB VRAM) -> User B (Test-Bot)
--> Instance 3 (20GB VRAM) -> Pipeline (Inferenz)
--> Instance 4 (40GB VRAM) -> Pipeline (Training)
Software – alle Open Source:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 NVIDIA MIG Manager | Tool | CLI zur dynamischen Partitionierung der GPUs | 🐧 Ja | github.com/NVIDIA |
3.3 Thema: High-Performance Storage für Trainingsdaten¶
Konzept: Warum Standard-HDDs scheitern¶
Beim Deep Learning müssen Millionen kleinster Dateien (z. B. Bilder oder Audio-Snippets) parallel in den GPU-Speicher geschaufelt werden. Standard-Netzwerkfreigaben (NFS) erzeugen hier einen Flaschenhals. Benötigt werden Objektspeicher mit NVMe-Backends.
Software – alle Open Source:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 MinIO | Object Storage | S3-kompatibler, extrem schneller Objektspeicher | 🐧 Ja | min.io |
| 🟩 Ceph | Distributed Storage | Skalierbares Speicher-Cluster (Block, Object, File) | 🐧 Ja | ceph.io |
Vergleich: Open Source vs. Kommerziell¶
| Storage-Typ | Open Source 🟩 (Ubuntu / Self-hosted) | Kommerziell 💰 |
|---|---|---|
| Objektspeicher (S3) | MinIO, Ceph | AWS S3, Google Cloud Storage |
| High-Performance File | CephFS, Lustre | WekaIO, GPFS (IBM) |
3.4 Thema: Multi-Node Clustering & Distributed Training¶
Konzept: Distributed Data Parallel (DDP)¶
Wenn ein Modell zu groß für einen Server ist oder das Training zu lange dauert, wird der Trainingsprozess aufgeteilt:
- Data Parallelism (DDP): Jede GPU erhält das gesamte Modell, aber unterschiedliche Daten-Batches. Synchronisation erfolgt nach jedem Schritt.
- Model Parallelism: Das Modell wird in Schichten aufgeteilt. Node A berechnet Schichten 1–10, Node B berechnet 11–20.
Software – alle Open Source:¶
| Software | Typ | Funktion | Ubuntu | Link |
|---|---|---|---|---|
| 🟩 PyTorch DDP | Deep Learning | Native PyTorch-Bibliothek für verteiltes Training | 🐧 Ja | pytorch.org |
| 🟩 Ray | Compute Engine | Flexibles Open-Source-Framework für verteiltes Python | 🐧 Ja | ray.io |
📋 Praxisprojekte¶
🟢 Einsteiger: Lokaler vLLM Inference-Server unter Ubuntu¶
Wir installieren vLLM und starten ein 8B-Modell als API-Schnittstelle.
# Virtuelle Umgebung vorbereiten
python3 -m venv .venv
source .venv/bin/activate
pip install vllm
# vLLM Server starten
python3 -m vllm.entrypoints.openai.api_server \
--model meta-llama/Meta-Llama-3-8B-Instruct \
--port 8000
Software (alle Open Source): Ubuntu · Python · vLLM · PyTorch
🟡 Fortgeschritten: GPU-Überwachungs-Dashboard aufbauen¶
Wir erfassen die GPU-Temperatur und VRAM-Auslastung und visualisieren sie.
graph LR
A["🔌 GPU"] --> B["📦 DCGM Exporter"]
B -->|Port 9400| C["⚡ Prometheus DB"]
C -->|Port 9090| D["💻 Grafana Web-UI"]
Software (alle Open Source): Docker · NVIDIA DCGM Exporter · Prometheus · Grafana
🔴 Experte: K3s Edge-Cluster mit GPU-Support¶
Wir setzen ein K3s-Kubernetes-Cluster auf Ubuntu auf, installieren den GPU-Operator und deployen einen vLLM-Service, der automatisch auf Nodes mit freiem GPU-Speicher gescheduled wird.
graph TD
A["git push config"] --> B["☸️ K3s Control Plane"]
B -->|GPU Operator| C["🖥️ Worker Node 1 (RTX 4090)\nvLLM Pod läuft"]
B -->|Keine GPU| D["🖥️ Worker Node 2 (No GPU)\nWird übersprungen"]
Software (alle Open Source): K3s · NVIDIA GPU Operator · vLLM · Docker/Containerd
📦 Vollständige Softwareübersicht & Vergleich¶
Inference & Model-Serving¶
| Funktion | Open Source 🟩 (Ubuntu / Self-hosted) | Kommerziell 💰 |
|---|---|---|
| Performance Inference | vLLM 🐧, Triton Server 🐧, TGI 🐧 | Replicate, DeepInfra |
| Developer-Serving | Ollama 🐧, llama.cpp 🐧 | OpenAI, Claude |
Container & Orchestrierung¶
| Funktion | Open Source 🟩 (Ubuntu / Self-hosted) | Kommerziell 💰 |
|---|---|---|
| Container Engine | Docker Engine 🐧, Podman 🐧 | — |
| Cluster-Orchestrierung | Kubernetes 🐧, K3s 🐧 | Google GKE, AWS EKS |
| GPU-Treiber Operator | NVIDIA GPU Operator 🐧 | Cloud Managed GPU Driver |
MLOps & Pipelines¶
| Funktion | Open Source 🟩 (Ubuntu) | Kommerziell 💰 |
|---|---|---|
| Experiment-Tracking | MLflow 🐧 | Weights & Biases |
| Workflow-Pipeline | Kubeflow 🐧, Apache Airflow 🐧 | Azure ML, SageMaker |
| Datensatz-Versionierung | DVC 🐧 | — |
High-Performance Storage¶
| Funktion | Open Source 🟩 (Ubuntu) | Kommerziell 💰 |
|---|---|---|
| Objektspeicher | MinIO 🐧, Ceph 🐧 | AWS S3, Google Cloud Storage |
| Verteilter Speicher | CephFS 🐧, Lustre 🐧 | WekaIO, IBM GPFS |
Compute & Distributed Training¶
| Funktion | Open Source 🟩 (Ubuntu) | Kommerziell 💰 |
|---|---|---|
| Verteilte Berechnung | Ray 🐧 | AWS ParallelCluster |
| Multi-GPU-Training | PyTorch DDP 🐧, DeepSpeed 🐧 | — |
| Job-Scheduling | Slurm 🐧 | Run:ai |
Monitoring¶
| Funktion | Open Source 🟩 (Ubuntu) | Kommerziell 💰 |
|---|---|---|
| Metrikerfassung | Prometheus 🐧 | Datadog |
| Dashboard | Grafana 🐧 | Datadog Dashboards |
| GPU-Metriken | DCGM Exporter 🐧 | — |
Weiterführende Ressourcen¶
- NVIDIA DCGM Docs – Offizielle Treiber- und Metrik-Doku
- vLLM Documentation – PagedAttention konfigurieren 🟩
- Kubeflow Project – Orchestrierungs-Handbuch 🟩
- K3s Light Kubernetes – Cluster-Dokumentation 🟩
- Ceph Distributed Storage – Speicherarchitekturen 🟩
Letzte Aktualisierung: Juli 2026
Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).