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

简介: 郑辉,从大四学生到资深AI开发者,他的成长轨迹映射了中国AI生态的繁荣。他独立开发的NonZero算子被纳入CANN主线,参与的深度学习框架降低了大模型训练门槛。在昇腾AI生态中,郑辉们正助力大模型发展。从初次接触分布式机器学习到优化算子,再到参与大模型推理加速项目,郑辉在实践中不断成长,他的工作有望帮助开发者更高效地部署在线推理服务。他的故事展示了开发者如何通过团队合作和持续学习,克服挑战,推动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走进千行万业的希望。

相关文章
|
数据安全/隐私保护 开发者 异构计算
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
8月16日,时间、空间可控的视频生成模型 VideoComposer 在魔搭社区开源。
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
|
2月前
|
人工智能 JSON Java
【极速入门版】编程小白也能轻松上手Comate AI编程插件
【极速入门版】编程小白也能轻松上手Comate AI编程插件
39 0
|
4月前
|
人工智能 IDE 测试技术
一文教会你如何用好通义灵码,让这款 AI 编码工具帮你做更多工作,更高效
如何用好通义灵码?欢迎收藏最佳使用指南。本文提供通义灵码使用指南,涵盖快捷键、配置调整、跨文件索引及上下文管理等内容,帮助用户更高效地使用通义灵码。
|
1月前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
78 1
|
2月前
|
人工智能 前端开发 JavaScript
AI+脚本让我的效率翻倍,你也可以试试
本文分享了一名高级软件工程师如何利用 AI 工具(如 VSCode 插件 Codeium、通义灵码,及网页端的通义千问和 GPT-4)提升工作效率的经验。从代码生成、单元测试、脚本生成到文本润色,再到新框架学习,AI 工具在多个方面显著提高了开发效率和代码质量。文章还提供了具体示例和注意事项,帮助读者更好地应用这些工具。
|
4月前
|
机器学习/深度学习 人工智能 Android开发
揭秘AI编程:从零开始构建你的第一个机器学习模型移动应用开发之旅:从新手到专家
【8月更文挑战第29天】本文将带你走进人工智能的奇妙世界,一起探索如何从零开始构建一个机器学习模型。我们将一步步解析整个过程,包括数据收集、预处理、模型选择、训练和测试等步骤,让你对AI编程有一个全面而深入的理解。无论你是AI初学者,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启示。让我们一起开启这段激动人心的AI编程之旅吧! 【8月更文挑战第29天】在这篇文章中,我们将探索移动应用开发的奇妙世界。无论你是刚刚踏入这个领域的新手,还是已经有一定经验的开发者,这篇文章都将为你提供有价值的信息和指导。我们将从基础开始,逐步深入到更复杂的主题,包括移动操作系统的选择、开发工具的使用、
|
7月前
|
存储 人工智能 数据库
【AI大模型应用开发】MemGPT原理与快速上手:这可能是目前管理大模型记忆的最专业的框架和思路
【AI大模型应用开发】MemGPT原理与快速上手:这可能是目前管理大模型记忆的最专业的框架和思路
485 0
|
7月前
|
人工智能 IDE Java
免费用的 AI 工具 CodeGeeX ,开发效率翻倍!!!
AI 会淘汰程序员,但只会淘汰不会用 AI 的程序员。AI可以通过学习和分析大量的性能数据,自动寻找性能瓶颈并进行智能调优,加快软件的响应速度,提升用户体验。此外,AI在软件开发需求分析、自动化测试、代码生成、项目管理、持续集成与部署等方面也有应用,可以节省时间和精力,提高开发速度和质量。就分享到这了。所以AI技术在软件开发领域的应用可以造福程序员。AI可以提供更高效的代码自动生成和智能推荐功能,帮助程序员快速编写高质量的代码。这可以减轻程序员的工作负担,提高开发效率。
225 1
|
7月前
|
前端开发 JavaScript IDE
蚂蚁CodeFuse新版发布,前端能力优化,支持安卓开发
蚂蚁百灵研发助手 CodeFuse 插件发布新版,本版本新增支持 Android Studio,并针对 JavaScript、TypeScript 等前端语言优化了模型效果,同时还将输出Token增加到最多 1024 个。目前 CodeFuse 处于邀请测试阶段,欢迎各位开发者前往官网申请资格参与测试。在之前已安装插件的用户需要下载最新版本,才可享受 CodeFuse 插件最新能力。
243 1
|
人工智能 自然语言处理 IDE
人手一个编程助手!北大代码大模型CodeShell-7B开源,魔搭社区最佳实践来了!
CodeShell是北京大学知识计算实验室联合四川天府银行AI团队研发的多语言代码大模型基座。