文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用Docker部署机器学习模型分步指南

2024-11-29 17:54

关注

审校 | 重楼

部署机器学习模型与开发一样重要,特别是在确保不同环境之间的一致性时。软件版本或配置方面的变化/差异可能导致不一致的行为或意外错误。Docker将应用程序连同其依赖项封装到一个容器中,以确保它在任何地方都能一样正常运行。它可以简化部署过程并尽可能减少错误。

Docker简述

Docker是一开源平台,它使开发人员能够将应用程序连同其依赖项打包到一个容器中。这个容器是轻量级便携盒子,封装了应用程序运行所需的所有必要内容(比如代码、库和设置。容器应用程序操作系统或配置方面的差异隔离开来,从而确保应用程序在各种环境中一致地运行。此外,利用Docker可以简化团队成员之间的协作,便于从开发环境更平滑地过渡到生产环境

部署机器学习模型分步指南

不妨看看如何使用Docker部署机器学习模型。

1. 搭建环境

开始之前,确保你已经在系统上安装了Docker。你可以从Docker官方网站下载

2. 构建机器学习模型

你需要准备好部署一个经过训练的机器学习模型。在本教程中,我们使用scikit-learnPython举一个简单的示例。

model.py:

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pickle

# Train and save the model
def train_model():
 # Load dataset
 data = load_iris()
 X, y = data.data, data.target

 # Train model
 model = RandomForestClassifier()
 model.fit(X, y)

 # Save the trained model
 with open('model.pkl', 'wb') as f:
 pickle.dump(model, f)
 print("Model trained and saved as model.pkl")

# Load model and make a prediction using predefined test data
def predict():
 # Load the saved model
 with open('model.pkl', 'rb') as f:
 model = pickle.load(f)

 # Test data (sample input for prediction)
 test_data = [5.1, 3.5, 1.4, 0.2] # Example features
 prediction = model.predict([test_data])

 print(f"Prediction for {test_data}: {int(prediction[0])}")

if __name__ == '__main__':
 train_model()
 predict()

上面的例在一个脚本中结合了模型训练、保存和预测。train_model()函数使用Iris数据集训练一个简单模型,并将其保存为model.pklpredict()函数加载保存的模型并使用预定义的测试数据进行预测。

3. 创建requirements.txt文件

文件中列出你的应用程序需要的所有Python依赖项。在本例中

requirements.txt:

scikit-learn

4. 创建Dockerfile

Dockerfile是一个脚本,含用于构建Docker镜像一系列指令。

下面是我们应用程序的简单Dockerfile。确保Dockerfile创建时没有扩展名,因为它允许Docker在构建镜像时不需要任何额外的参数就能识别它。

Dockerfile:

# Use a base image with Python
FROM python:3.11-slim

# Set the working directory in the container
WORKDIR /app

# Copy the necessary files into the container
COPY requirements.txt requirements.txt
COPY model.py model.py

# Install the required Python libraries
RUN pip install -r requirements.txt

# Run the Python script when the container starts
CMD ["python", "model.py"]

现在不妨了解Dockerfile中每个关键字的含义。

5. 构建Docker镜像

打开命令提示或终端,进入到Dockerfile所在的工作目录,然后运行以下命令

docker build -t ml-model

这个命令使用当前目录构建一个名为ml-model的Docker镜像。

6. 运行Docker容器

一旦构建了Docker镜像,我们终于准备好运行容器。运行如下命令

docker run ml-model

输出如下

Model trained and saved as model.pkl
Prediction for [5.1, 3.5, 1.4, 0.2]: 0

7. 标记容器,并将容器推送到DockerHub

Docker Hub是Docker镜像的存储库,方便用户在团队或生产环境之间共享、版本控制和分发容器。

在Docker Hub上创建一个帐户。创建完毕后,运行以下命令通过终端登录帐户

docker login

你必须用用户名标记Docker镜像,以便它知道将镜像推送到哪里。替换你的用户名,执行以下命令

docker tag ml-model yourdockerhubusername/ml-model

一旦镜像已标记完毕,你就可以使用以下命令将镜像推送到Docker Hub。

docker push yourdockerhubusername/ml-model

现在都可以拉并运行你的Docker镜像了,只需运行以下命令:

docker pull yourdockerhubusername/ml-model
docker run yourdockerhubusername/ml-model

结论

使用Docker部署机器学习模型保证跨不同平台拥有一致环境和依赖从而使部署过程更顺畅更具可扩展性。本教程探讨了使用Docker构建、包和部署机器学习模型的步骤,强调了其简单性。

有了Docker,模型部署来得更直接简单从而不需要搭建复杂环境。

原文Step-by-Step Guide to Deploying ML Models with Docker,作者:Kanwal Mehreen

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯