BentoML

BentoML ist ein modernes Open-Source-Framework für den Aufbau, die Bereitstellung und das Skalieren von KI-Anwendungen. Es überbrückt die Lücke zwischen ML-Experimenten und Produktionsbereitstellung, sodass Sie jedes Modell aus jedem Framework in wenigen Minuten in einen produktionsbereiten API-Dienst verpacken können. Führen Sie BentoML in Clore.ais GPU-Cloud aus, um KI-Anwendungen kosteneffizient zu hosten.


Was ist BentoML?

BentoML macht es einfach, ein trainiertes Modell zu nehmen und in einen skalierbaren API-Dienst zu verwandeln:

  • Framework-agnostisch: PyTorch, TensorFlow, JAX, scikit-learn, HuggingFace, XGBoost, LightGBM und mehr

  • Bento: Ein eigenständiges, reproduzierbares Artefakt (Modell + Code + Abhängigkeiten)

  • Runner: Skalierbare Inferenz-Einheit für Modelle mit automatischem Batching

  • Service: FastAPI-ähnliche HTTP/gRPC-Service-Definition

  • BentoCloud: Optionale verwaltete Bereitstellungsplattform

  • Docker-first: Jedes Bento kann mit einem Befehl containerisiert werden

Wichtige Funktionen:

  • Adaptive Micro-Batching zur Durchsatzoptimierung

  • Eingangs-/Ausgangsvalidierung integriert mit Pydantic

  • OpenAPI-Spezifikation automatisch generiert

  • Prometheus-Metriken integriert

  • Unterstützung für Streaming-Antworten (LLMs)


Voraussetzungen

Anforderung
Minimum
Empfohlen

GPU-VRAM

8 GB

16–24 GB

GPU

Jede NVIDIA

RTX 4090 / A100

RAM

8 GB

16 GB

Speicher

20 GB

40 GB

Python

3.9+

3.11+


Schritt 1 — Mieten Sie eine GPU auf Clore.ai

  1. Melden Sie sich an bei clore.aiarrow-up-right.

  2. Klicken Sie Marktplatz und wählen Sie eine GPU-Instanz mit ≥ 16 GB VRAM.

  3. Docker-Image festlegen: Wir verwenden einen benutzerdefinierten Build (siehe Schritt 2).

  4. Offene Ports festlegen: 22 (SSH) und 3000 (BentoML-Service).

  5. Klicken Sie Mieten.


Schritt 2 — Dockerfile

BentoML hat kein offizielles GPU-Docker-Image, daher bauen wir eines:

Build und Push

Baue das Image und pushe es in dein eigenes Docker Hub-Konto (ersetze YOUR_DOCKERHUB_USERNAME durch deinen tatsächlichen Benutzernamen):

circle-info

BentoML stellt kein offizielles GPU-Docker-Image auf Docker Hub bereit. Die bentoml/bento-server Images auf Docker Hub dienen dem Bereitstellen vorverpackter Bentos und enthalten keine CUDA-Unterstützung. Baue das Image aus dem obigen Dockerfile für GPU-fähige Bereitstellungen auf Clore.ai.


Schritt 3 — Verbindung per SSH

BentoML verifizieren:


Schritt 4 — Ihr erster BentoML-Service

Einfacher Textklassifizierer

Erstellen Sie eine Service-Datei:

Starte den Service

circle-info

Der --reload Flag aktiviert Hot-Reload während der Entwicklung. Entfernen Sie es in der Produktion für Stabilität.


Schritt 5 — Zugriff auf den Service

Öffnen Sie die automatisch generierte Swagger-UI:

Oder teste über curl:

Erwartete Antwort:


Schritt 6 — Bildklassifizierungsdienst

Vision-Modell-Service

Teste mit einem Bild:


Schritt 7 — LLM-Streaming-Service

Für Sprachmodelle mit Streaming-Antworten:


Schritt 8 — Speichern und Baue ein Bento

Eine Bento ist ein verpacktes, reproduzierbares Artefakt:

bentofile.yaml


Überwachung und Metriken

BentoML stellt Prometheus-Metriken unter /metrics:

Wichtige Metriken:


Adaptive Batching-Konfiguration


Fehlerbehebung

Service startet nicht

Lösungen:

  • Überprüfe CUDA-Verfügbarkeit: python -c "import torch; print(torch.cuda.is_available())"

  • Überprüfe GPU-VRAM: nvidia-smi

  • Prüfe, ob der Modell-Download abgeschlossen ist (suche nach Download-Fortschritt in den Logs)

Port 3000 nicht erreichbar

Hohe Latenz bei der ersten Anfrage

Das ist normal — die erste Anfrage löst das Laden des Modells (Warm-up) aus. Alle nachfolgenden Anfragen werden schnell sein. Füge nach dem Start einen Warm-up-Endpunkt-Aufruf hinzu:

Importfehler

Lösung:


Clore.ai GPU-Empfehlungen

BentoML ist ein Serving-Framework — GPU-Anforderungen hängen vollständig vom Modell ab, das Sie bereitstellen. Das ist bei gängigen Workloads zu erwarten:

GPU
VRAM
Clore.ai-Preis
LLM (7B Q4) Durchsatz
Diffusion (SDXL)
Vision (ResNet50)

RTX 3090

24 GB

~$0.12/Stunde

~80 tok/s

~4 img/min

~400 req/s

RTX 4090

24 GB

~$0.70/Stunde

~140 tok/s

~8 img/min

~700 req/s

A100 40GB

40 GB

~$1.20/Stunde

~110 tok/s

~6 img/min

~1200 req/s

A100 80GB

80 GB

~$2.00/Stunde

~130 tok/s

~7 img/min

~1400 req/s

Anwendungsleitfaden:

  • LLM-API-Serving (7B–13B): RTX 3090 (~0,12 $/Std.) — optimales Preis-Leistungs-Verhältnis

  • Image-Generierungs-APIs: RTX 3090 oder RTX 4090 je nach Durchsatzanforderungen

  • Große Modelle (34B–70B Q4): A100 40GB (~1,20 $/Std.) — passt bequem

  • Produktions-Multi-Model-Serving: A100 80GB für mehr Speicher-Headroom

circle-info

BentoMLs adaptive Micro-Batching ist besonders effektiv auf A100 — der Hardware-Scheduler verarbeitet Batches effizient und erzielt mehr Durchsatz pro Dollar als naives Einzelanfragen-Serving. Für stark frequentierte APIs liefert die A100 40GB oft ein besseres ROI als zwei RTX 4090.


Nützliche Ressourcen

Zuletzt aktualisiert

War das hilfreich?