【云小课】EI第16课 ModelArts 使用自定义镜像快速迁移上云-这2种功能,你了解哪些?

举报
Hi,EI 发表于 2021/04/15 16:13:30 2021/04/15
【摘要】 ModelArts为用户提供了多种常见的预置引擎,但是当用户对深度学习引擎、开发库有特殊需求场景的时候,预置AI引擎可能不再满足用户需求。ModelArts底层采用容器技术,您可以自行制作容器镜像上传并在ModelArts上运行。自定义镜像支持自由文本形式的命令行参数和环境变量,灵活性高,便于支持任意计算引擎的作业启动需求。

ModelArts为用户提供了多种常见的预置引擎,但是当用户对深度学习引擎、开发库有特殊需求场景的时候,预置AI引擎可能不再满足用户需求。

ModelArts底层采用容器技术,您可以自行制作容器镜像上传并在ModelArts上运行。自定义镜像支持自由文本形式的命令行参数和环境变量,灵活性高,便于支持任意计算引擎的作业启动需求。

当前ModelArts自定义镜像功能支持以下两种场景:

  • 创建训练作业
  • 导入模型

让我们看看如何在ModelArts中使用自定义镜像创建训练作业和导入模型吧!

云小课插图.png


关联服务介绍

使用自定义镜像功能可能涉及以下云服务:容器镜像服务、对象存储服务、弹性云服务器。

容器镜像服务:容器镜像服务(Software Repository for ContainerSWR)是一种支持镜像全生命周期管理的服务, 提供简单易用、安全可靠的镜像管理功能,帮助您快速部署容器化服务。您可以通过界面、社区CLI和原生API上传、下载和管理容器镜像。

ModelArts训练和导入模型使用的自定义镜像需要从SWR服务管理列表获取。您制作的自定义镜像需要上传至SWR服务。


swr.png

对象存储服务:对象存储服务(Object Storage ServiceOBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。

在创建训练作业和导入模型时往往存在数据交互,您需要的云上数据可以存储至OBS服务。

弹性云服务器:弹性云服务器(Elastic Cloud ServerECS)是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。

在制作自定义镜像时,您可以在本地环境或者ECS上完成自定义镜像制作。

在您使用自定义镜像功能时,ModelArts可能需要访问您的容器镜像服务SWR、对象存储服务OBS等依赖服务,若没有授权,这些功能将不能正常使用。建议您使用委托授权功能,将依赖服务操作权限委托给ModelArts服务,让ModelArts以您的身份使用依赖服务,代替您进行一些资源操作。详细操作参见使用委托授权

使用自定义镜像创建训练作业

端到端样例可参考最佳实践-使用自定义镜像创建训练作业~

1.准备工作

  • 完成访问授权的配置,详细操作参见使用委托授权
  • 已在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。

2.制作自定义镜像,您可以使用ECS或者应用本地已有的主机进行自定义镜像的制作。

    在制作镜像用时,需满足ModelArts定义的规范

  • 自定义镜像中不能包含恶意代码。
  • 基础镜像中的部分内容不能改变,包括“/bin”、“/sbin”、“/usr”、“/lib(64)”下的所有文件,“/etc”下的部分重要配置文件,以及“$HOME”下的ModelArts小工具。
  • 不可以新增属主为“root”且权限包含“setuid”或“setgid”位的文件。
  • 自定义镜像大小不能超过5GB
  • 日志文件输出,为保证日志内容可以正常显示,日志信息需要打印到标准输出。

     ModelArts还提供基础镜像用于自定义镜像的制作。基础镜像中有一些必要的工具,帮助用户快速实现代码下载、训练日志输出、上传日志文件至OBS等功能。

3.上传镜像至SWR服务。上传镜像的详细操作可参考SWR用户指南

4.使用自定义镜像创建训练作业

train.png

使用自定义镜像导入模型

端到端示例请参考使用自定义镜像导入模型~

1.准备工作

  • 完成访问授权的配置,详细操作参见使用委托授权
  • 已在OBS服务中创建桶和文件夹,用于存放数据以及相关文件。

2.制作自定义镜像

    在制作镜像用时,需满足ModelArts定义的规范

  • 自定义镜像中不能包含恶意代码。
  • 自定义镜像大小不超过30GB
  • 镜像对外接口

         镜像的对外服务接口需要为8080,推理接口需与config.json文件中apis定义的url一致,当镜像启动时可以直接访问。

  • 健康检查接口

         自定义镜像需要提供健康检查接口供ModelArts调用,在config.json文件中配置,参见模型配置文件编写说明。

  • 日志文件输出

        为保证日志内容可以正常显示,日志信息需要打印到标准输出。

  • 镜像启动入口

        如果需要部署批量服务,镜像的启动入口文件需要为“/home/run.sh”,采用CMD设置默认启动路径。

  • 镜像依赖组件

        如果需要部署批量服务,镜像内需要安装pythonjre/jdkzip等组件包。

3.上传镜像至SWR服务。上传镜像的详细操作可参考SWR用户指南

4.选择从容器镜像导入模型,可参考从容器镜像中选择元模型

infer.png

5.将模型部署为在线服务。


    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。