技术指南

BentoML 和模型打包

BentoML 是一个开源 Python 框架,它将经过训练的机器学习模型打包成标准化的可部署单元,称为“Bentos”。

阅读时间:2分钟最后更新

概述

It bridges the gap between a model sitting in a notebook and a production service that can actually serve predictions over an API.

深入探讨

当数据科学家完成模型训练后,将其投入生产通常意味着手动编写服务代码、固定依赖项、构建 Docker 映像并连接 API。 BentoML 可以自动执行此操作。您将模型保存到其本地模型存储中,然后定义一个 Service 类,并使用修饰后的 API 端点来处理推理。 “bentoml build”命令将模型、Python 代码、依赖项版本和运行时配置打包到独立的版本化 Bento 中。从那里“bentoml containerize”生成一个 OCI Docker 镜像。 BentoML 支持几乎所有框架(PyTorch、TensorFlow、scikit-learn、XGBoost、Hugging Face Transformers、ONNX),并添加了自适应微批处理,可自动对传入请求进行分组,以最大限度地提高 GPU 吞吐量,而无需更改代码。

技术洞察

BentoML 将“Runners”(计算密集型模型执行)与 API 服务器逻辑分开。运行程序可以独立扩展并在自己的工作进程中运行,而轻量级 HTTP/gRPC 服务器则处理请求路由和 I/O。其自适应批处理在运行时动态调整批处理大小和延迟窗口,因此它可以吸收流量突发并使昂贵的加速器保持忙碌。标准化的 Bento 格式嵌入了清单、模型文件和可重现的环境,使跨机器的构建具有确定性。

战略影响

成本与预算

多年来,架构决策决定着性能和运营成本。

更清晰的判决

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

质量控制

更好的工程选择可以减少生产中的可靠性事故。

BentoML 和模型打包的未来

BentoML 大力发展大型语言模型和生成式 AI 服务,OpenLLM 和 BentoCloud 提供流式令牌响应、自动缩放和 GPU 感知调度。预计与 vLLM 和 TensorRT-LLM 等推理优化器更紧密的集成,对多模型复合 AI 系统的更好支持,以及从打包 Bento 到无服务器 GPU 部署的更顺畅的路径。随着团队从单一模型转向代理管道,BentoML 将自己定位为将这些组件联系在一起的包装和服务层。

现实世界的实施

欺诈检测团队将 XGBoost 模型保存到 BentoML 存储,并构建一个 Bento,该 Bento 公开 /predict REST 端点,以便支付服务实时调用。

ML 平台团队使用“bentoml 容器化”将 Hugging Face 情感模型转换为部署到其内部 Kubernetes 集群的 Docker 映像。

一家初创公司使用 OpenLLM(基于 BentoML 构建)提供经过微调的 Llama 模型,将令牌流式传输到聊天 UI,并通过自适应批处理保持 GPU 饱和。

一家计算机视觉公司将 PyTorch 图像分类器及其预处理管道打包到一个 Bento 中,以便在训练模型时使用精确的转换。

风险与防护栏

优化一项基准测试可以隐藏更广泛的系统弱点。

基础设施和维护成本常常被低估。

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

2

在实际负载和数据条件下进行基准测试。

3

仪器监控错误、漂移和用户影响。

4

在扩展之前准备回滚和事件响应路径。

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the BentoML and Model Packaging quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

代码模型的推测性编辑

常见问题

What is BentoML and Model Packaging?

BentoML 是一个开源 Python 框架,它将经过训练的机器学习模型打包成标准化的可部署单元,称为“Bentos”。它弥合了笔记本中的模型与实际上可以通过 API 提供预测服务的生产服务之间的差距。

BentoML 产生的标准化、可部署单元是什么?

BentoML 将模型、其代码、依赖项和运行时配置打包到一个称为 Bento 的版本化、独立的单元中。

BentoML 的自适应微批处理主要改进了什么?

自适应批处理在运行时对传入请求进行分组,以保持 GPU 繁忙并最大限度地提高吞吐量,而无需更改代码。

在 BentoML 的架构中,什么与 API 服务器分开处理计算量大的模型执行?

运行器封装模型推理,并可以在自己的工作进程中进行扩展,与轻量级 API 服务器解耦。

哪个命令将构建的 Bento 转换为 OCI Docker 镜像?

“bentoml containerize”从 Bento 生成标准 OCI/Docker 映像以进行部署。

以下哪一项是 BentoML 在 Bento 中嵌入依赖版本的关键原因?

固定和嵌入环境使打包服务无论在何处运行都可重现且一致。