ModelArts镜像功能介绍
在AI业务开发过程中,开发人员经常遇到环境依赖复杂、开发环境脆弱以及多轨切换困难等问题,这些问题严重影响了开发效率和模型迭代速度。如何解决这些问题,确保开发环境的稳定性和可移植性?ModelArts支持通过容器镜像的方式将运行环境进行固化,不仅能够进行依赖管理,而且可以方便地完成工作环境切换。配合ModelArts提供的云化容器资源使用,可以更加快速、高效地进行AI开发与模型实验的迭代。
本文介绍镜像的相关概念、预置镜像和自定义镜像的使用场景,以及如何制作自定义镜像。
相关概念
预置镜像:ModelArts提供了基于不同框架、不同CUDA版本的预置镜像,您可以在创建Notebook/训练作业/在线推理时,直接选择ModelArts提供的预置镜像。详情请参见ModelArts预置镜像。
统一镜像:适用创建Notebook、模型训练或在线推理,可以通过docker pull方式拉取并使用。详情请参见ModelArts统一镜像。
自定义镜像:用户参照ModelArts镜像规范制作的镜像。详情请参见制作自定义镜像用于创建Notebook、制作自定义镜像用于训练模型和制作自定义镜像用于推理。
基础镜像:镜像制作的一个基本概念,先有基础镜像然后在此基础上做镜像。基础镜像可以是ModelArts预置镜像、第三方镜像。
预置镜像使用场景
您可以直接使用ModelArts预置镜像创建Notebook实例、创建训练作业、在线推理等。ModelArts提供的预置镜像版本是依据用户反馈和版本稳定性决定的。当用户的功能开发基于ModelArts提供的版本能够满足的时候,例如用户开发基于MindSpore1.X,建议用户使用预置镜像,这些镜像经过充分的功能验证,并且已经预置了很多常用的安装包,用户无需花费过多的时间来配置环境即可使用。
ModelArts预置镜像有以下特点:
- 零配置,即开即用,面向特定的场景,将AI开发过程中常用的依赖环境进行固化,提供合适的软件、操作系统、网络等配置策略,通过在硬件上的充分测试,确保其兼容性和性能最合适。
- 方便自定义,预置镜像已经在SWR仓库中,通过对预置镜像的扩展完成自定义镜像注册。
- 安全可信,基于安全加固最佳实践,访问策略、用户权限划分、开发软件漏洞扫描、操作系统安全加固等方式,确保镜像使用的安全性。
自定义镜像使用场景
当用户对深度学习引擎、开发库有特殊需求场景的时候,预置镜像已经不能满足用户需求。ModelArts提供自定义镜像功能支持用户自定义运行引擎。关于如何制作自定义镜像,请参见制作自定义镜像用于创建Notebook、制作自定义镜像用于训练模型和制作自定义镜像用于推理。
ModelArts底层采用容器技术,自定义镜像指的是用户自行制作容器镜像并在ModelArts上运行。自定义镜像功能支持自由文本形式的命令行参数和环境变量,灵活性比较高,便于支持任意计算引擎的作业启动需求。
在制作自定义镜像的时候,可以把ModelArts提供的预置镜像作为基础镜像,通过在Dockerfile中使用预置镜像的SWR地址来拉取预置镜像后进行改造。您可以在ModelArts预置镜像列表里获取镜像的SWR地址,操作请参见查看预置镜像版本列表/镜像地址。
用户制作的自定义镜像,使用的场景不同,镜像规则也不同,具体如下:
- 通用规则:SWR镜像类型为“私有”时,才可以共享给他人,适用于开发环境、训练作业、在线推理。
- 开发环境:SWR镜像类型为“公开”时,其他用户才可以在ModelArts镜像管理页面注册使用。
- 训练作业:SWR镜像类型为“公开”时,在使用自定义镜像创建训练作业时,按需选择镜像源地址。
自定义镜像功能关联服务介绍
- 容器镜像服务
容器镜像服务(Software Repository for Container,SWR)是一种支持镜像全生命周期管理的服务, 提供简单易用、安全可靠的镜像管理功能,帮助您快速部署容器化服务。您可以通过界面、社区CLI和原生API上传、下载和管理容器镜像。
您制作的自定义镜像需要上传至SWR服务。ModelArts开发环境、训练和在线推理使用的自定义镜像需要从SWR服务管理列表获取。
图1 获取镜像列表
- 对象存储服务
对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。
在使用ModelArts时存在与OBS的数据交互,您需要使用的数据可以存储至OBS。
- 弹性云服务器
弹性云服务器(Elastic Cloud Server,ECS)是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,使用弹性云服务器。
在制作自定义镜像时,您可以在本地环境或者ECS上完成自定义镜像制作。
在您使用自定义镜像功能时,ModelArts可能需要访问您的容器镜像服务SWR、对象存储服务OBS等依赖服务,如果没有授权,这些功能将不能正常使用。建议您使用委托授权功能,将依赖服务操作权限委托给ModelArts服务,让ModelArts以您的身份使用依赖服务,代替您进行一些资源操作。详细操作参见使用委托授权。
通过命令行工具使用镜像
基于Notebook提供的预置镜像或第三方镜像,支持通过ModelArts命令行工具(ma-cli镜像构建命令介绍)制作和注册镜像,构建一个面向AI开发的自定义镜像。
ma-cli image命令支持:查询用户已注册的镜像、查询/加载镜像构建模板、Dockerfile镜像构建、查询/清理镜像构建缓存、注册/取消注册镜像、调试镜像是否可以在Notebook中使用等。具体命令及功能可执行ma-cli image -h命令查看。