部署模型度量算法

该算法应用于模型管理和模型炼知模块,通过该算法,可对炼知模型进行打包,以及度量不同模型之间的可迁移性。

部署方案

这里会提供两种部署方式:

  • 快速部署
  • 分步骤部署

快速部署

note

特别提醒:

  1. 请在 Kubernetes 集群 Master 节点执行部署脚本,要求 Master 节点有 Gpu,若不符合条件,请分步骤部署

  2. 若部署意外中断或失败,请重新执行部署脚本。

  3. 在脚本执行开始时,提示填写的信息为必填项,请勿跳过,如果填写错误请执行 Ctrl c 命令停止执行脚本后重新执行。

按照以下步骤进行部署:

# 下载部署脚本:
$ wget http://122.224.169.50:30000/index.php/s/TzzxEq3gSr9p4Kq/download -O dubheDeployScriptfile.zip
# 解压:
$ unzip dubheDeployScriptfile.zip
# 进入model_measuring目录:
$ cd dubheDeployScriptfile/model_measuring/
# 赋予脚本执行权限:
$ chmod a+x deploy_measuring.sh
# 执行脚本:
$ bash deploy_measuring.sh

部署完成后,执行以下命令,查看算法是否部署成功:

# 查看 Pod model-measuring-prod-0 是否为 Running 状态
$ kubectl get pod -n kube-system
# 查看 Service model-measuring-prod 是否存在
$ kubectl get svc -n kube-system

分步骤部署

  1. 请登录 Harbor 仓库,创建名为 atlas 的公开项目。Harbor创建项目请参考 Harbor 私有云仓库

  2. 打包模型炼知镜像,请在支持 Gpu 的节点操作:

# 下载部署脚本:
$ wget http://122.224.169.50:30000/index.php/s/TzzxEq3gSr9p4Kq/download -O dubheDeployScriptfile.zip
# 解压:
$ unzip dubheDeployScriptfile.zip
# 进入 /model_measuring/model_measuring 目录:
$ cd dubheDeployScriptfile/model_measuring/model_measuring
# 打包镜像(请替换 [harbor-url] 为 Harbor 域名):
$ docker build -t [harbor-url]/atlas/atlas:v1 .
# 登录 Harbor 镜像仓库(请替换 [harbor-url] 为 Harbor 域名):
$ docker login https://[harbor-url]
# 推送打包好的镜像到 Harbor 仓库(请替换 [harbor-url] 为 Harbor 域名):
$ docker push [harbor-url]/atlas/atlas:v1
  1. 将以下 yaml 文件拷贝到 Kubernetes 集群 Master 节点,命名为model-measuring-deploy.yaml(请替换 spec:containers:image 下的 harbor-url 为 Harbor 域名)
apiVersion: v1
kind: Service
metadata:
name: model-measuring-prod
namespace: kube-system
labels:
k8s-app: model-measuring-prod
spec:
type: NodePort
ports:
- port: 8080
nodePort: 32760
protocol: TCP
targetPort: mm
selector:
k8s-app: model-measuring-prod
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: model-measuring-prod
namespace: kube-system
labels:
k8s-app: model-measuring-prod
version: v1
spec:
serviceName: model-measuring-prod
replicas: 1
selector:
matchLabels:
k8s-app: model-measuring-prod
version: v1
template:
metadata:
labels:
k8s-app: model-measuring-prod
version: v1
spec:
containers:
- args:
- -c
- "source /root/anaconda3/bin/activate pytorch_1_3 && pip install web.py && python /model_measuring/app.py"
command:
- /bin/bash
image: harbor-url/atlas/atlas:v1
name: model-measuring-prod
imagePullPolicy: IfNotPresent
resources:
# need more cpu upon initialization, therefore burstable class
limits:
cpu: 8000m
memory: 16Gi
nvidia.com/gpu: "0"
ports:
- containerPort: 8080
name: mm
protocol: TCP
volumeMounts:
- name: model
mountPath: /model/
- name: dataset
mountPath: /dataset/
- name: exported-metrics
mountPath: /exported-metrics/
nodeSelector:
gpu: "gpu"
volumes:
- name: model
hostPath:
path: /nfs/dubhe-prod/model/
type: "Directory"
- name: dataset
hostPath:
path: /nfs/dubhe-prod/dataset/
type: "Directory"
- name: exported-metrics
hostPath:
path: /nfs/dubhe-prod/exported-metrics/
type: "Directory"
  1. 在 Nfs 项目路径下(如 /nfs/dubhe-prod/ )创建 exported-metrics 目录:
# 替换 /nfs/dubhe-prod/ 为项目路径
$ mkdir -p /nfs/dubhe-prod/exported-metrics
  1. 在 Kubernetes 集群 Master 节点,执行 model-measuring-deploy.yaml 文件:
$ kubectl apply -f model-measuring-deploy.yaml
  1. 执行以下命令,查看算法是否部署成功
# 查看 Pod model-measuring-prod-0 是否为 Running 状态
$ kubectl get pod -n kube-system
# 查看 Service model-measuring-prod 是否存在
$ kubectl get svc -n kube-system
Last updated on