構(gòu)建機器學(xué)習(xí) (ml) 模型既引人入勝又復(fù)雜,需要仔細完成一系列步驟。從機器學(xué)習(xí)模型開發(fā)到部署,是人工智能落地的關(guān)鍵階段。一個基于正確算法和相關(guān)數(shù)據(jù)、經(jīng)過良好訓(xùn)練的模型,能夠涵蓋開發(fā)階段,之后的重點將轉(zhuǎn)向部署。
部署機器學(xué)習(xí)模型可能是一個繁瑣的過程:構(gòu)建 API、容器化、管理依賴項、配置云環(huán)境以及設(shè)置服務(wù)器和集群通常需要付出巨大的努力,但想象一下,如果整個工作流程可以自動化會怎樣?在本文中,我們將討論機器學(xué)習(xí)部署自動化如何統(tǒng)一和簡化所有這些流程。使用通用工具、預(yù)配置模塊和易于集成的自動化腳本可以簡化部署過程。
???AI 智能聊天, 問答助手, AI 智能搜索, 免費無限量使用 DeepSeek R1 模型???

在本文中,我將向您介紹如何訓(xùn)練 ML 模型、使用 Docker 對其進行容器化以及如何使用 Terraform 將其部署到云端,所有這些都使用自動化腳本,使流程可重用且適合 CI/CD。
自動化機器學(xué)習(xí)部署帶來的好處
自動化 ML 部署徹底改變了游戲規(guī)則:
- 使機器學(xué)習(xí)模型能夠有效擴展
- 幾分鐘內(nèi)將模型投入生產(chǎn)
- 消除耗時的重復(fù)步驟
- 減少人為錯誤
使用的工具
要配置 ML 模型部署,我們需要一些基本工具和庫:
- Python 3.4+:用于訓(xùn)練和托管模型以及編寫腳本來填補空白的核心編程語言
- scikit-learn:用于機器學(xué)習(xí)的 Python 庫
- FastAPI:將 ML 模型作為 Web API 托管的 Python 庫
- Docker:運行 Terraform 和 ML 模型
- Cloud CLI:需要安裝才能與 Azure、AWS 和 GCP 等云平臺交互
- Terraform:基礎(chǔ)設(shè)施即代碼(IaC)用于配置云資源
項目設(shè)置
現(xiàn)在,讓我們設(shè)置項目并回顧每個步驟。該項目主要分為三個部分:
- 機器學(xué)習(xí)模型訓(xùn)練
- 機器學(xué)習(xí)工作流程自動化
- 使用 Terraform 的 IaC
該項目的結(jié)構(gòu)如下:
機器學(xué)習(xí)模型訓(xùn)練
該流程的第一步是模型開發(fā)、訓(xùn)練模型并構(gòu)建 API 來為其提供服務(wù):
在上面的示例[]中,我們使用[] scikit[]-learn[]在傳統(tǒng)的鳶尾[]花物種數(shù)據(jù)集[]上訓(xùn)練了一個[]邏輯回歸模型[]。我們使用P[]ickle 庫對模型進行[]序列化,將所[]有依賴項封裝[]到一個文件中[]。然后,F(xiàn)a[]stAPI 服務(wù)器加載m[]odel.p[]kl該模型和[]端點以生成預(yù)[]測:/pre[]dictap[]p.py
機器學(xué)習(xí)工作流自動化
經(jīng)過訓(xùn)練的機器學(xué)習(xí)模型可以轉(zhuǎn)化為一種服務(wù),在可靠部署和訪問的情況下,能夠?qū)崟r、大規(guī)模地交付。手動訓(xùn)練模型、通過構(gòu)建 Docker 鏡像部署模型以及更新配置文件可能是一個繁瑣且容易出錯的過程。自動化不僅可以提高效率,還可以簡化工作流程。
我們使用兩個 Python 腳本自動執(zhí)行這些步驟:
- build_model_and_image.py:此 Python 腳本可自動執(zhí)行模型訓(xùn)練、Docker 鏡像構(gòu)建、推送到 DockerHub 以及更新.tfvarsTerraform 文件并將其組合到單個工作流中。build_model_and_image.py在 GitHub 上查看代碼:https://github.com/yraj1457/MLOps/blob/main/scripts/build_model_and_image.py
-
install_terraform.py:此 Python 自動化腳本通過在 Docker 容器中運行 Terraform 來負責(zé)配置基礎(chǔ)設(shè)施,從而確保無需單獨安裝 Terraform。install_terraform.py在 GitHub 上查看代碼:https://github.com/yraj1457/MLOps/blob/main/scripts/install_terraform.py
這些自動化腳本填補了空白,并使工作流程在插入管道時可重復(fù)使用。
使用 Terraform 進行基礎(chǔ)設(shè)施即代碼
生產(chǎn)就緒服務(wù)需要部署。我們使用 Terraform 的 IaC,它允許我們定義整個云設(shè)置——包括運行模型的容器。它確保部署不僅自動化且一致,而且可跨環(huán)境移植。
基礎(chǔ)設(shè)施由四[]個 Terraf[]orm 配置文件配置[]:main.[]tf、、和。[]Python[] 腳本使用官方[] hashic[]orp/te[]rrafor[]m Docker[] 鏡像來運行 Terraf[]orm 命令(、、和[]),從而無需[]維護 Terraf[]orm 安裝或版本,[]并在開發(fā)和部[]署之間提供了[]明確的劃分v[]ariabl[]es.tf。[]output[]s.tfte[]rrafor[]m.tfva[]rsinit[]planap[]ply
下面的 Terraf[]orm 代碼片段可以[]作為一個例子[]。它提供了一[]個 Azure 資源組和一個[]容器實例來托[]管機器學(xué)習(xí) API。
該方法的完整代碼庫(包括所有腳本和配置文件)可在 GitHub 上找到:https://github.com/yraj1457/MLOps
為什么這種方法更有效
自動化腳本將各個流程整合在一起,從而實現(xiàn)更高效的方法,最大限度地減少人工干預(yù),并優(yōu)雅地記錄錯誤。此外,通過在 Docker 容器中運行工具,我們最大限度地減少了依賴關(guān)系,并保證了跨環(huán)境的一致性。該架構(gòu)融合了基礎(chǔ)設(shè)施自動化、DevOps 和 MLOps 的最佳實踐。
結(jié)論
本文展示了如何利用最少的工具、更少的依賴和最大程度的自動化,從機器學(xué)習(xí)模型訓(xùn)練到部署,為數(shù)據(jù)科學(xué)家和 MLOps 工程師節(jié)省大量重復(fù)性工作。我們利用 Python 編寫的自動化腳本,并使用 Docker 封裝模型和 Terraform,構(gòu)建了一個可重用、自動化且可擴展的環(huán)境。
這種方法具有高度可移植性,可以插入任何 CI/CD 工具,例如 GitHub Actions 或 Azure DevOps。基礎(chǔ)已從這里設(shè)置,您可以根據(jù)自己的需求進行修改。