AI总体上在加速奔跑,而有时却不得不放慢脚步。
IDC咨询发布的最新数据显示,2022年全球人工智能市场规模预计达4328亿美元,同比增长19.6%,到2023年有望突破5000亿美元大关。
中国人工智能产业的增速高于全球平均水平,但也有统计表明,目前国内AI渗透率超过10%的只有电子行业,而汽车、石化、制药等行业的渗透率在5%~10%,建材等传统行业则低于5%。
显而易见,AI赋能千行百业的数字化转型,尚面临诸多需要跨越的鸿沟:从AI算法到产品化应用差距甚远,从AI模型构建到训练与推理流程分割,从AI开发到场景化落地缺乏工具,人工智能要实现降低门槛、甘霖普惠的目标,还有很长的路要走。
李白在《行路难》中曾发出“多歧路,今安在”的感叹,这恰是当下AI开发面临困境的写照。他还写过“蜀道之难,难于上青天”的名篇,让巴蜀大地有了最具识别性的标签。
6月25日,由华为主办,以“创未来 享非凡”为主题的昇腾AI开发者创享日活动在成都举办。这是依托于昇腾AI产业、覆盖全国的开发者活动,为AI开发者提供技术解读和前沿科技分享,通过技术赋能、上手实操和展览展示构筑深度交流平台,与开发者共享成长之道。
在蜀地探讨AI开发的崭新路径,也许蕴含着古今呼应的天意。作为昇腾全栈AI软硬件平台中的全流程开发工具链,MindStudio可提供一站式开发环境,支持训练模型、推理应用和自定义算子开发三大流程,依靠可视化、本地/远程调试、丰富调优工具等功能,帮助开发者高效便捷地完成AI开发任务。
如果说MindStudio是为AI开发指点迷津的罗盘,那么模型迁移与调优就是决定方向的指针。在成都创享日活动中,昇腾MindStudio架构师张有陵与AI开发者分享MindStudio在端到端模型开发调优上的应用,从模型迁移、AutoML自动调优、Profiling深度调优、专家系统调优等维度扫除AI开发的重重障碍。
昇腾MindStudio架构师 张有陵
模型迁移:从GPU训练脚本平滑过渡到昇腾生态
AI开发是系统工程,离不开软硬件协同的基础环境。但令人遗憾的是,开发者长期以来各自为战,基于不同的平台或框架开展工作,加之缺少适宜的工具支撑,造成模型迁移的成本高、效率低。
华为基于多年的研究积累,为开发者提供原生创新的昇腾AI基础软硬件平台,包括端边云系列硬件设备、异构计算架构CANN、全场景AI框架昇思MindSpore、行业应用使能套件MindX,以及全流程开发工具链MindStudio等。
其实,每个开发者都有自己的工作习惯,比如先用一个工具来做开发,然后再到其他的平台做部署。然而,对开发者来说,软件平台的切换往往意味着较长的适应过程。
华为昇腾的跨框架模型迁移工具X2MindSpore通过一键式的方式,将原本基于PyTorch/TensorFlow框架的训练工程代码自动迁移至MindSpore框架,并达成用户基本无需修改代码或少量代码修改即可成功运行并收敛的效果,大幅提高迁移效率。
从GPU训练脚本迁移至昇腾,在AI框架层面有多种选择。用户可继续使用原有AI框架,仅切换底层硬件,也可迁移到华为自研高性能MindSpore框架,以充分发挥底层硬件算力。MindStudio提供适用于上述各场景的一系列迁移工具,同时支持图形化和命令行的使用方式,大幅降低迁移难度与工作量。
具体而言,开发者在昇腾上使用PyTorch框架编写网络时,通常会参考该网络在GPU上的实现,或对GPU上的网络进行人工迁移。PyTorch GPU2Ascend工具可一键式将基于PyTorch框架编写的网络模型及训练脚本,从NVIDIA生态(即GPU)自动化迁移至Ascend平台(即NPU),几乎无需修改代码,迁移过程丝滑平顺。
AutoML自动调优:化繁为简的模型生成、训练与推理利器
在AI发展初期,由于模型参数量小、泛化性差,一个模型大多只能对应单个场景。从零起步、独立调优、艰难迭代、推倒重来的小作坊开发模式,让众多企业苦不堪言。
大模型的出现仿佛黑夜中的闪电,照亮了碎片化AI应用的破解之路。不过,大模型的开发与部署成本高昂,要适配垂直行业的具体场景,还需要在训练、推理等环节不断进行优化。
企业仅靠一己之力,显然无法完成AI开发的跃迁之旅。昇腾的MindStudio AutoML自动调优能为用户提供模型自动生成、模型训练调优、模型推理调优能力,为AI开发模式的升级添砖加瓦,也为生态迁移后的性能调优保驾护航。
模型自动生成支持基于纯数据集自动生成主流高性能模型、基于预训练模型自动生成亲和模型,它们都基于昇腾910训练搜索和昇腾310推理验证。
训练模型调优通过低秩分解,将大的全连接或卷积算子分解成多个小的算子,借助知识蒸馏将大模型中的特征蒸馏到小模型中,并以训练超参数自动调优替代手动调优,基于AOE梯度切分对子图和梯度进行调优。各类调优技术均为降低模型计算量、缩减模型大小,以对训练模型进行优化,同时提升模型训练调优效率。
伴随模型规模逐渐变大,推理模型部署时所占用的内存需求上升,推理时延也会逐渐增加。模型推理调优通过自动剪枝裁剪掉冗余结构,达成自动8bit量化,再采用AOE实现算子计算搬运流水排布的硬件级调优,降低模型运算量,提升模型性能。
综合来看,AutoML自动调优以亲和昇腾的神经网络架构搜索DNAS算法和剪枝/量化/低秩分解算法为中心,覆盖MindSpore、PyTorch框架,实现昇腾亲和模型对分类、检测、分割、NLP等全场景通用模型的自动调优,以自动化工具持续优化模型性能,改善用户推理体验——训练脚本迁移后的模型性能精度自动调优,可将推理性能提升20%。
深度开发调优:面向全业务场景提供端到端profiling分析工具
在自动调优的基础上,手动深度开发调优能进一步解决具体业务场景的潜在问题,促进模型整体效能的提升。
深度开发调优离不开出色的系统调优工具,其应为用户提供端到端Profiling能力,能够准确定位系统的软硬件性能瓶颈,通过针对性的性能优化建议,以最小的代价实现业务场景的极致性能,提高开发者性能分析的效率。
MindStudio Profiling即可扮演这样的角色,能为用户提供从算子到模型、从单机单卡到集群,以及针对TensorFlow、Pytorch、昇思MindSpore等多种主流AI框架面向昇腾全业务场景下端到端的Profiling方案。
基于Top-Down性能分析方法,MindStudio Profiling通过软硬件协同准确、高效识别关键性能瓶颈,并以最小成本达成提高业务场景性能和分析效率的双重目标。在使用方式上,提供命令行、图形界面、配置文件、环境变量等灵活多样的使能方式和丰富的Profiling API 接口,支持用户通过Summary表格、TimeLine时序图等方式进行多维度性能分析,帮助其解决性能难题。
以深度调优中的激活函数为例:PyTorch YOLOv4网络应用在昇腾AI处理器SoC执行推理过程中,发现整体执行时间较长。为找出原因,使用Profiling性能分析工具对网络应用执行推理耗时进行分析,结果显示运行的接口aclmdlExecute执行耗时较高,进一步分析发现是不亲和的Mish激活函数算子执行时间过长导致的,替换为LeakyReLU的激活函数后,性能提升40%。
专家经验系统:基于知识库积累解决调优的TOP痛点
性能优化是开发者主要的使用模块,而耗时长是TOP痛点。透过对调优数据准备、解析性能数据、分析性能瓶颈、优化瓶颈问题等环节的复盘,发现面对技术门槛较高的难题,必须基于知识库沉淀专家知识,主动识别性能瓶颈和推荐优化建议,才有可能攻坚克难。
MindStudio msadvisor能实现推理和训练场景下模型、算子瓶颈信息识别及优化信息推荐,提升模型、算子开发人员调优效率。通过 msadvisor的UB融合、Transdata算子识别、Roofline优化分析、AICPU算子优化、L2融合、训练迭代优化、算子dump优化分析等自有知识库,从不同维度给出模型、算子瓶颈信息及优化建议,可显著缩短开发者调优时间。
与此同时,MindStudio还提供生态知识库框架,汇聚生态开发者调优经验,扩充msadvisor调优范围;支持命令行和IDE界面两种执行方式,一键获取瓶颈信息和优化建议,并通过配置文件选择需要运行的知识库范围,满足不同用户场景需求。
从模型生态迁移、AutoML自动调优到深度开发调优、专家经验系统构建,昇腾MindStudio为AI开发铺就一条通往千行百业数字化场景的落地路径。这条路也许充满荆棘,但在多管齐下的调优举措保障下,遍地鲜花的未来并不遥远