正是像鄭輝這樣有技術(shù)、有想法、有商業(yè)嗅覺的年輕人,讓我們看到了AI走進千行萬業(yè)的希望。
撰文|張賀飛編輯|沈菲菲兩年多前,鄭輝還是一個即將畢業(yè)的大四學(xué)生,每天沉迷在代碼的世界里,忙著準(zhǔn)備研究生復(fù)試,從未對AI有過太多想法。
沒有人會想到,兩年后的鄭輝已經(jīng)是一位資深的AI開發(fā)者,他獨立開發(fā)的NonZero算子被合入異構(gòu)計算架構(gòu)CANN主線,參與開發(fā)的深度學(xué)習(xí)框架降低了大模型訓(xùn)練的門檻,目前正在做大模型分布式推理加速,希望可以幫助其他開發(fā)者在生產(chǎn)環(huán)境中高效部署在線推理服務(wù)。
在昇騰AI的生態(tài)里,像鄭輝這樣為大模型浪潮默默貢獻自己力量的開發(fā)者不勝枚舉。他們還不是世界的“主角”,卻在用自己的方式改變著世界。
01
“導(dǎo)師安排的第一個項目”
時間回到2022年4月,因為優(yōu)秀的筆試成績,鄭輝順利進入到杭州電子科技大學(xué)的研究生復(fù)試。當(dāng)導(dǎo)師問及有沒有感興趣的研究方向時,鄭輝分享了自己解決Bug的經(jīng)歷,第一次接觸到了分布式機器學(xué)習(xí)。
同樣是在2022年4月,昇騰AI開發(fā)者創(chuàng)享日在西安舉行,正式發(fā)布了“昇騰眾智計劃2022”,推出了包含算子、模型開發(fā)、系列創(chuàng)新應(yīng)用在內(nèi)的4000多個任務(wù),杭州電子科技大學(xué)正是簽約合作的高校之一。
剛進實驗室的鄭輝,由此被導(dǎo)師安排了第一個項目——使用C++開發(fā)NonZero算子與調(diào)優(yōu)。
深度學(xué)習(xí)算法由一個個計算單元組成,這些計算單元被稱為算子,可以理解為實現(xiàn)特定運算邏輯的代碼模塊,比如文本生成、翻譯、情感分析等任務(wù)。一個優(yōu)秀的算子不僅可以提高模型的效率和性能,還能夠降低模型的資源消耗,在相同的計算資源下完成更多任務(wù)。
因為算子在模型中扮演了重要角色,自己也是第一次做類似的項目,鄭輝心里泛起了嘀咕:“我的能力夠不夠,最后能不能做好,會不會影響別人的進度?”向?qū)嶒炇业膸熃阏埥毯螅嵼x“硬著頭皮”接下了任務(wù)。
為了學(xué)習(xí)算子開發(fā)的知識,鄭輝在B站上看了不少視頻課程,發(fā)現(xiàn)昇思MindSpore上有詳細(xì)的開發(fā)文檔和現(xiàn)成的算子庫,遇到不懂的問題可以直接和昇騰AI的工程師溝通,逐漸有了把項目做好的信心。
讓鄭輝印象深刻的是:“開發(fā)算子時看到代碼里已經(jīng)有一個for循環(huán),不理解為何還要去實現(xiàn)for循環(huán)的并行,在我看來收益并不大。但昇騰AI的工程師告訴我,就算是一個微小的提升,在龐大的數(shù)據(jù)面前也會產(chǎn)生有價值的收益。”
經(jīng)過近兩個月的鉆研,鄭輝提交的PR被審核通過,通過引入Parallel.For循環(huán)實現(xiàn)了算子開多核,可以進行多線程提速,讓昇思MindSpore的NonZero算子有著不遜于Tensorflow和Pytorch的精度,目前代碼已合入CANN主線。
相較于最后的結(jié)果,鄭輝認(rèn)為自己從過程中獲得了更大的價值:“算子開發(fā)是我的第一個項目,經(jīng)過算子的需求分析、性能分析、開發(fā)、測試、性能優(yōu)化等一整套開發(fā)流程,讓我深入了解了大模型的內(nèi)部運行機制,包括數(shù)據(jù)流、計算圖和并行計算。更重要的是,讓我有勇氣去承擔(dān)更大的項目,每次遇到困難時,總會勸自己試一試,不試試怎么知道自己不行,萬一成功了呢。”
兩個月的時間并不長,但讓鄭輝完成了從懵懂少年到“眾智開發(fā)者”的蛻變,同時也印證了昇騰AI發(fā)起眾智計劃時的構(gòu)想:通過匯聚產(chǎn)業(yè)界智慧和力量,加速基礎(chǔ)軟件創(chuàng)新突破,共促多樣性計算產(chǎn)業(yè)發(fā)展和生態(tài)繁榮。
02
“難點在于找到應(yīng)用場景”
喜歡琢磨事的鄭輝,不想在象牙塔里做一個學(xué)術(shù)派,而是在項目中解決問題。在他的認(rèn)知里,人工智能落地應(yīng)用最大的難點已經(jīng)不是技術(shù)實現(xiàn),而是場景的選擇,怎么讓生成式AI在更多場景中發(fā)揮價值。
鄭輝的想法并非沒有道理,AI工程化早已是一個熱門課題。
即使是谷歌這樣的互聯(lián)網(wǎng)“頭羊”,AI科學(xué)家和工程師們也常常會遇到“開發(fā)一周,上線三月”的情況,需要對模型花費數(shù)個月的時間進行魯棒性、數(shù)據(jù)時序穿越、線上線下一致性、數(shù)據(jù)完整性等各個維度的排查。能否為業(yè)務(wù)場景帶來更好的效果、更大的價值,將是AI走進千行萬業(yè)的關(guān)鍵。
除了算子、深度學(xué)習(xí)框架等基礎(chǔ)開發(fā),鄭輝不愿錯過任何一個將AI在場景中應(yīng)用的機會。昇騰AI創(chuàng)新大賽2023的活動發(fā)起后,鄭輝毫不猶豫地參與其中,甚至沒有選擇自己有過項目經(jīng)歷的昇思賽道,而是更有挑戰(zhàn)性的應(yīng)用賽道。
“我在團隊中是主要負(fù)責(zé)場景的選擇,以及整個船舶監(jiān)測系統(tǒng)平臺的設(shè)計。像智慧海防監(jiān)測這樣的場景,對數(shù)據(jù)安全有著極高要求,特別適合運行在軟硬件一體的國產(chǎn)生態(tài)上。所以我們基于昇騰算力平臺,將AI應(yīng)用于海洋漁船作業(yè)場景,通過預(yù)測漁船航行線路,來提高安全保障。”
不同于一些為了比賽而比賽的現(xiàn)象,昇騰AI創(chuàng)新大賽2023已經(jīng)結(jié)束了半年,鄭輝所在的小組仍在繼續(xù)推進項目:“今年將不再局限于部分地區(qū)的港口,計劃將沿海各省的數(shù)據(jù)都納入范圍,我們的目標(biāo)是在全國沿海城市實現(xiàn)這個項目,通過整合更廣泛的一個數(shù)據(jù)資源,為出海漁船構(gòu)建一道隱形的安全防線。”
很多人說2023年是“生成式AI元年”,各行各業(yè)都在訓(xùn)練自己的大模型。可“大煉模型”終歸只是AI走進產(chǎn)業(yè)第一步,在現(xiàn)實和智能之間,仍然橫亙著一片鮮有人涉足的“荒海”,需要千千萬萬的開發(fā)者去扮演“渡舟”的角色,通過一個個落地應(yīng)用的項目或產(chǎn)品,照亮千行萬業(yè)的智能化之路。
正在讀研二的鄭輝,某種程度上讓外界看到了中國AI的希望所在。
就像在“漁船航行線路”項目中,鄭輝特意提到了后續(xù)的商業(yè)化問題:“我們可以和保險公司合作,在他們的風(fēng)控體系中增加漁船的航行線路,在給漁船提供金融服務(wù)的時候,有一個更全面的風(fēng)險分析。”
興趣使然的開發(fā)者,總會有激情消退的時候;能看到商業(yè)機會的開發(fā)者,才會是理想的“渡舟”,最開始也許只是一條“木筏”,可只要找到了商業(yè)化的路徑,“木筏”就會一步步進化成舢舨、帆船、貨輪,載著更多場景駛向智能化的彼岸。
03
“讓大模型的推理快起來”
因為算子開發(fā)的機會,鄭輝踏入了人工智能的河流;因為昇騰AI創(chuàng)新大賽2023,鄭輝認(rèn)識到了場景應(yīng)用過程中的種種痛點。曾經(jīng)對AI“不太感冒”的大男孩兒,慢慢有了更多的想法,開始做一些更有挑戰(zhàn)性的項目。
比如ChatGPT剛火的時候,鄭輝就跑去問各種問題,發(fā)現(xiàn)ChatGPT的回答速度很慢,認(rèn)為“這種體驗感大大降低了用戶的興趣”。原因在于,基于Transformer的大模型具有多次迭代的特性,導(dǎo)致在推理方面存在負(fù)載不均衡、算力資源無法充分利用等問題,在大模型的實際使用中,推理速度往往成為制約性能的一大瓶頸。
過去一年多時間里,大模型訓(xùn)練始終是技術(shù)圈的焦點,其實推理加速比訓(xùn)練加速更難。訓(xùn)練加速主要受數(shù)據(jù)并行性和模型并行性的影響,而推理加速更多地受到模型結(jié)構(gòu)、計算圖優(yōu)化、內(nèi)存訪問、實時性等方面的影響,需要在短時間內(nèi)處理大量數(shù)據(jù),而且要求極低的延遲。
為了解決大模型推理問題,華為2012實驗室和杭州電子科技大學(xué)聯(lián)合組建了“攻堅小組”。鄭輝主動向?qū)熣埨t,參與了MindSpore Serving的研發(fā),旨在幫助開發(fā)者在生產(chǎn)環(huán)境中高效部署在線推理服務(wù)。
不同于外界降低精度來提升推理速度的做法,鄭輝的策略是實現(xiàn)并優(yōu)化Fastserve論文,通過多級請求等待隊列,將不同請求劃分到不同的等待隊列,實現(xiàn)搶占式調(diào)度用于降低請求延遲、饑餓調(diào)度用于喚醒低優(yōu)先級請求、主動式Kvcache管理用于充分利用算力資源,在提高推理服務(wù)系統(tǒng)吞吐性能的同時,降低請求的平均完成時間。
“如果沒有最初做算子開發(fā)的經(jīng)驗,恐怕也不敢去做大模型的推理加速。從算子的角度看大模型,推理加速其實就是對算子的優(yōu)化,然后利用算子就行腳本編寫,從而實現(xiàn)推理加速和吞吐量的提高。”鄭輝回憶道。
和一個人做算子開發(fā)的經(jīng)歷相比,與團隊成員協(xié)同完成Fastserve策略的過程,讓鄭輝對團隊合作有了更深刻的認(rèn)識:“一個人可以走的更快,但一群人可以走的更遠(yuǎn)。個人在團隊里好比一顆齒輪,扎實的技術(shù)深度就是齒輪駐扎在一臺龐大機器里的深度,協(xié)作能力好比齒輪的邊緣,同事的配合會使我這顆齒輪的轉(zhuǎn)動更順利。”
對于23歲的鄭輝來說,加入AI開發(fā)的時間并不算長,卻走出了一條典型的成長路線:因為各種機緣接觸到了昇騰AI生態(tài),開始了在AI世界的“升級打怪之旅“,起步時還有些生澀,但通過一個個項目中不斷發(fā)現(xiàn)問題、解決問題,對場景和技術(shù)理解的深度不斷提升,不斷攀登更高的山峰。同時在一次次碰撞中,學(xué)會了高效協(xié)同,集眾智、合眾力去解決更復(fù)雜的難題。
04
結(jié)語
以夢為馬的奔跑,終將成就熠熠生輝的人生。
正是像鄭輝這樣有技術(shù)、有想法、有商業(yè)嗅覺的年輕人,以一種無畏向上的精神踏入人工智能賽道,沉浸在代碼的世界里揮灑汗水,用智慧和毅力解決了一個又一個技術(shù)問題,讓我們看到了AI走進千行萬業(yè)的希望。