返回介绍

1.6.8 定制模型服务Docker镜像

发布于 2020-10-01 16:39:38 字数 3863 浏览 863 评论 0 收藏 0

简介

Xiaomi Cloud-ML支持Bring Your Own Image功能,使用方法和 定制训练任务Docker镜像 相同。

使用示例

用户创建模型服务时指定Docker镜像地址即可。

cloudml models create -n linear -v v1 -u fds://cloud-ml/linear -d cloudml/tensorflow:1.0.0

定制镜像

如果需要定制镜像,我们对模型服务容器的启动进行了封装,用户构建的Docker镜像需要符合一些约定,同时镜像镜像最好能暴露在公网允许匿名下载。

Docker镜像启动命令如下,并且会把AKSK和FDS endpoint作为环境变量传入,并且mount GPU相关的设备目录,运行的参数如下。

"/model_service.py", model_service.model_name, model_service.model_uri, model_service.model_version

最简单的镜像只有一个文件,在本地编写 model_service.py ,注意需要 chmod +x 添加可执行权限。

#!/usr/bin/env python

import SimpleHTTPServer
import SocketServer

def main():
  PORT = 9000
  Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
  httpd = SocketServer.TCPServer(("", PORT), Handler)
  print "serving at port", PORT
  httpd.serve_forever()

if __name__ == "__main__":
  main()

然后编写Dockerfile,只需要保证安装了model_service.py需要的依赖即可,基于Xiaomi Cloud-ML官方镜像可以获得更快的下载速度但不是必须的。

FROM cloud-ml/dev-tensorflow-cpu:0.12.0-xm1.0.0

ADD ./model_service.py /

EXPOSE 9000

CMD /model_service.py

然后我们可以在本地build这个容器镜像。

sudo docker build -t cloudml/http_model_service .

现在本地模型服务端的运行参数,测试命令如下,然后访问本地的9000端口看服务是否正常。

sudo docker run -it -p 9000:9000 cloudml/http_model_service "/model_service.py" "mymodel" "fds://foo/bar" "v1"

参数介绍

  • -d 表示用户指定的Docker镜像地址,注意不可与 -F-V 参数同时使用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文