安装MLFlow

第一天的简介中, 我们提到会整合training、tracking与serving(如下图). 现在我们已使用fastai进行MNIST资料集的训练, 并且产生训练後的model.

https://ithelp.ithome.com.tw/upload/images/20210920/201407922kHaPxZ0GW.png

通常训练不会一次就完成, 经过多次调整参数後再找到最佳参数与模型是资料科学家的日常. 所以如果能将每次训练的参数(parameter)、metric与模型记录起来然後再进行比较, 将会有助於记录训练过程的相关资料. 而MLFlow的tracking功能这时就能来帮忙.

因此我们就在K8s上安装MLflow

打包MLFlow image

安装MLFlow是一件容易的事, 使用pip安装时只需要一行指令就可以了. 但我们要把MLFlow安装在K8s上, 所以我们需要先包一个image.

  • 编辑Dockerfile
    FROM python:3.8-slim-buster
    RUN apt-get update -y && apt-get install -y build-essential libpq-dev
    RUN pip3 install mlflow==1.18.0 psycopg2
    EXPOSE 80
    CMD mlflow server --host 0.0.0.0 --port 80
    
  • build image, 指令如下:
    这里的请输入你在docker hub的帐号
    $docker build -t <user name>/mlflow1.18.0:0.0.1 
    
  • 将image push到docker hub
    ps: 需要事先设定到登入docker hub的帐密
    $docker push
    

以Helm部署MLFlow

我们预计使用这个 helm-mlflow 的方式安装我们自己的MLFlow Servre, 但会使用我们自己刚刚包好的image.

  • Add Helm repository

    $helm repo add cetic https://cetic.github.io/helm-charts
    $helm repo update
    
  • Install the chart
    请在 image.repository输入刚刚包好的image name, 而且在image.tag填上刚刚包好的image时的tag name

    helm upgrade --set service.port=80 --set image.repository=<your_name>/mlflow1.18.0 --set image.tag=0.0.1  --install orion-mlflow cetic/mlflow
    
  • Helm安装好MLFlow的画面

确认MLFlow的连线方式

  • 照着上图指令执行, 可以取得连线的网址

  • 或着,你可以使用K8s指令查看一下 orion-mlflow的service资料

    $kubectl get sve  
    
    NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
    service/orion-mlflow                 NodePort    10.97.248.21    <none>        80:30534/TCP        17d
    

打开MLFlow网页

在browser上输入网址(http://172.23.180.10:30534), 即可看到MLFlow的画面, 如下图
https://ithelp.ithome.com.tw/upload/images/20210920/20140792reWGC9utPZ.png

到这里我们安装好MLFlow, 下一篇我们将在修改notebook内容, 目的是将parameter与metrics记录在MLFLow之中.

参考资料


<<:  [Day 12] SRE - 定期演练计画

>>:  [Day-20] R语言 - 分群应用(二) 离群值侦测 - 上 ( detect outlier by clustering in R.Studio )

【Day23】我变我变我变变变:如何改变HTML元素的样式

「DOM API定义了JavaScript存取、改变HTML架构、内容、样式的方法,甚至对节点绑定...

【把玩Azure DevOps】Day20 建立自管的Azure DevOps Agent(Windows VM agent)

前一篇已经简单的介绍了Azure DevOps Agent,这篇还是实际来操作一次在Windows ...

【前端 HTML/JSX】在Input框内部加上Icon?除了使用Bootstrap、Semantic或Material-UI之外你还可以这麽做

相信像下列的输入框需求,在前端开发的时候很容易遇到 菜鸟前端的第一直觉大概就会想要这样写... 把i...

[Day 5] 阿嬷都看得懂的 HTML 标签怎麽写

阿嬷都看得懂的 HTML 标签怎麽写 前两天我们提到前端工程师的 3 种语言:HTML、CSS,还有...

[DAY27]GCP-Google Cloud Platform

台湾目前常听到的公有云不外是以下三巨头 AWS : Amazon Web Services AZUR...