技术指南

BentoML 和模型打包

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

听听这个指南AI叙述 · ~2 min

在本页阅读时间:2分钟
  1. 概述
  2. 深入探讨
  3. 现实世界的实施
  4. BentoML 和模型打包的未来
  5. 付诸实践
  6. 不断探索
  7. 常见问题

概述

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 吞吐量,而无需更改代码。

现实世界的实施

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

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

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

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

BentoML 和模型打包的未来

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

付诸实践

为什么这很重要

  • 成本与预算. 多年来,架构决策决定着性能和运营成本。
  • 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
  • 质量控制. 更好的工程选择可以减少生产中的可靠性事故。

留意

  • 优化一项基准测试可以隐藏更广泛的系统弱点。
  • 基础设施和维护成本常常被低估。
  • 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

后续步骤

  1. 在实施之前定义延迟、质量和成本目标。
  2. 在实际负载和数据条件下进行基准测试。
  3. 仪器监控错误、漂移和用户影响。
  4. 在扩展之前准备回滚和事件响应路径。

不断探索

免费通讯

获取每日AI简报

每个工作日早晨提供三条经过验证的AI故事,使用简明英文撰写。永久免费,无广告。

每个工作日发送一封邮件。一键退订。我们永不出售或分享您的地址。

测试一下自己

Take the BentoML and Model Packaging quiz

每个答案即时反馈,课程通过后可获得可验证ID的可分享证书。

开始测验

支持免费AI教育。AI Understanding是一家501(c)(3)非营利组织——无广告,无付费墙,永不收费。 捐款

常见问题

What is BentoML and Model Packaging?

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

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

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

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

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

In BentoML 1.1’s Runner-based architecture, what handles compute-heavy model execution separately from API logic?

BentoML documentation describes Runners as the legacy 1.1 computation units that could execute separately; newer BentoML versions streamline services.

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

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

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

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