BentoML

BentoML est un framework moderne et open-source pour construire, déployer et faire évoluer des applications d'IA. Il comble le fossé entre l'expérimentation en ML et le déploiement en production, vous permettant d'emballer n'importe quel modèle issu de n'importe quel framework en un service API prêt pour la production en quelques minutes. Exécutez BentoML sur le cloud GPU de Clore.ai pour un hébergement d'applications IA rentable.


Qu'est-ce que BentoML ?

BentoML facilite la transformation d'un modèle entraîné en un service API évolutif :

  • Agnostique au framework : PyTorch, TensorFlow, JAX, scikit-learn, HuggingFace, XGBoost, LightGBM, et plus encore

  • Bento : Un artefact autosuffisant et reproductible (modèle + code + dépendances)

  • Runner : Unité d'inférence de modèle évolutive avec mise en lot automatique

  • Service : Définition de service HTTP/gRPC de type FastAPI

  • BentoCloud : Plateforme de déploiement gérée optionnelle

  • Docker en priorité : Chaque Bento peut être containerisé avec une seule commande

Principales fonctionnalités :

  • Micro-batching adaptatif pour l'optimisation du débit

  • Validation entrée/sortie intégrée avec Pydantic

  • Spécification OpenAPI générée automatiquement

  • Métriques Prometheus intégrées

  • Prise en charge des réponses en streaming (LLMs)


Prérequis

Exigence
Minimum
Recommandé

VRAM GPU

8 Go

16–24 Go

GPU

N'importe quel NVIDIA

RTX 4090 / A100

RAM

8 Go

16 Go

Stockage

20 Go

40 Go

Python

3.9+

3.11+


Étape 1 — Louez un GPU sur Clore.ai

  1. Connectez-vous à clore.aiarrow-up-right.

  2. Cliquez Place de marché et choisissez une instance GPU avec ≥ 16 Go de VRAM.

  3. Définir l'image Docker : nous utiliserons une build personnalisée (voir l'étape 2).

  4. Définir les ports ouverts : 22 (SSH) et 3000 (service BentoML).

  5. Cliquez Louez.


Étape 2 — Dockerfile

BentoML n'a pas d'image Docker GPU officielle, donc nous en construisons une :

Construire et pousser

Construisez l'image et poussez-la vers votre compte Docker Hub (remplacez VOTRE_NOM_UTILISATEUR_DOCKERHUB par votre nom d'utilisateur réel) :

circle-info

BentoML ne fournit pas d'image Docker GPU officielle sur Docker Hub. Les bentoml/bento-server images sur Docker Hub servent à déployer des Bentos pré-packagés et n'incluent pas le support CUDA. Construisez l'image à partir du Dockerfile ci‑dessus pour des déploiements compatibles GPU sur Clore.ai.


Étape 3 — Connexion via SSH

Vérifier BentoML :


Étape 4 — Votre premier service BentoML

Classificateur de texte simple

Créez un fichier de service :

Démarrer le service

circle-info

Le --reload le drapeau active le rechargement à chaud pendant le développement. Supprimez-le en production pour la stabilité.


Étape 5 — Accéder au service

Ouvrez l'interface Swagger générée automatiquement :

Ou testez via curl:

Réponse attendue :


Étape 6 — Service de classification d'images

Service de modèle vision

Tester avec une image :


Étape 7 — Service LLM en streaming

Pour les modèles de langage avec réponses en streaming :


Étape 8 — Enregistrer et construire un Bento

Un Bento est un artefact empaqueté et reproductible :

bentofile.yaml


Surveillance et métriques

BentoML expose des métriques Prometheus à /metrics:

Métriques clés :


Configuration du batching adaptatif


Dépannage

Le service ne démarre pas

Solutions :

  • Vérifier la disponibilité de CUDA : python -c "import torch; print(torch.cuda.is_available())"

  • Vérifier la VRAM GPU : nvidia-smi

  • Vérifier que le téléchargement du modèle est terminé (recherchez la progression du téléchargement dans les logs)

Le port 3000 n'est pas accessible

Latence élevée sur la première requête

C'est normal — la première requête déclenche le chargement du modèle (warm-up). Toutes les requêtes suivantes seront rapides. Ajoutez un appel d'endpoint de warm‑up après le démarrage :

Erreurs d'importation

Solution :


Recommandations GPU Clore.ai

BentoML est un framework de serving — les exigences GPU dépendent entièrement du modèle que vous déployez. Voici à quoi vous attendre pour les charges de travail courantes :

GPU
VRAM
Prix Clore.ai
Débit LLM (7B Q4)
Diffusion (SDXL)
Vision (ResNet50)

RTX 3090

24 Go

~0,12 $/h

~80 tok/s

~4 img/min

~400 req/s

RTX 4090

24 Go

~0,70 $/h

~140 tok/s

~8 img/min

~700 req/s

A100 40GB

40 Go

~1,20 $/h

~110 tok/s

~6 img/min

~1200 req/s

A100 80GB

80 Go

~2,00 $/h

~130 tok/s

~7 img/min

~1400 req/s

Conseils d'utilisation :

  • Service API LLM (7B–13B) : RTX 3090 (~0,12 $/h) — rapport prix‑performance optimal

  • API de génération d'images : RTX 3090 ou RTX 4090 selon les besoins de débit

  • Grands modèles (34B–70B Q4) : A100 40GB (~1,20 $/h) — convient confortablement

  • Service multi‑modèles en production : A100 80GB pour marge mémoire

circle-info

Le micro-batching adaptatif de BentoML est particulièrement efficace sur les A100 — le planificateur matériel gère le batching efficacement, extrayant plus de débit par dollar qu'un service naïf par requête unique. Pour des API à fort trafic, l'A100 40GB offre souvent un meilleur ROI que deux RTX 4090.


Ressources utiles

Mis à jour

Ce contenu vous a-t-il été utile ?