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

2020-06-04 16:21:14 浏览数 (1)

任务描述

  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:如果应用程序正在运行的容器。由于任何原因失败,则此作业应自动重新启动容器,并且可以从上次训练的模型中断的位置开始。

首先创建docker镜像:

代码语言:javascript复制
 # docker build -t  deephub/optml:1.0 .

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

Job 1

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

代码语言:javascript复制
 # ./ngrok http 8080

Job 2

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

Job 3

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

Job 4

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

Job 5

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

Job 6

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

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

作者:ANKUR DHAKAR

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

0 人点赞