October 23, 202512 Min. Lesezeit

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 docker

Installation ü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=1g

Weist gemeinsamen Speicher für große Modelle zu

--ulimit memlock=-1

Verhindert Speicher-Swapping für stabile GPU-Inferenz

--ulimit stack=67108864

Erhöht die Stack-Größe für tiefe Modellschichten

-p8000/8001/8002

REST-, 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