欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数

程序员文章站 2022-03-08 12:16:51
...

任务描述

  1. 创建使用Dockerfile安装Python3和Keras或NumPy的容器映像

  2. 当我们启动镜像时,它应该会自动开始在容器中训练模型。

  3. 使用Jenkins中的build pipeline插件创建job1、job2、job3、job4和job5的作业链

  4. Job1:当一些开发人员将repo推送到Github时,自动拉Github repo。

  5. Job2:通过查看代码或程序文件,Jenkins应该自动启动安装了相应的机器学习工具或软件的映像容器,以部署代码并开始培训(例如,如果代码使用CNN,那么Jenkins应该启动已经安装了CNN处理所需的所有软件的容器)。

  6. Job3:训练你的模型和预测准确性或指标。

  7. Job4:如果度量精度低于95%,那么调整机器学习模型架构。

  8. Job5:重新训练模型或通知正在创建最佳模型

  9. 为monitor创建一个额外的job6:如果应用程序正在运行的容器。由于任何原因失败,则此作业应自动重新启动容器,并且可以从上次训练的模型中断的位置开始。

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
首先创建docker镜像:

# docker build -t  deephub/optml:1.0 .

创建完后可以开始编写任务

Job 1

这里使用ngrok作为样例来为github webhooks payload url建一个隧道,这样我们的内网github就可以发布到公网上。除了ngrok以外可以选择其他服务。

# ./ngrok http 8080

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数

Job 2

此作业将在容器未启动时触发启动,或者在job1成功生成时触发。

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数

Job 3

当job2生成成功时,将触发此作业。这项工作是第一次训练模型,并检查模型的准确性是否大于95%。如果大于95%,则将模型保存到相应位置。

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数

Job 4

当job3构建成功时,将触发此job。这项工作检查模型的准确性是否大于95%。如果它大于95%,那么它将不做任何事情,否则它将运行模型的另一个训练,以调整和调整模型的超参数,使模型的精度>95。

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数

Job 5

当job4生成成功时,将触发此作业。在调整模型之后,此作业检查模型的准确性是否大于95%。如果它大于95%,那么它将发出通知并发送邮件,否则它将什么也不做。

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数

Job 6

此作业将使用Poll SCM触发,它将在容器停止时进行检查,然后通过触发job2重新启动容器,否则不执行任何操作。

DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数
DevOps与机器学习的集成:使用Jenkins自动调整模型的超参数

至此,所有的任务创建完成可以开始使用了

作者:ANKUR DHAKAR

代码地址:https://github.com/A4ANK/Integrating-DevOps-with-ML