久久精品国产强奸|亚洲久久视频日韩|久草在想AV22|av72麻豆花絮|精品九九强奸视频|国产亚洲三级影片|香蕉啊啊一区二区|丁香五月在线观看|就1n7在线超碰|91中文在线资源

從開(kāi)發(fā)到部署:自動(dòng)化機(jī)器學(xué)習(xí)

霞舞
發(fā)布: 2025-07-30 10:39:57
原創(chuàng)
2336人瀏覽過(guò)

構(gòu)建機(jī)器學(xué)習(xí) (ml) 模型既引人入勝又復(fù)雜,需要仔細(xì)完成一系列步驟。從機(jī)器學(xué)習(xí)模型開(kāi)發(fā)到部署,是人工智能落地的關(guān)鍵階段。一個(gè)基于正確算法和相關(guān)數(shù)據(jù)、經(jīng)過(guò)良好訓(xùn)練的模型,能夠涵蓋開(kāi)發(fā)階段,之后的重點(diǎn)將轉(zhuǎn)向部署。

部署機(jī)器學(xué)習(xí)模型可能是一個(gè)繁瑣的過(guò)程:構(gòu)建 API、容器化、管理依賴項(xiàng)、配置云環(huán)境以及設(shè)置服務(wù)器和集群通常需要付出巨大的努力,但想象一下,如果整個(gè)工作流程可以自動(dòng)化會(huì)怎樣?在本文中,我們將討論機(jī)器學(xué)習(xí)部署自動(dòng)化如何統(tǒng)一和簡(jiǎn)化所有這些流程。使用通用工具、預(yù)配置模塊和易于集成的自動(dòng)化腳本可以簡(jiǎn)化部署過(guò)程。

???AI 智能聊天, 問(wèn)答助手, AI 智能搜索, 免費(fèi)無(wú)限量使用 DeepSeek R1 模型???

從開(kāi)發(fā)到部署:自動(dòng)化機(jī)器學(xué)習(xí) - php中文網(wǎng)

在本文中,我將向您介紹如何訓(xùn)練 ML 模型、使用 Docker 對(duì)其進(jìn)行容器化以及如何使用 Terraform 將其部署到云端,所有這些都使用自動(dòng)化腳本,使流程可重用且適合 CI/CD。

自動(dòng)化機(jī)器學(xué)習(xí)部署帶來(lái)的好處

?自動(dòng)化 ML 部署徹底改變了游戲規(guī)則:

  • 使機(jī)器學(xué)習(xí)模型能夠有效擴(kuò)展
  • 幾分鐘內(nèi)將模型投入生產(chǎn)
  • 消除耗時(shí)的重復(fù)步驟
  • 減少人為錯(cuò)誤

使用的工具

要配置 ML 模型部署,我們需要一些基本工具和庫(kù):

  • Python 3.4+:用于訓(xùn)練和托管模型以及編寫腳本來(lái)填補(bǔ)空白的核心編程語(yǔ)言
  • scikit-learn:用于機(jī)器學(xué)習(xí)的 Python 庫(kù)
  • FastAPI:將 ML 模型作為 Web API 托管的 Python 庫(kù)
  • Docker:運(yùn)行 Terraform 和 ML 模型
  • Cloud CLI:需要安裝才能與 Azure、AWS 和 GCP 等云平臺(tái)交互
  • Terraform:基礎(chǔ)設(shè)施即代碼(IaC)用于配置云資源

項(xiàng)目設(shè)置

現(xiàn)在,讓我們?cè)O(shè)置項(xiàng)目并回顧每個(gè)步驟。該項(xiàng)目主要分為三個(gè)部分:

  • 機(jī)器學(xué)習(xí)模型訓(xùn)練
  • 機(jī)器學(xué)習(xí)工作流程自動(dòng)化
  • 使用 Terraform 的 IaC

該項(xiàng)目的結(jié)構(gòu)如下:

ml_deploy/
├── src/
│   ├── app.py                  # FastAPI app that serves the ML model
│   ├── train_model.py          # Trains and serializes the model
│   ├── model.pkl               # Packaged ML model
│   ├── requirements.txt        # Python libraries
│   └── Dockerfile              # Defines the Docker image
├── terraform/
│   ├── main.tf                 # Terraform configuration file
│   ├── variables.tf
│   ├── outputs.tf
│   └── terraform.tfvars        # Holds dynamic values like image name
├── scripts/
│   ├── build_model_and_image.py  # Automates model training + Docker
│   └── install_terraform.py      # Runs Terraform inside Docker
登錄后復(fù)制


機(jī)器學(xué)習(xí)模型訓(xùn)練

該流程的第一步是模型開(kāi)發(fā)、訓(xùn)練模型并構(gòu)建 API 來(lái)為其提供服務(wù):

train_model.py/
import pickle
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
# Load data
X, y = load_iris(return_X_y=True)
# Initialize and train model
model = LogisticRegression(max_iter=200)
model.fit(X, y)
# Save model to a file
with open("model.pkl", "wb") as f:
    pickle.dump(model, f)
登錄后復(fù)制


在上面的示例中,我們使用 scikit-learn在傳統(tǒng)的鳶尾花物種數(shù)據(jù)集上訓(xùn)練了一個(gè)邏輯回歸模型。我們使用Pickle 庫(kù)對(duì)模型進(jìn)行序列化,將所有依賴項(xiàng)封裝到一個(gè)文件中。然后,F(xiàn)astAPI 服務(wù)器加載model.pkl該模型和端點(diǎn)以生成預(yù)測(cè):/predictapp.py

app.py/
from fastapi import FastAPI
import pickle
import numpy as np
app = FastAPI()
model = pickle.load(open("model.pkl", "rb"))
@app.get("/")
def root():
    return {"message": "Model running"}
@app.post("/predict")
def predict(data):
    prediction = model.predict(np.array(data).reshape(1, -1))
    return {"prediction": prediction.tolist()}
登錄后復(fù)制

機(jī)器學(xué)習(xí)工作流自動(dòng)化

經(jīng)過(guò)訓(xùn)練的機(jī)器學(xué)習(xí)模型可以轉(zhuǎn)化為一種服務(wù),在可靠部署和訪問(wèn)的情況下,能夠?qū)崟r(shí)、大規(guī)模地交付。手動(dòng)訓(xùn)練模型、通過(guò)構(gòu)建 Docker 鏡像部署模型以及更新配置文件可能是一個(gè)繁瑣且容易出錯(cuò)的過(guò)程。自動(dòng)化不僅可以提高效率,還可以簡(jiǎn)化工作流程。

我們使用兩個(gè) Python 腳本自動(dòng)執(zhí)行這些步驟:

  • build_model_and_image.py:此 Python 腳本可自動(dòng)執(zhí)行模型訓(xùn)練、Docker 鏡像構(gòu)建、推送到 DockerHub 以及更新.tfvarsTerraform 文件并將其組合到單個(gè)工作流中。build_model_and_image.py在 GitHub 上查看代碼:https://github.com/yraj1457/MLOps/blob/main/scripts/build_model_and_image.py

build_model_and_image.py/
import subprocess
import sys
# Executes the train model Python code
def train_model():
    print("Training the Model")
    try:
        subprocess.run(["python3", "train_model.py"], check=True, cwd=src_dir)
    except Exception as e:
        print(f"Error Training the Model: {e}")
        sys.exit(1)
# Builds the image after training the model
def build_image():
    print(f"Building the Docker Image: {docker_image}")
    try:
        subprocess.run(["docker", "build", "-t", docker_image, "."], check=True)
    except Exception as e:
        print(f"Error Building the Docker Image: {e}")
        sys.exit(1)
登錄后復(fù)制


  • install_terraform.py:此 Python 自動(dòng)化腳本通過(guò)在 Docker 容器中運(yùn)行 Terraform 來(lái)負(fù)責(zé)配置基礎(chǔ)設(shè)施,從而確保無(wú)需單獨(dú)安裝 Terraform。install_terraform.py在 GitHub 上查看代碼:https://github.com/yraj1457/MLOps/blob/main/scripts/install_terraform.py

install_terraform.py/
import subprocess
import sys
from pathlib import Path
# Run the Trio, the three Terraform commands
def run_terraform():
    cmd_list = ['init', 'plan', 'apply']
    for cmd in cmd_list:
        print(f"Running Terraform {cmd}")
        try:
            subprocess.run(
                f"docker run --rm -v {Path(terraform_dir).resolve()}:/workspace "
                f"-w /workspace {terraform_image} {cmd}",
                shell=True,
                check=True
            )
        except Exception as e:
            print(f"Error running Terraform {cmd}: {e}")
            sys.exit(1)
登錄后復(fù)制


這些自動(dòng)化腳本填補(bǔ)了空白,并使工作流程在插入管道時(shí)可重復(fù)使用。

使用 Terraform 進(jìn)行基礎(chǔ)設(shè)施即代碼

生產(chǎn)就緒服務(wù)需要部署。我們使用 Terraform 的 IaC,它允許我們定義整個(gè)云設(shè)置——包括運(yùn)行模型的容器。它確保部署不僅自動(dòng)化且一致,而且可跨環(huán)境移植。

基礎(chǔ)設(shè)施由四個(gè) Terraform 配置文件配置:main.tf、、和。Python 腳本使用官方 hashicorp/terraform Docker 鏡像來(lái)運(yùn)行 Terraform 命令(、、和),從而無(wú)需維護(hù) Terraform 安裝或版本,并在開(kāi)發(fā)和部署之間提供了明確的劃分variables.tf。outputs.tfterraform.tfvarsinitplanapply

下面的 Terraform 代碼片段可以作為一個(gè)例子。它提供了一個(gè) Azure 資源組和一個(gè)容器實(shí)例來(lái)托管機(jī)器學(xué)習(xí) API。

main.tf/
provider "azurerm" {
  features {}
}
resource "azurerm_resource_group" "ml_rg" {
  name     = var.resource_group_name
  location = var.location
}
resource "azurerm_container_group" "ml_app" {
  name                = "ml-model-api"
  location            = azurerm_resource_group.ml_rg.location
  resource_group_name = azurerm_resource_group.ml_rg.name
  os_type             = "Linux"
  container {
    name   = "mlmodel"
    image  = var.container_image
    cpu    = "1.0"
    memory = "1.5"
    ports {
      port     = 80
      protocol = "TCP"
    }
  }
  ip_address_type = "public"
  dns_name_label  = var.dns_label
}
登錄后復(fù)制

該方法的完整代碼庫(kù)(包括所有腳本和配置文件)可在 GitHub 上找到:https://github.com/yraj1457/MLOps

為什么這種方法更有效

自動(dòng)化腳本將各個(gè)流程整合在一起,從而實(shí)現(xiàn)更高效的方法,最大限度地減少人工干預(yù),并優(yōu)雅地記錄錯(cuò)誤。此外,通過(guò)在 Docker 容器中運(yùn)行工具,我們最大限度地減少了依賴關(guān)系,并保證了跨環(huán)境的一致性。該架構(gòu)融合了基礎(chǔ)設(shè)施自動(dòng)化、DevOps 和 MLOps 的最佳實(shí)踐。

結(jié)論

本文展示了如何利用最少的工具、更少的依賴和最大程度的自動(dòng)化,從機(jī)器學(xué)習(xí)模型訓(xùn)練到部署,為數(shù)據(jù)科學(xué)家和 MLOps 工程師節(jié)省大量重復(fù)性工作。我們利用 Python 編寫的自動(dòng)化腳本,并使用 Docker 封裝模型和 Terraform,構(gòu)建了一個(gè)可重用、自動(dòng)化且可擴(kuò)展的環(huán)境。

這種方法具有高度可移植性,可以插入任何 CI/CD 工具,例如 GitHub Actions 或 Azure DevOps?;A(chǔ)已從這里設(shè)置,您可以根據(jù)自己的需求進(jìn)行修改。?

以上就是從開(kāi)發(fā)到部署:自動(dòng)化機(jī)器學(xué)習(xí)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件
最佳 Windows 性能的頂級(jí)免費(fèi)優(yōu)化軟件

每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。

下載
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問(wèn)題
開(kāi)源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見(jiàn)反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.400tele.com.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)