在過去一年的時(shí)間里,我有幸參與了“人工智能算子開發(fā)接口標(biāo)準(zhǔn)參考實(shí)現(xiàn)”在啟智社區(qū)的開源和研發(fā)工作。從項(xiàng)目有大致雛形、到順利開源在OpenI啟智社區(qū)、再到預(yù)期功能模塊不斷迭代完善,這段時(shí)間我們進(jìn)行了大量的調(diào)研和開發(fā),克服了很多困難。2020年12月,我們的項(xiàng)目成功獲得了社區(qū)評選的“優(yōu)秀開源項(xiàng)目”榮譽(yù),我個(gè)人也獲評首屆“優(yōu)秀開發(fā)者”和“突出貢獻(xiàn)者”。這些榮譽(yù)對于團(tuán)隊(duì)來說是巨大的肯定,而對于我個(gè)人來言更是一種別樣的經(jīng)歷和收獲。
實(shí)際上,我從研一入學(xué)就開始接觸“人工智能算子開發(fā)接口標(biāo)準(zhǔn)參考實(shí)現(xiàn)”相關(guān)的工作了。為了盡早確定自己研究生期間的方向,我在完成本科畢業(yè)答辯之后,向研究生導(dǎo)師申請?zhí)崆耙粋€(gè)月來實(shí)驗(yàn)室實(shí)習(xí)。那時(shí)組里“人工智能算子開發(fā)接口標(biāo)準(zhǔn)參考實(shí)現(xiàn)”的預(yù)研工作剛剛起步,項(xiàng)目中“國產(chǎn)化”、“人工智能”和“標(biāo)準(zhǔn)化”等標(biāo)簽在中美貿(mào)易戰(zhàn)的背景下顯得十分不同尋常,也給我留下了非常深刻的印象,經(jīng)過一番爭取,我順利的加入到項(xiàng)目中來。
本以為帶著本科積累的基礎(chǔ)進(jìn)組,我能夠在項(xiàng)目中游刃有余,真正做起來才發(fā)現(xiàn),標(biāo)準(zhǔn)參考實(shí)現(xiàn)的研發(fā)并不是一件容易的事。特別是在項(xiàng)目開源到啟智社區(qū)之后,我們更加意識到這事情的難度,以及把它做好的重要性。“人工智能算子開發(fā)接口標(biāo)準(zhǔn)參考實(shí)現(xiàn)”是“人工智能算子開發(fā)接口標(biāo)準(zhǔn)”中非常重要的一部分,它的目的是為標(biāo)準(zhǔn)提供一份基于特定語言的參考實(shí)現(xiàn),從而能夠保證標(biāo)準(zhǔn)語義的完整性。由于同時(shí)涉及到上層AI計(jì)算框架和底層硬件實(shí)現(xiàn),因此完成一個(gè)接口的標(biāo)準(zhǔn)化和實(shí)現(xiàn),往往要對已有的計(jì)算框架和算子庫進(jìn)行深入的調(diào)研和總結(jié),必要時(shí)還需研讀算子對應(yīng)的論文,嘗試對其進(jìn)行復(fù)現(xiàn)和重構(gòu)。從一個(gè)功能的吃力摸索,到逐漸上手熟練,再到下一個(gè)功能的艱難探索,這樣的認(rèn)知循環(huán)從項(xiàng)目開始一直持續(xù)到現(xiàn)在。其中最讓我沉迷的環(huán)節(jié),就是對一個(gè)功能模塊逐漸熟練之后再對其進(jìn)行思考和重構(gòu),過程中我常常發(fā)現(xiàn)自己之前看過的一些的開源代碼思路竟然神奇的解決了現(xiàn)有代碼的關(guān)鍵問題,便忍不住為其拍案叫絕。
當(dāng)然,項(xiàng)目并不總是順利的,我也遇到了很多阻礙。比如進(jìn)行項(xiàng)目重構(gòu)時(shí)因?yàn)閷Make一竅不通而花費(fèi)數(shù)周時(shí)間啃下《CMake Cookbook》;比如閱讀Eigen和MShadow代碼時(shí)被其中出神入化的C++表達(dá)式模板技術(shù)數(shù)次勸退;再比如數(shù)據(jù)布局中的物理順序和邏輯順序之間的差異區(qū)分,這些問題的難度與本科接觸到的項(xiàng)目難度完全不可同日而語。非常幸運(yùn)的是,我的導(dǎo)師楊超老師和師兄敖玉龍都十分盡心盡責(zé),他們會(huì)在每次組會(huì)交流時(shí)從不同角度分析所遇到的問題,討論項(xiàng)目的發(fā)展方向,并給我鼓勵(lì)和肯定,讓我得以快速突破瓶頸,獲得成長。在這里我要特別感謝我的導(dǎo)師和師兄在整個(gè)項(xiàng)目過程中給我的鼓勵(lì)和幫助。除此之外,我還要感謝我的“戰(zhàn)友”黎子毅同學(xué)、李雨芮師妹以及范睿博師弟,他們做事情認(rèn)真負(fù)責(zé),項(xiàng)目中很多關(guān)鍵功能的實(shí)現(xiàn)都是我們一起經(jīng)過無數(shù)次調(diào)研、討論和迭代的結(jié)果,“優(yōu)秀開源項(xiàng)目”的榮譽(yù)與他們的努力息息相關(guān)。
除了榮譽(yù),這個(gè)項(xiàng)目也給我?guī)碓S多其他收獲。第一是讓我意識到,復(fù)雜的功能往往是從最簡單的樣例慢慢拓展迭代而來,一蹴而就是不現(xiàn)實(shí)的。我們的參考實(shí)現(xiàn)前后就經(jīng)歷了好幾次大規(guī)模的重構(gòu),每次重構(gòu)之后再回過頭對比上個(gè)版本,都簡直如云壤之別。第二是在項(xiàng)目中有許多機(jī)會(huì)與專家進(jìn)行交流,這對于個(gè)人視野的拓展是大有裨益的。不管是線上社區(qū)互動(dòng),還是線下分享提問,將自己做的事情分享出去,在增強(qiáng)自信心的同時(shí)也學(xué)到了很多新的東西,幫助自己直面不足之處,進(jìn)而有動(dòng)力去做迭代和完善;最后是在這個(gè)過程中,我逐漸養(yǎng)成了從整個(gè)項(xiàng)目層面進(jìn)行獨(dú)立思考和計(jì)劃的習(xí)慣,這也將為我畢業(yè)后參加工作打下了良好的職業(yè)基礎(chǔ)。
啟智開源社區(qū)作為國家面向新一代人工智能開源共性技術(shù)的平臺,為大家提供了同等的機(jī)會(huì)進(jìn)行開源項(xiàng)目創(chuàng)作和交流。我很榮幸作為社區(qū)首批開發(fā)者,為社區(qū)建設(shè)貢獻(xiàn)一份力量并且獲得認(rèn)可。衷心希望未來自己有更多機(jī)會(huì)參與進(jìn)來,一起讓啟智社區(qū)越來越好,讓國內(nèi)人工智能開源生態(tài)越來越好。
作者:李克森