?使用任何开源或自定义 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