专属资源池最佳实践-总览篇

举报
yangzilong 发表于 2022/06/14 17:00:34 2022/06/14
【摘要】 本文主要介绍人工智能开发流程优化的关键点,并引出实践场景。 同时,提供最佳实践的相关博客列表和链接。

引言

人工智能技术和应用飞速发展,在我们生活和工作中都得到大量的普及应用,主流研究把成果归功于推动人工智能发展的三大要素:数据、算法和算力。这三个要素缺一不可,相互促进、相互支撑,是智能技术创造价值和取得成功的必备条件。

经过不断发展,人工智能模型已经在多个场景的指标超过人类,并且已经在各个领域落地,未来还会创造更大的价值。

但是人工智能的开发过程也是一个耗费巨大的工程。单次训练的硬件成本已几千(如ResNet 50)拉升到了百万甚至千万(如GPT-3MT-NLGSwitch-Transformer等)。在硬件成本飙升的同时,算法研发人员的成本也不断提升。当前人才市场上算法类专家的平均年薪远远高于一般的软件开发人员。

所以,为了达到模型训练降本的目的,人工智能开发流程在构建和使用中必须要兼顾硬件成本和便利性。首先要考虑方案的硬件ROI,尽量能用更少的资源来获取最大的收益;其次要兼顾方案的便利性,尽量减小方案的学习成本和切换成本,提升研发人员的使用效率。

 

硬件成本方面:

由于算力单价极高及动态占用的特征,将算力和其他两者高效的结合使用方法是提升ROI的关键。为了达成更高的集群利用率,我们把人工智能模型的开发过程会细分成两个阶段:调测阶段、批量运行阶段。

调测阶段主要解决能不能跑起来的问题,主要是环境、代码、数据三者的匹配。通过交互式的运行和不断迭代修改,最终生成一个完善可用的镜像环境和算法代码。

批量运行阶段主要解决模型训练效率的问题,主要是自动化启动、模型指标的监控、以及训练算法的调参。通过正式的大规模数据集,长期、多次的进行模型参数迭代来完成正式的训练任务。一般需要通过日志、监控等方式观察模型训练的过程,一个完整的训练任务一般会持续一天甚至一个月。由于硬件、网络故障是无法避免的,较长时间的任务又会通过checkpoint等方式切分成多个断续的小任务。

特点

调测阶段

批量运行阶段

调测

交互式(简单直接)

日志式(复杂)

利用率

低(高利用率阶段程比例低,一般小于10%

高(高利用率阶段占比高,一般大于95%

自动化

无法自动启停,无法自动重跑

可以自动启停,重跑效果稳定

算力协调

长期占用,手工配置

即时占用,系统自动配置

ROI

 

虽然算力占用成本的大头,但是算法和数据的存储也会产生大量费用,而且不同的存储方案对使用便利和学习成本有较大影响。为了兼顾成本和便利性,我们需要对各部分的特征做一个简要的分析。

首先是算法部分,一般依据修改频度把算法分成多个层级,即:环境、代码、配置。其中,环境是最不经常变化的内容,一般以容器镜像的方式来承载;代码变动频率较高(特别是在调试阶段),我们建议通过NFSOBS存储;配置是频繁变动的,我们建议通过ModelArts任务配置来承载。

其次是数据部分,一般来说训练数据体量更大,并且总量会不断增加,但是已生成的数据集变动会很小。一般建议以OBS来进行承载数据,在多机训练场景下也有通过NFS来承载的实践。

特点

OBS

NFS

本地盘

易用性

较困难

简单

简单,但会按任务重置

性能

低,桶带宽<2.4GB、时延约10ms

中,带宽20GBIOPS<100/秒、时延约1ms

高,单盘3GBIOPS<50/秒、时延约0.1ms

最大空间

无限制

320T

3.6T

费用成本(1TB/年)

1

2

机型自带

基于以上特点,我们推荐的存储方案如下图:

 

使用成本方面:

当前人工智能开发引擎层出不穷,基本每个月都会有新的工具版本出现,每周都有新的算法实践开源。通过Kaggle19-21年的统计结果,可以看到人工智能研发人员的开发形态和方法每年都有不同。虽然各个厂商都在不断的丰富自己人工智能开发平台的能力,但是市场上依然还没有一个被大部分研发普遍接受的算法开发范式。

虽然人工智能的模型开发没有普遍认可的方式,但是裸机GPU的开发方式是每个研发人员上手的第一课,容器化的环境隔离也被大家普接受和掌握。

那么我们的方案就需要尽量兼容裸机的使用流程,基于容器化隔离的方式来构建一套顺畅的流程。最终在尽量不增加新概念、新工具的情况下,让开发能用能快速的使用云上的算力、存储资源,并高效的构建自己的算法模型。

 

场景实践:

上面对人工智能训练的成本要素做了一个简单的分析,后续会分析几个依托ModelArts专属池的实际人工智能开发场景,并根据各场景的特殊性来给出一套兼顾成本和体验的实践策略。详细的场景列表如下:

基础配置篇:权限配置说明依赖服务使用挂载目录说明

常见问题篇:SFS使用相关VS Code连接相关Tensorboard相关

场景1Notebook与训练任务联动

场景2线下环境与训练任务联动

场景3公共池与专属池联动

场景4:使用Tensorboard监控训练


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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