百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

Docker 化 ML 模型部署指南

toyiye 2024-06-21 12:31 8 浏览 0 评论

这本面向 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

相关推荐

如何用 coco 数据集训练 Detectron2 模型?

随着最新的Pythorc1.3版本的发布,下一代完全重写了它以前的目标检测框架,新的目标检测框架被称为Detectron2。本教程将通过使用自定义coco数据集训练实例分割模型,帮助你开始使...

CICD联动阿里云容器服务Kubernetes实践之Bamboo篇

本文档以构建一个Java软件项目并部署到阿里云容器服务的Kubernetes集群为例说明如何使用Bamboo在阿里云Kubernetes服务上运行RemoteAgents并在agents上...

Open3D-ML点云语义分割实验【RandLA-Net】

作为点云Open3D-ML实验的一部分,我撰写了文章解释如何使用Tensorflow和PyTorch支持安装此库。为了测试安装,我解释了如何运行一个简单的Python脚本来可视化名为...

清理系统不用第三方工具(系统自带清理软件效果好不?)

清理优化系统一定要借助于优化工具吗?其实,手动优化系统也没有那么神秘,掌握了方法和技巧,系统清理也是一件简单和随心的事。一方面要为每一个可能产生累赘的文件找到清理的方法,另一方面要寻找能够提高工作效率...

【信创】联想开先终端开机不显示grub界面的修改方法

原文链接:【信创】联想开先终端开机不显示grub界面的修改方法...

如意玲珑成熟度再提升,三大发行版支持教程来啦!

前期,我们已分别发布如意玲珑在deepinV23与UOSV20、openEuler24.03发行版的操作指南,本文,我们将为大家详细介绍Ubuntu24.04、Debian12、op...

118种常见的多媒体文件格式(英文简写)

MP4[?mpi?f??]-MPEG-4Part14(MPEG-4第14部分)AVI[e?vi??a?]-AudioVideoInterleave(音视频交错)MOV[m...

密码丢了急上火?码住7种console密码紧急恢复方式!

身为攻城狮的你,...

CSGO丨CS2的cfg指令代码分享(csgo自己的cfg在哪里?config文件位置在哪?)

?...

使用open SSL生成局域网IP地址证书

某些特殊情况下,用户内网访问多可文档管理系统时需要启用SSL传输加密功能,但只有IP,没有域名和证书。这种情况下多可提供了一种免费可行的方式,通过openSSL生成免费证书。此方法生成证书浏览器会提示...

Python中加载配置文件(python怎么加载程序包)

我们在做开发的时候经常要使用配置文件,那么配置文件的加载就需要我们提前考虑,再不使用任何框架的情况下,我们通常会有两种解决办法:完整加载将所有配置信息一次性写入单一配置文件.部分加载将常用配置信息写...

python开发项目,不得不了解的.cfg配置文件

安装软件时,经常会见到后缀为.cfg、.ini的文件,一般我们不用管,只要不删就行。因为这些是程序安装、运行时需要用到的配置文件。但对开发者来说,这种文件是怎么回事就必须搞清了。本文从.cfg文件的创...

瑞芯微RK3568鸿蒙开发板OpenHarmony系统修改cfg文件权限方法

本文适用OpenHarmony开源鸿蒙系统,本次使用的是开源鸿蒙主板,搭载瑞芯微RK3568芯片。深圳触觉智能专注研发生产OpenHarmony开源鸿蒙硬件,包括核心板、开发板、嵌入式主板,工控整机等...

Python9:图像风格迁移-使用阿里的接口

先不多说,直接上结果图。#!/usr/bin/envpython#coding=utf-8importosfromaliyunsdkcore.clientimportAcsClient...

Python带你打造个性化的图片文字识别

我们的目标:从CSV文件读取用户的文件信息,并将文件名称修改为姓名格式的中文名称,进行规范资料整理,从而实现快速对多个文件进行重命名。最终效果:将原来无规律的文件名重命名为以姓名为名称的文件。技术点:...

取消回复欢迎 发表评论:

请填写验证码