技術指南

BentoML 與模型打包

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

概述

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

BentoML 和模型打包是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。

深入探討

當資料科學家完成模型訓練後,將其投入生產通常意味著手動編寫服務程式碼、固定依賴項、建立 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 是一個開源 Python 框架,它將經過訓練的機器學習模型打包成標準化的可部署單元,稱為「Bentos」。它彌合了筆記本中的模型與實際上可以透過 API 提供預測服務的生產服務之間的差距。 BentoML 和模型打包是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將 BentoML 和模型打包視為一種操作模型,而不是單一功能:定義所需的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。

在實踐中,強大的團隊使用 BentoML 和模型打包根據可靠性和成本優化架構、資料和基礎設施選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。

多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。

戰略影響

多年來,架構決策決定著效能和營運成本。

多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

更好的工程選擇可以減少生產中的可靠性事故。

更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

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 中,以便在訓練模型時使用精確的轉換。

實施模式

BentoML 與模型打包的實踐

詐欺偵測團隊將 XGBoost 模型儲存到 BentoML 存儲,並建立一個 Bento,該 Bento 公開 /predict REST 端點,以便支付服務即時調用。

詐欺偵測團隊將 XGBoost 模型儲存到 BentoML 儲存中,並建立​​一個 Bento,該 Bento 公開 /predict REST 端點,以便支付服務即時調用。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

BentoML 與模型打包的實踐

ML 平台團隊使用「bentoml 容器化」將 Hugging Face 情緒模型轉換為部署到其內部 Kubernetes 叢集的 Docker 映像。

ML 平台團隊使用「bentoml 容器化」將 Hugging Face 情緒模型轉換為 Docker 映像,部署到其內部 Kubernetes 叢集。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

BentoML 與模型打包的實踐

一家新創公司使用 OpenLLM(基於 BentoML 建置)提供經過微調的 Llama 模型,將令牌串流傳輸到聊天 UI,並透過自適應批次保持 GPU 飽和。

一家新創公司使用 OpenLLM(基於 BentoML 建置)提供微調的 Llama 模型,透過自適應批次將令牌串流傳輸到聊天 UI,保持 GPU 飽和。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並追蹤一段時間內的生產力增益和錯誤成本時,通常會獲得更好的結果。

BentoML 與模型打包的實踐

一家電腦視覺公司將 PyTorch 影像分類器及其預處理管道打包到一個 Bento 中,以便在訓練模型時使用精確的轉換。

一家電腦視覺公司將 PyTorch 影像分類器及其預處理管道打包到一個 Bento 中,以便在模型訓練中使用的精確轉換團隊在預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移跟踪生產力增益和錯誤成本時通常會獲得更好的結果。

風險與防護欄

!

優化一項基準測試可以隱藏更廣泛的系統弱點。

!

基礎設施和維護成本常常被低估。

!

隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。

實施路線圖

1

在實施之前定義延遲、品質和成本目標。

在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

2

在實際負載和資料條件下進行基準測試。

在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

3

儀器監控錯誤、漂移和使用者影響。

儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

4

在擴展之前準備回滾和事件回應路徑。

在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

不斷探索