? Erstellen Sie Modellinferenz-APIs und Multimodell-Bereitstellungssysteme mit beliebigen Open-Source- oder benutzerdefinierten KI-Modellen. Treten Sie unserer Slack-Community bei!
BentoML ist eine Python-Bibliothek zum Aufbau von Online-Bereitstellungssystemen, die für KI-Apps und Modellinferenz optimiert sind.
BentoML installieren:
# Requires Python≥3.9
pip install -U bentoml
Definieren Sie APIs in einer service.py
Datei.
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 ]
Führen Sie den Dienstcode lokal aus (standardmäßig unter http://localhost:3000 bereitgestellt):
pip install torch transformers # additional dependencies for local run
bentoml serve service.py:Summarization
Jetzt können Sie die Inferenz über Ihren Browser unter http://localhost:3000 oder mit einem Python-Skript ausführen:
import bentoml
with bentoml . SyncHTTPClient ( 'http://localhost:3000' ) as client :
summarized_text : str = client . summarize ([ bentoml . __doc__ ])[ 0 ]
print ( f"Result: { summarized_text } " )
Um Ihren BentoML-Dienstcode bereitzustellen, erstellen Sie zunächst eine Datei bentofile.yaml
um deren Abhängigkeiten und Umgebungen zu definieren. Die vollständige Liste der Bentofile-Optionen finden Sie hier.
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 "
Wählen Sie dann eine der folgenden Bereitstellungsmethoden:
Führen Sie bentoml build
aus, um den erforderlichen Code, Modelle und Abhängigkeitskonfigurationen in ein Bento zu packen – das standardisierte bereitstellbare Artefakt in BentoML:
bentoml build
Stellen Sie sicher, dass Docker ausgeführt wird. Generieren Sie ein Docker-Container-Image für die Bereitstellung:
bentoml containerize summarization:latest
Führen Sie das generierte Bild aus:
docker run --rm -p 3000:3000 summarization:latest
BentoCloud bietet eine Recheninfrastruktur für eine schnelle und zuverlässige GenAI-Einführung. Es beschleunigt Ihren BentoML-Entwicklungsprozess durch die Nutzung von Cloud-Computing-Ressourcen und vereinfacht die Bereitstellung, Skalierung und den Betrieb von BentoML in der Produktion.
Melden Sie sich für BentoCloud an, um persönlichen Zugang zu erhalten. Für Unternehmensanwendungsfälle kontaktieren Sie unser Team.
# After signup, run the following command to create an API token:
bentoml cloud login
# Deploy from current directory:
bentoml deploy .
Ausführliche Erklärungen finden Sie im Hello World-Beispiel.
Weitere Beispielcodes und Verwendungszwecke finden Sie in der vollständigen Liste.
Weitere Tutorials und Anleitungen finden Sie in der Dokumentation.
Machen Sie mit und treten Sie unserem Community Slack bei, wo Tausende von KI-/ML-Ingenieuren sich gegenseitig helfen, zum Projekt beitragen und über die Entwicklung von KI-Produkten sprechen.
Um einen Fehler zu melden oder eine Funktionsanfrage vorzuschlagen, verwenden Sie GitHub Issues.
Es gibt viele Möglichkeiten, zum Projekt beizutragen:
#bentoml-contributors
.Vielen Dank an alle unsere großartigen Mitwirkenden!
Das BentoML-Framework sammelt anonyme Nutzungsdaten, die unserer Community helfen, das Produkt zu verbessern. Es werden nur die internen API-Aufrufe von BentoML gemeldet. Davon ausgenommen sind vertrauliche Informationen wie Benutzercode, Modelldaten, Modellnamen oder Stack-Traces. Hier ist der Code, der für die Nutzungsverfolgung verwendet wird. Sie können die Nutzungsverfolgung mit der CLI-Option --do-not-track
deaktivieren:
bentoml [command] --do-not-track
Oder indem Sie die Umgebungsvariable festlegen:
export BENTOML_DO_NOT_TRACK=True
Apache-Lizenz 2.0