玖叶教程网

前端编程开发入门

Docker 化 ML 模型:部署指南

这本面向 ML 爱好者的综合指南将带您完成使用 Docker 打包和运行 ML 模型的旅程。

在快速发展的机器学习 (ML) 领域,无缝打包和部署模型的能力与模型本身的开发一样重要。容器化已成为改变游戏规则的解决方案,它提供了从本地开发环境到生产环境的简化路径。Docker 是容器化领域的领先平台,它提供了将 ML 应用程序封装到可移植且可扩展的容器中所需的工具。

本文深入探讨了使用 Docker 容器化简单 ML 应用程序的分步过程,使 ML 从业者和爱好者都可以使用它。无论您是想与世界共享您的 ML 模型,还是寻求更高效的部署策略,本教程都旨在为您提供使用 Docker 转换 ML 工作流的基本技能。

Docker 和容器化

Docker 是一个强大的平台,它通过利用容器化(全机虚拟化的轻量级替代方案)彻底改变了应用程序的开发和分发。容器化涉及将应用程序及其环境(依赖项、库和配置文件)封装到容器中,容器是可移植且一致的软件单元。这种方法可确保应用程序在任何基础架构(从开发人员的笔记本电脑到高计算的基于云的服务器)中统一一致地运行。

与复制整个操作系统的传统虚拟机不同,Docker 容器共享主机系统的内核,使其效率更高、启动速度更快、资源密集度更低。Docker 简单明了的语法隐藏了部署过程中经常涉及的复杂性,简化了工作流程,并实现了 DevOps 方法对软件开发过程的生命周期管理。

教程

下面是一个分步教程,将指导您完成使用 Docker 容器化简单 ML 应用程序的过程。

设置开发环境

在开始之前,请确保计算机上安装了 Docker。如果没有,您可以从 Docker 网站下载它。

创建简单的机器学习应用程序

在本教程中,让我们创建一个简单的 Python 应用程序,该应用程序使用 Scikit-learn 库在 Iris 数据集上训练模型。

创建项目目录

打开终端或命令提示符并运行以下命令:

mkdir ml-docker-appbr
cd ml-docker-app

设置 Python 虚拟环境(可选,但推荐)

python3 -m venv venv

在 Windows 上使用venv\Scripts\activate

创建要求 .txt 文件

列出应用程序所需的 Python 包。对于我们简单的 ML 应用程序:

scikit-learn==1.0.2br
pandas==1.3.5

创建机器学习应用程序脚本

将以下代码保存到 ml-docker-app 目录中名为 app.py 的文件中:

from sklearn import datasetsbr
from sklearn.model_selection import train_test_splitbr
from sklearn.ensemble import RandomForestClassifierbr
from sklearn.metrics import accuracy_scorebr
import joblibbr
br
# Load datasetbr
iris = datasets.load_iris()br
X = iris.databr
y = iris.targetbr
br
# Split dataset into training set and test setbr
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)br
br
# Create a Gaussian Classifierbr
clf = RandomForestClassifier()br
br
# Train the model using the training setsbr
clf.fit(X_train, y_train)br
br
# Predict the response for test datasetbr
y_pred = clf.predict(X_test)br
br
# Model Accuracy, how often is the classifier correct?br
print(f"Accuracy: {accuracy_score(y_test, y_pred)}")br
br
# Save the trained modelbr
joblib.dump(clf, 'iris_model.pkl')

安装依赖项

运行以下命令以安装 requirements.txt 中列出的依赖项:

pip install -r requirements.txt

运行应用程序

运行应用程序以确保其正常工作:

python3 app.py

您应该会看到打印到控制台的模型的准确性,并创建一个名为 iris_model.pkl 的文件,其中包含经过训练的模型。

此脚本提供了非常基本的机器学习任务的端到端流程:加载数据、预处理数据、训练模型、评估模型,然后保存训练后的模型以供将来使用。

使用 Docker 容器化应用程序

创建“Dockerfile”

在 ml-docker-app 目录的根目录中,创建包含以下内容的文件:Dockerfile

# Use an official Python runtime as a parent imagebr
FROM python:3.9-slimbr
br
# Set the working directory in the containerbr
WORKDIR /usr/src/appbr
br
# Copy the current directory contents into the container at /usr/src/appbr
COPY . .br
br
# Install any needed packages specified in requirements.txtbr
RUN pip install --no-cache-dir -r requirements.txtbr
br
# Run app.py when the container launches

构建 Docker 映像

在终端中运行以下命令以生成 Docker 映像:

docker build -t ml-docker-app .

运行 Docker 容器

生成映像后,在 Docker 容器中运行应用程序:

docker run ml-docker-app

如果一切设置正确,Docker 将在容器内运行 Python 脚本,您应该会看到输出到终端的模型的准确性,就像您在本机运行脚本时一样。

标记容器并将其推送到 DockerHub

从命令行登录到 Docker Hub

拥有 Docker Hub 帐户后,需要通过本地计算机上的命令行登录。打开终端并运行:

docker login

系统将提示您输入 Docker ID 和密码。成功登录后,您可以将映像推送到 Docker Hub 存储库。

标记 Docker 映像

在将映像推送到 Docker Hub 之前,必须使用 Docker Hub 用户名对其进行标记。如果未正确标记,Docker 将不知道将映像推送到何处。

假设您的 Docker ID 是用户名,并且您想要将 Docker 映像命名为 ml-docker-app,请运行:

docker tag ml-docker-app username/ml-docker-app

这会将本地 ml-docker-app 映像标记为 username/ml-docker-app,从而准备将其推送到 Docker Hub 存储库。

将映像推送到 Docker Hub

若要将映像推送到 Docker Hub,请使用 docker push 命令,后跟要推送的映像的名称:

docker push username/ml-docker-app

Docker 会将映像上传到 Docker Hub 存储库。

在 Docker Hub 上检查推送的容器映像

您可以转到 Docker Hub 存储库并查看最近推送的映像。

就是这样!您已经成功地容器化了一个简单的机器学习应用程序,将其推送到 Docker Hub,并使其可以从任何位置拉取和运行。


原文标题:Dockerizing ML Models: A Deployment Guide

原文链接:https://dzone.com/articles/dockerizing-ml-models-a-deployment-guide

作者:Pavan Belagatti

编译:LCR

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言