? Créez des API d'inférence de modèle et des systèmes de service multimodèles avec n'importe quel modèle d'IA open source ou personnalisé. Rejoignez notre communauté Slack !
BentoML est une bibliothèque Python permettant de créer des systèmes de service en ligne optimisés pour les applications d'IA et l'inférence de modèles.
Installez BentoML :
# Requires Python≥3.9
pip install -U bentoml
Définissez les API dans un fichier service.py
.
from __future__ import annotations
import bentoml
@ bentoml . service (
resources = { "cpu" : "4" }
)
class Summarization :
def __init__ ( self ) -> None :
import torch
from transformers import pipeline
device = "cuda" if torch . cuda . is_available () else "cpu"
self . pipeline = pipeline ( 'summarization' , device = device )
@ bentoml . api ( batchable = True )
def summarize ( self , texts : list [ str ]) -> list [ str ]:
results = self . pipeline ( texts )
return [ item [ 'summary_text' ] for item in results ]
Exécutez le code du service localement (servant par défaut sur http://localhost:3000) :
pip install torch transformers # additional dependencies for local run
bentoml serve service.py:Summarization
Vous pouvez désormais exécuter l'inférence depuis votre navigateur sur http://localhost:3000 ou avec un script Python :
import bentoml
with bentoml . SyncHTTPClient ( 'http://localhost:3000' ) as client :
summarized_text : str = client . summarize ([ bentoml . __doc__ ])[ 0 ]
print ( f"Result: { summarized_text } " )
Pour déployer votre code de service BentoML, créez d'abord un fichier bentofile.yaml
pour définir ses dépendances et ses environnements. Retrouvez la liste complète des options de bentofile ici.
service : ' service:Summarization ' # Entry service import path
include :
- ' *.py ' # Include all .py files in current directory
python :
packages : # Python dependencies to include
- torch
- transformers
docker :
python_version : " 3.11 "
Ensuite, choisissez l’une des méthodes de déploiement suivantes :
Exécutez bentoml build
pour regrouper le code, les modèles et les configurations de dépendances nécessaires dans un Bento - l'artefact déployable standardisé dans BentoML :
bentoml build
Assurez-vous que Docker est en cours d'exécution. Générez une image de conteneur Docker pour le déploiement :
bentoml containerize summarization:latest
Exécutez l'image générée :
docker run --rm -p 3000:3000 summarization:latest
BentoCloud fournit une infrastructure de calcul pour une adoption rapide et fiable de GenAI. Il permet d'accélérer votre processus de développement BentoML en exploitant les ressources de calcul du cloud et de simplifier la façon dont vous déployez, faites évoluer et exploitez BentoML en production.
Inscrivez-vous à BentoCloud pour un accès personnel ; pour les cas d’utilisation en entreprise, contactez notre équipe.
# After signup, run the following command to create an API token:
bentoml cloud login
# Deploy from current directory:
bentoml deploy .
Pour des explications détaillées, lisez l’exemple Hello World.
Consultez la liste complète pour plus d’exemples de code et d’utilisation.
Voir Documentation pour plus de didacticiels et de guides.
Impliquez-vous et rejoignez notre communauté Slack, où des milliers d'ingénieurs IA/ML s'entraident, contribuent au projet et parlent de la création de produits IA.
Pour signaler un bug ou suggérer une demande de fonctionnalité, utilisez GitHub Issues.
Il existe de nombreuses façons de contribuer au projet :
#bentoml-contributors
ici.Merci à tous nos incroyables contributeurs !
Le framework BentoML collecte des données d'utilisation anonymes qui aident notre communauté à améliorer le produit. Seuls les appels API internes de BentoML sont signalés. Cela exclut toutes les informations sensibles, telles que le code utilisateur, les données de modèle, les noms de modèles ou les traces de pile. Voici le code utilisé pour le suivi de l'utilisation. Vous pouvez désactiver le suivi de l'utilisation grâce à l'option CLI --do-not-track
:
bentoml [command] --do-not-track
Ou en définissant la variable d'environnement :
export BENTOML_DO_NOT_TRACK=True
Licence Apache 2.0