For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

  1. 登录到 clore.ai.

  2. 点击 市场 并选择一个显存 ≥ 16 GB 的 GPU 实例。

  3. 设置 Docker 镜像:我们将使用自定义构建(见步骤 2)。

  4. 设置开放端口: 22 (SSH)和 3000 (BentoML 服务)。

  5. 点击 租用.


第 2 步 — Dockerfile

BentoML 没有官方 GPU Docker 镜像,因此我们构建一个:

构建并推送

构建镜像并推送到你自己的 Docker Hub 账户(替换 YOUR_DOCKERHUB_USERNAME 为你的实际用户名):

BentoML 不在 Docker Hub 上提供官方 GPU Docker 镜像。 bentoml/bento-server Docker Hub 上的镜像用于提供预打包的 Bentos,不包含 CUDA 支持。请使用上面的 Dockerfile 构建镜像,以便在 Clore.ai 上进行支持 GPU 的部署。


步骤 3 — 通过 SSH 连接

验证 BentoML:


第 4 步 — 你的第一个 BentoML 服务

简单文本分类器

创建服务文件:

启动服务

--reload 该标志在开发期间启用热重载。为保持稳定性,请在生产环境中移除。


第 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 需求完全取决于你部署的模型。以下是常见工作负载的预期:

GPU
显存
Clore.ai 价格
LLM(7B Q4)吞吐量
扩散模型(SDXL)
视觉(ResNet50)

RTX 3090

24 GB

$0.07–0.21/小时

~80 个 token/秒

~4 张图/分钟

~400 次请求/秒

RTX 4090

24 GB

$0.14–0.42/小时

~140 个 token/秒

~8 张图/分钟

~700 次请求/秒

A100 40GB

40 GB

~110 个 token/秒

~6 张图/分钟

~1200 次请求/秒

A100 80GB

80 GB

~130 个 token/秒

~7 张图/分钟

~1400 次请求/秒

使用场景建议:

  • LLM API 提供服务(7B–13B): RTX 3090($0.07–0.21/小时)— 最佳性价比

  • 图像生成 API: RTX 3090 或 RTX 4090,视吞吐需求而定

  • 大模型(34B–70B Q4): A100 40GB(裸机)— 可轻松容纳

  • 生产环境多模型服务: A100 80GB,提供更大的内存余量

BentoML 的 自适应微批处理 在 A100 上尤其有效——硬件调度器可高效处理批处理,相比天真地按单请求提供服务,可获得更高的每美元吞吐量。对于高流量 API,A100 40GB 往往比两张 RTX 4090 提供更好的投资回报率。


有用资源

最后更新于

这有帮助吗?