Testen des Triton Inference Servers
Wie wir den NVIDIA Triton Inference Server für KI-gestützte Dokumentenverarbeitung im großen Maßstab getestet haben
Einleitung
Bei AI Linkify entwickeln wir KI-Agenten, die komplexe Finanz- und Buchhaltungsdokumente für KMU verarbeiten. Unsere Workloads umfassen mehrere Deep-Learning-Modelle für OCR, Klassifizierung und semantisches Verständnis — alle erfordern schnelle, skalierbare Inferenz.
Um diese Anwendungsfälle effizient zu handhaben, haben wir den NVIDIA Triton Inference Server auf einer Google Cloud VM (Debian) mit einer T4 GPU getestet. Dieser Artikel führt durch unsere exakte Testkonfiguration — Schritt für Schritt — zusammen mit der Begründung, warum jede Wahl für Leistung, Zuverlässigkeit und Reproduzierbarkeit wichtig ist.
1. Vorbereitung der Umgebung
GPU und OS überprüfen
Zuerst haben wir die GPU und das Betriebssystem bestätigt:
lspci | grep -i nvidia cat /etc/os-release | grep PRETTY_NAME
Dies stellt sicher, dass die T4 GPU für das Betriebssystem sichtbar ist und der Debian-Kernel den Treiber-Header-Anforderungen entspricht.
Cloud-optimierten Kernel installieren
Für GCP haben wir den cloud-optimierten Kernel für bessere Treiberkompatibilität und Leistung installiert:
sudo apt install -y linux-image-cloud-amd64 linux-headers-cloud-amd64 sudo init 6
2. Installation der NVIDIA-Treiber
Hinweis:
Wir haben uns für die manuelle Installation anstelle von apt install nvidia-driver entschieden, um konsistente Treiberversionen in Entwicklung und Produktion sicherzustellen — entscheidend für reproduzierbare Inferenz-Workloads.
curl -O https://storage.googleapis.com/nvidia-drivers-us-public/tesla/550.90.12/NVIDIA-Linux-x86_64-550.90.12.run chmod +x NVIDIA-Linux-x86_64-550.90.12.run sudo ./NVIDIA-Linux-x86_64-550.90.12.run --silent
Das --silent-Flag ermöglicht automatisierte Installationen, ideal für Image-Baking oder reproduzierbare Builds.
3. Zusätzlichen Speicher einbinden
In KI-Setups wachsen Modell-Repositories, Logs und Datensätze schnell. Anstatt die Root-Festplatte zu füllen, haben wir eine externe persistente Festplatte angeschlossen (Standard-HDD für Kosteneffizienz).
Hauptvorteile:
- Skalierbarkeit: Festplatte unabhängig erweitern, wenn Modelle wachsen
- Flexibilität: Abtrennen oder löschen, wenn nicht mehr benötigt
- Zuverlässigkeit: Daten bleiben erhalten, auch wenn die VM neu erstellt wird
Festplatte formatieren und einbinden
sudo mkfs.ext4 /dev/sdb sudo mkdir /mnt/data sudo mount /dev/sdb /mnt/data sudo rsync -av /home/ /mnt/data/home/ sudo rsync -av /var/lib/ /mnt/data/var_lib/
Persistente Einbindungen konfigurieren
Zu /etc/fstab hinzufügen:
/dev/sdb /mnt/data ext4 defaults 0 0 /mnt/data/home /home none bind 0 0 /mnt/data/var_lib /var/lib none bind 0 0
4. Installation des NVIDIA Container Toolkit
Wichtig:
Triton läuft in Docker, das über das NVIDIA Container Toolkit auf die GPU zugreifen muss. Das veraltete nvidia-docker2 ist veraltet.
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
sudo apt-get install -y \
nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart dockerInstallation überprüfen
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
5. Bereitstellung des Triton Inference Servers
Triton-Image abrufen
docker pull nvcr.io/nvidia/tritonserver:25.09-py3
Triton-Server ausführen
docker run --gpus=1 --rm --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 \ -p8000:8000 -p8001:8001 -p8002:8002 \ -v /home/user/server/docs/examples/model_repository:/models \ nvcr.io/nvidia/tritonserver:25.09-py3 tritonserver --model-repository=/models
Parameter-Aufschlüsselung
--shm-size=1gWeist gemeinsamen Speicher für große Modelle zu
--ulimit memlock=-1Verhindert Speicher-Swapping für stabile GPU-Inferenz
--ulimit stack=67108864Erhöht die Stack-Größe für tiefe Modellschichten
-p8000/8001/8002REST-, gRPC- und Prometheus-Metrik-Ports
Gesundheitsprüfung
curl -v localhost:8000/v2/health/ready
6. Testen des Client-SDK
SDK-Container abrufen
docker pull nvcr.io/nvidia/tritonserver:25.09-py3-sdk docker run -it --rm --net=host nvcr.io/nvidia/tritonserver:25.09-py3-sdk
Test-Inferenz ausführen
/workspace/install/bin/image_client -m inception_onnx -s INCEPTION /workspace/images/mug.jpg python /workspace/install/python/image_client.py -m inception_onnx -s INCEPTION /workspace/images/mug.jpg exit
Dies führt Inferenz mit einem Beispiel-ONNX-Modell aus und überprüft die End-to-End-GPU-Beschleunigung.
Wichtige Erkenntnisse
- Versionen festlegen — sowohl Treiber als auch Container — für reproduzierbare Ergebnisse
- Dedizierte Festplatten für Modell-Repositories verwenden, um Skalierung und Wartung zu vereinfachen
- Nur modernes Container-Toolkit — nvidia-docker2 ist veraltet, Container Toolkit verwenden
- Ressourcennutzung überwachen — Triton stellt Prometheus-Metriken auf Port 8002 für Grafana-Integration bereit
Diese Konfiguration hat sich für unsere Produktions-Workloads bei AI Linkify als zuverlässig erwiesen und verarbeitet täglich Tausende von Finanzdokumenten mit konsistenter Leistung und Skalierbarkeit.
Sehen Sie AI Linkify in Aktion
Erleben Sie, wie unsere KI-gestützte Plattform die Dokumentenverarbeitung und Transaktionsverknüpfung für Ihr Unternehmen automatisiert