技術指南

BentoML 與模型打包

BentoML 是一個開源 Python 框架,它將經過訓練的機器學習模型打包成標準化的可部署單元,稱為「Bentos」。

閱讀時間約2分鐘最後更新

概述

它彌合了放在筆記本中的模型與能透過 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

下一步指南

程式碼模型的推測性編輯

常見問題

什麼是 BentoML 與模型包裝?

BentoML 是一個開源 Python 框架,它將經過訓練的機器學習模型打包成標準化的可部署單元,稱為「Bentos」。它彌合了筆記本中的模型與實際上可以透過 API 提供預測服務的生產服務之間的差距。

BentoML 產生的標準化、可部署單元是什麼?

BentoML 將模型、其程式碼、依賴項和運行時配置打包到一個稱為 Bento 的版本化、獨立的單元中。

BentoML 的自適應微批處理主要改進了什麼?

自適應批次在運行時對傳入請求進行分組,以保持 GPU 繁忙並最大限度地提高吞吐量,而無需更改程式碼。

在 BentoML 的架構中,什麼與 API 伺服器分開處理計算量大的模型執行?

運行器封裝模型推理,並且可以在自己的工作進程中進行擴展,與輕量級 API 伺服器解耦。

哪個指令將建置的 Bento 轉換為 OCI Docker 映像?

「bentoml containerize」從 Bento 產生標準 OCI/Docker 映像以進行部署。

下列哪一項是 BentoML 在 Bento 中嵌入依賴版本的關鍵原因?

固定和嵌入環境使打包服務無論在何處運作都可重現且一致。