部署云端服务

总览

云端部署 为「天枢平台」提供了 OneFlow,TensorFlow,Pytorch 三种框架下模型部署后的推理功能,需要与平台前端、后端搭配使用。其中共包含有两个服务:

  • 在线服务:用户可基于该模块部署模型,然后使用在线推理服务,得到 top5 推理结果。
  • 批量服务:该服务需要用户先上传大量图片,然后部署模型进行推理得出对应图片的 json 结果文件。

基于kubernetes部署

note

部署指南:

  • 环境准备

在 docker 环境下,可直接使用下面的脚本另存为 DockerFile 文件,然后执行生成镜像并推送到 harbor 中

FROM nvidia/cuda:11.2.2-cudnn8-devel-ubuntu18.04
WORKDIR /workspace
RUN chmod 777 /tmp
RUN apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A4B469963BF863CC
# 删除nvidia更新源以避免apt update失败,安装python3-pip会同时安装python3
RUN rm -rf /etc/apt/sources.list.d && apt update && apt install -y python3-pip
# 建立python软连接到python3,以兼容使用python运行命令的情况
RUN ln -s /usr/bin/python3 /usr/bin/python
# 升级pip3以支持manylinux的方式安装wheel包
RUN pip3 install --upgrade pip -i https://pypi.douban.com/simple/
RUN pip install tensorflow-gpu==2.1.0 -i https://pypi.douban.com/simple/
RUN python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --find-links https://oneflow-static.oss-cn-beijing.aliyuncs.com/staging/dev_serving/pip.index.html oneflow_cu102
RUN pip install torch==1.6.0 torchvision==0.7.0 -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install fastapi -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install python-multipart -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install uvicorn -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install numpy -i https://mirrors.aliyun.com/pypi/simple/

在NFS下拉取 dubhe_serving 代码,放在 serving 目录下。把镜像地址及 serving 代码路径配置到天枢后台代码的配置文件中,后续将由天枢后端服务调用 k8s 启动该服务。如:

#nacos serving的配置
serving:
gpu-image: <your-harbor-url>/serving/serving-gpu:base
sourcePath: "/serving/dubhe_serving"
# 打包镜像(请替换 [harbor-url] 为 Harbor 域名):
$ docker build -t [harbor-url]/serving/serving-gpu:base .
# 登录 Harbor 镜像仓库(请替换 [harbor-url] 为 Harbor 域名):
$ docker login https://[harbor-url]
# 推送打包好的镜像到 Harbor 仓库(请替换 [harbor-url] 为 Harbor 域名):
$ docker push [harbor-url]/serving/serving-gpu:base
  • 启动服务

在天枢平台云端部署 模块中进行在线服务和批量服务创建即可。