BentoML
BentoML 是一个现代的开源框架,用于 构建、交付和扩展 AI 应用. 它弥合了 ML 试验与生产部署之间的鸿沟,让你在几分钟内将任何框架中的任何模型打包成可投入生产的 API 服务。在 Clore.ai 的 GPU 云上运行 BentoML,可经济高效地托管 AI 应用。
什么是 BentoML?
BentoML 让你可以轻松地将训练好的模型转化为可扩展的 API 服务:
框架无关: PyTorch、TensorFlow、JAX、scikit-learn、HuggingFace、XGBoost、LightGBM 等
Bento: 一个自包含、可复现的工件(模型 + 代码 + 依赖项)
Runner: 具备自动批处理能力的可扩展模型推理单元
Service: 类似 FastAPI 的 HTTP/gRPC 服务定义
BentoCloud: 可选的托管部署平台
以 Docker 为先: 每个 Bento 都可以通过一条命令容器化
主要特性:
用于优化吞吐量的自适应微批处理
使用 Pydantic 内置输入/输出验证
自动生成 OpenAPI 规范
内置 Prometheus 指标
支持流式响应(LLMs)
前提条件
GPU 显存
8 GB
16–24 GB
GPU
任何 NVIDIA
RTX 4090 / A100
内存
8 GB
16 GB
存储
20 GB
40 GB
Python
3.9+
3.11+
步骤 1——在 Clore.ai 上租用 GPU
登录到 clore.ai.
点击 市场 并选择一个显存 ≥ 16 GB 的 GPU 实例。
设置 Docker 镜像:我们将使用自定义构建(见步骤 2)。
设置开放端口:
22(SSH)和3000(BentoML 服务)。点击 租用.
第 2 步 — Dockerfile
BentoML 没有官方 GPU Docker 镜像,因此我们构建一个:
构建并推送
构建镜像并推送到你自己的 Docker Hub 账户(替换 YOUR_DOCKERHUB_USERNAME 为你的实际用户名):
步骤 3 — 通过 SSH 连接
验证 BentoML:
第 4 步 — 你的第一个 BentoML 服务
简单文本分类器
创建服务文件:
启动服务
第 5 步 — 访问服务
打开自动生成的 Swagger UI:
或者通过 curl:
预期响应:
第 6 步 — 图像分类服务
视觉模型服务
使用图像进行测试:
第 7 步 — LLM 流式服务
对于带有流式响应的语言模型:
第 8 步 — 保存并构建 Bento
一个 Bento 是一个打包好的、可复现的工件:
bentofile.yaml
监控与指标
BentoML 在以下地址暴露 Prometheus 指标 /metrics:
关键指标:
自适应批处理配置
故障排查
服务无法启动
解决方案:
检查 CUDA 是否可用:
python -c "import torch; print(torch.cuda.is_available())"验证 GPU 显存:
nvidia-smi检查模型是否下载完成(查看日志中的下载进度)
端口 3000 无法访问
首次请求延迟较高
这很正常——第一次请求会触发模型加载(预热)。之后的所有请求都会很快。请在启动后添加一次预热端点调用:
导入错误
解决方案:
Clore.ai GPU 推荐
BentoML 是一个服务框架——GPU 需求完全取决于你部署的模型。以下是常见工作负载的预期:
使用场景建议:
LLM API 提供服务(7B–13B): RTX 3090($0.07–0.21/小时)— 最佳性价比
图像生成 API: RTX 3090 或 RTX 4090,视吞吐需求而定
大模型(34B–70B Q4): A100 40GB(裸机)— 可轻松容纳
生产环境多模型服务: A100 80GB,提供更大的内存余量
有用资源
最后更新于
这有帮助吗?