?使用任何開源或自訂 AI 模型建立模型推理 API 和多模型服務系統。加入我們的 Slack 社群!
BentoML 是一個 Python 函式庫,用於建立針對 AI 應用程式和模型推理進行最佳化的線上服務系統。
安裝 BentoML:
# Requires Python≥3.9
pip install -U bentoml
在service.py
檔案中定義 API。
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 ]
在本機上執行服務代碼(預設在 http://localhost:3000 提供服務):
pip install torch transformers # additional dependencies for local run
bentoml serve service.py:Summarization
現在,您可以透過瀏覽器在 http://localhost:3000 或使用 Python 腳本執行推理:
import bentoml
with bentoml . SyncHTTPClient ( 'http://localhost:3000' ) as client :
summarized_text : str = client . summarize ([ bentoml . __doc__ ])[ 0 ]
print ( f"Result: { summarized_text } " )
要部署 BentoML 服務程式碼,首先建立一個bentofile.yaml
檔案來定義其依賴項和環境。在此處查找 Bentofile 選項的完整清單。
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 "
然後,選擇以下方式之一進行部署:
運行bentoml build
將必要的程式碼、模型、相依性配置打包到 Bento 中 - BentoML 中的標準化可部署工件:
bentoml build
確保 Docker 正在運行。產生用於部署的 Docker 容器映像:
bentoml containerize summarization:latest
運行生成的圖像:
docker run --rm -p 3000:3000 summarization:latest
BentoCloud 為快速、可靠的 GenAI 採用提供運算基礎架構。它有助於利用雲端運算資源加快 BentoML 開發流程,並簡化您在生產中部署、擴展和操作 BentoML 的方式。
註冊 BentoCloud 進行個人存取;對於企業用例,請聯絡我們的團隊。
# After signup, run the following command to create an API token:
bentoml cloud login
# Deploy from current directory:
bentoml deploy .
有關詳細說明,請閱讀 Hello World 範例。
查看完整清單以取得更多範例程式碼和用法。
請參閱文件以取得更多教學和指南。
參與並加入我們的 Slack 社區,這裡有數千名 AI/ML 工程師互相幫助,為專案做出貢獻,並討論建立 AI 產品。
若要回報錯誤或提出功能請求,請使用 GitHub Issues。
為此專案做出貢獻的方式有很多種:
#bentoml-contributors
頻道中分享您的回饋並討論路線圖計劃。感謝我們所有優秀的貢獻者!
BentoML 框架收集匿名使用數據,幫助我們的社群改進產品。僅報告 BentoML 的內部 API 呼叫。這不包括任何敏感訊息,例如用戶程式碼、模型資料、模型名稱或堆疊追蹤。這是用於使用情況追蹤的程式碼。您可以透過--do-not-track
CLI 選項選擇退出使用情況追蹤:
bentoml [command] --do-not-track
或透過設定環境變數:
export BENTOML_DO_NOT_TRACK=True
阿帕契許可證 2.0