前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >算子开发到推理加速,一位00后开发者的“升级打怪”之旅

算子开发到推理加速,一位00后开发者的“升级打怪”之旅

作者头像
Alter聊科技
发布2024-05-01 07:31:11
4540
发布2024-05-01 07:31:11
举报
文章被收录于专栏:Alter聊科技

正是像郑辉这样有技术、有想法、有商业嗅觉的年轻人,让我们看到了AI走进千行万业的希望。

两年多前,郑辉还是一个即将毕业的大四学生,每天沉迷在代码的世界里,忙着准备研究生复试,从未对AI有过太多想法。

没有人会想到,两年后的郑辉已经是一位资深的AI开发者,他独立开发的NonZero算子被合入异构计算架构CANN主线,参与开发的深度学习框架降低了大模型训练的门槛,目前正在做大模型分布式推理加速,希望可以帮助其他开发者在生产环境中高效部署在线推理服务。

在昇腾AI的生态里,像郑辉这样为大模型浪潮默默贡献自己力量的开发者不胜枚举。他们还不是世界的“主角”,却在用自己的方式改变着世界。

01 、“导师安排的第一个项目”

时间回到2022年4月,因为优秀的笔试成绩,郑辉顺利进入到杭州电子科技大学的研究生复试。当导师问及有没有感兴趣的研究方向时,郑辉分享了自己解决Bug的经历,第一次接触到了分布式机器学习。

同样是在2022年4月,昇腾AI开发者创享日在西安举行,正式发布了“昇腾众智计划2022”,推出了包含算子、模型开发、系列创新应用在内的4000多个任务,杭州电子科技大学正是签约合作的高校之一。

刚进实验室的郑辉,由此被导师安排了第一个项目——使用C++开发NonZero算子与调优。

深度学习算法由一个个计算单元组成,这些计算单元被称为算子,可以理解为实现特定运算逻辑的代码模块,比如文本生成、翻译、情感分析等任务。一个优秀的算子不仅可以提高模型的效率和性能,还能够降低模型的资源消耗,在相同的计算资源下完成更多任务。

因为算子在模型中扮演了重要角色,自己也是第一次做类似的项目,郑辉心里泛起了嘀咕:“我的能力够不够,最后能不能做好,会不会影响别人的进度?”向实验室的师姐请教后,郑辉“硬着头皮”接下了任务。

为了学习算子开发的知识,郑辉在B站上看了不少视频课程,发现昇思MindSpore上有详细的开发文档和现成的算子库,遇到不懂的问题可以直接和昇腾AI的工程师沟通,逐渐有了把项目做好的信心。

让郑辉印象深刻的是:“开发算子时看到代码里已经有一个for循环,不理解为何还要去实现for循环的并行,在我看来收益并不大。但昇腾AI的工程师告诉我,就算是一个微小的提升,在庞大的数据面前也会产生有价值的收益。”

经过近两个月的钻研,郑辉提交的PR被审核通过,通过引入Parallel.For循环实现了算子开多核,可以进行多线程提速,让昇思MindSpore的NonZero算子有着不逊于Tensorflow和Pytorch的精度,目前代码已合入CANN主线。

相较于最后的结果,郑辉认为自己从过程中获得了更大的价值:“算子开发是我的第一个项目,经过算子的需求分析、性能分析、开发、测试、性能优化等一整套开发流程,让我深入了解了大模型的内部运行机制,包括数据流、计算图和并行计算。更重要的是,让我有勇气去承担更大的项目,每次遇到困难时,总会劝自己试一试,不试试怎么知道自己不行,万一成功了呢。”

两个月的时间并不长,但让郑辉完成了从懵懂少年到“众智开发者”的蜕变,同时也印证了昇腾AI发起众智计划时的构想:通过汇聚产业界智慧和力量,加速基础软件创新突破,共促多样性计算产业发展和生态繁荣。

02 、“难点在于找到应用场景”

喜欢琢磨事的郑辉,不想在象牙塔里做一个学术派,而是在项目中解决问题。在他的认知里,人工智能落地应用最大的难点已经不是技术实现,而是场景的选择,怎么让生成式AI在更多场景中发挥价值。

郑辉的想法并非没有道理,AI工程化早已是一个热门课题。

即使是谷歌这样的互联网“头羊”,AI科学家和工程师们也常常会遇到“开发一周,上线三月”的情况,需要对模型花费数个月的时间进行鲁棒性、数据时序穿越、线上线下一致性、数据完整性等各个维度的排查。能否为业务场景带来更好的效果、更大的价值,将是AI走进千行万业的关键。

除了算子、深度学习框架等基础开发,郑辉不愿错过任何一个将AI在场景中应用的机会。昇腾AI创新大赛2023的活动发起后,郑辉毫不犹豫地参与其中,甚至没有选择自己有过项目经历的昇思赛道,而是更有挑战性的应用赛道。

“我在团队中是主要负责场景的选择,以及整个船舶监测系统平台的设计。像智慧海防监测这样的场景,对数据安全有着极高要求,特别适合运行在软硬件一体的国产生态上。所以我们基于昇腾算力平台,将AI应用于海洋渔船作业场景,通过预测渔船航行线路,来提高安全保障。”

不同于一些为了比赛而比赛的现象,昇腾AI创新大赛2023已经结束了半年,郑辉所在的小组仍在继续推进项目:“今年将不再局限于部分地区的港口,计划将沿海各省的数据都纳入范围,我们的目标是在全国沿海城市实现这个项目,通过整合更广泛的一个数据资源,为出海渔船构建一道隐形的安全防线。”

很多人说2023年是“生成式AI元年”,各行各业都在训练自己的大模型。可“大炼模型”终归只是AI走进产业第一步,在现实和智能之间,仍然横亘着一片鲜有人涉足的“荒海”,需要千千万万的开发者去扮演“渡舟”的角色,通过一个个落地应用的项目或产品,照亮千行万业的智能化之路。

正在读研二的郑辉,某种程度上让外界看到了中国AI的希望所在。

就像在“渔船航行线路”项目中,郑辉特意提到了后续的商业化问题:“我们可以和保险公司合作,在他们的风控体系中增加渔船的航行线路,在给渔船提供金融服务的时候,有一个更全面的风险分析。”

兴趣使然的开发者,总会有激情消退的时候;能看到商业机会的开发者,才会是理想的“渡舟”,最开始也许只是一条“木筏”,可只要找到了商业化的路径,“木筏”就会一步步进化成舢舨、帆船、货轮,载着更多场景驶向智能化的彼岸。

03 、“让大模型的推理快起来”

因为算子开发的机会,郑辉踏入了人工智能的河流;因为昇腾AI创新大赛2023,郑辉认识到了场景应用过程中的种种痛点。曾经对AI“不太感冒”的大男孩儿,慢慢有了更多的想法,开始做一些更有挑战性的项目。

比如ChatGPT刚火的时候,郑辉就跑去问各种问题,发现ChatGPT的回答速度很慢,认为“这种体验感大大降低了用户的兴趣”。原因在于,基于Transformer的大模型具有多次迭代的特性,导致在推理方面存在负载不均衡、算力资源无法充分利用等问题,在大模型的实际使用中,推理速度往往成为制约性能的一大瓶颈。

过去一年多时间里,大模型训练始终是技术圈的焦点,其实推理加速比训练加速更难。训练加速主要受数据并行性和模型并行性的影响,而推理加速更多地受到模型结构、计算图优化、内存访问、实时性等方面的影响,需要在短时间内处理大量数据,而且要求极低的延迟。

为了解决大模型推理问题,华为2012实验室和杭州电子科技大学联合组建了“攻坚小组”。郑辉主动向导师请缨,参与了MindSpore Serving的研发,旨在帮助开发者在生产环境中高效部署在线推理服务。

不同于外界降低精度来提升推理速度的做法,郑辉的策略是实现并优化Fastserve论文,通过多级请求等待队列,将不同请求划分到不同的等待队列,实现抢占式调度用于降低请求延迟、饥饿调度用于唤醒低优先级请求、主动式Kvcache管理用于充分利用算力资源,在提高推理服务系统吞吐性能的同时,降低请求的平均完成时间。

“如果没有最初做算子开发的经验,恐怕也不敢去做大模型的推理加速。从算子的角度看大模型,推理加速其实就是对算子的优化,然后利用算子就行脚本编写,从而实现推理加速和吞吐量的提高。”郑辉回忆道。

和一个人做算子开发的经历相比,与团队成员协同完成Fastserve策略的过程,让郑辉对团队合作有了更深刻的认识:“一个人可以走的更快,但一群人可以走的更远。个人在团队里好比一颗齿轮,扎实的技术深度就是齿轮驻扎在一台庞大机器里的深度,协作能力好比齿轮的边缘,同事的配合会使我这颗齿轮的转动更顺利。”

对于23岁的郑辉来说,加入AI开发的时间并不算长,却走出了一条典型的成长路线:因为各种机缘接触到了昇腾AI生态,开始了在AI世界的“升级打怪之旅“,起步时还有些生涩,但通过一个个项目中不断发现问题、解决问题,对场景和技术理解的深度不断提升,不断攀登更高的山峰。同时在一次次碰撞中,学会了高效协同,集众智、合众力去解决更复杂的难题。

04 、结语

以梦为马的奔跑,终将成就熠熠生辉的人生。

正是像郑辉这样有技术、有想法、有商业嗅觉的年轻人,以一种无畏向上的精神踏入人工智能赛道,沉浸在代码的世界里挥洒汗水,用智慧和毅力解决了一个又一个技术问题,让我们看到了AI走进千行万业的希望。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Alter聊科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 、“导师安排的第一个项目”
  • 02 、“难点在于找到应用场景”
  • 03 、“让大模型的推理快起来”
  • 04 、结语
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档