個(gè)個(gè)尹
胡淵鳴——一個(gè)非凡的普通科研人。
2010年高一即獲得清華大學(xué)保送資格,2013年正式進(jìn)入清華大學(xué)姚班。本科期間,先后前往東京大學(xué)、斯坦福大學(xué)訪學(xué)。2017年,進(jìn)入麻省理工學(xué)院讀博。入學(xué)13個(gè)月后,拿到麻省理工學(xué)院碩士學(xué)位。
本科期間在微軟亞洲研究院實(shí)習(xí),這是微軟公司在美國(guó)本土以外最大的基礎(chǔ)研究機(jī)構(gòu)。從事深度學(xué)習(xí)和計(jì)算機(jī)圖形學(xué)研究,本科便有多篇論文中選CVPR(美國(guó)電氣和電子工程師協(xié)會(huì)國(guó)際計(jì)算機(jī)視覺和模式識(shí)別會(huì)議)、SIGGRAPH(計(jì)算機(jī)圖形學(xué)會(huì)議)等國(guó)際頂會(huì)。
事實(shí)上,上述短短幾行履歷遠(yuǎn)遠(yuǎn)不能概括出胡淵鳴。最近,讓胡淵鳴為大家熟知的是他的一篇文章——《99行代碼的“冰雪奇緣”》。99行代碼雖短,背后的技術(shù)故事卻很長(zhǎng)。故事要從物質(zhì)點(diǎn)法說(shuō)起,這是一種在影視特效領(lǐng)域廣受青睞的模擬連續(xù)介質(zhì)方法,《冰雪奇緣》就用到了它。早期,它運(yùn)行速度非常慢,比如《冰雪奇緣》里安娜過(guò)雪地的鏡頭,據(jù)說(shuō)要在集群上跑整整一個(gè)星期。大四畢業(yè)的暑假,胡淵鳴投入了移動(dòng)最小二乘物質(zhì)點(diǎn)法的研究,為的就是提高物質(zhì)點(diǎn)法的運(yùn)行速度和性能。
胡淵鳴的靈感是,用移動(dòng)最小二乘法統(tǒng)一仿射粒子細(xì)胞法中的仿射梯度場(chǎng)和物質(zhì)點(diǎn)法中的變形梯度更新兩種離散化。在賓夕法尼亞大學(xué)蔣陳凡夫教授的指導(dǎo)下,胡淵鳴等人完成了移動(dòng)最小二乘物質(zhì)點(diǎn)法方法的研究,不僅實(shí)現(xiàn)了新的應(yīng)力散度離散化,使物質(zhì)點(diǎn)法的運(yùn)行速度快了兩倍,還成功模擬了物質(zhì)點(diǎn)法此前并不支持的各種新現(xiàn)象。這項(xiàng)成果最終發(fā)表在SIGGRAPHP。
值得一提的是,雖然很多報(bào)道把重點(diǎn)放在了99行代碼上,但胡淵鳴真正令人崇拜的地方不僅于此。代碼行數(shù)只是表象,胡淵鳴令人稱贊的是創(chuàng)造了Taichi(太極)這個(gè)編程語(yǔ)言。相比TensorFlow(開放源代碼軟件庫(kù),用于進(jìn)行高性能數(shù)值計(jì)算)和PyTorch(開源的Python機(jī)器學(xué)習(xí)庫(kù),用于自然語(yǔ)言處理等應(yīng)用程序),太極的渲染速度分別比前者快了188倍和13.4倍,并且能夠模擬雪等物理流體,創(chuàng)造出類似《冰雪奇緣》中的魔法場(chǎng)景的場(chǎng)景。
毫無(wú)疑問(wèn),太極編程語(yǔ)言的工作量非常大。這是一個(gè)全新的系統(tǒng),項(xiàng)目早期要做的設(shè)計(jì)決策非常多,需要花費(fèi)大量的時(shí)間和精力。有一次,胡淵鳴連續(xù)在家寫代碼,最后,他實(shí)在受不了沒人說(shuō)話的生活,就去實(shí)驗(yàn)室找同學(xué)聊天,結(jié)果被同學(xué)調(diào)侃“身上‘長(zhǎng)蘑菇了”。
太極的編寫過(guò)程不容易。一開始,胡淵鳴低估了寫編譯器的工作量,沒有完成一個(gè)月寫出一個(gè)理想編譯器的設(shè)想。其中,因?yàn)榈谝淮螌懙木壒?,他缺乏設(shè)計(jì)匯編者的經(jīng)驗(yàn),還把IR(中間表現(xiàn)形式)設(shè)計(jì)錯(cuò)了,最后只好砍掉重來(lái)……正是他不厭其煩的改進(jìn)和堅(jiān)持,才有了現(xiàn)在Hierarchical SSA(一種分層靜態(tài)單賦值)的結(jié)構(gòu),使得很多優(yōu)化成為可能,促成了太極編程的誕生。
用太極語(yǔ)言編寫的模擬器大大簡(jiǎn)化了代碼,可微分彈性對(duì)象模擬器只用了110行代碼,而直接用CUDA(由NVIDIA推出的通用并行計(jì)算架構(gòu),該架構(gòu)使GPU能夠解決復(fù)雜的計(jì)算問(wèn)題)編寫則需要490行。同時(shí),太極的速度還很快,相比CUDA版本幾乎沒有什么損失。而且,神經(jīng)網(wǎng)絡(luò)控制器一般只需要幾十次迭代,即可完成優(yōu)化。
近年來(lái),Python這門計(jì)算機(jī)語(yǔ)言因?yàn)槿腴T方便,實(shí)用性高,熱度極速上升,不少人紛紛通過(guò)它開啟編程的大門??紤]到Python的這一特性,胡淵鳴轉(zhuǎn)變了原來(lái)要將太極做成一門單獨(dú)的編程語(yǔ)言的方向,而是把太極改成了pypi(Python軟件包索引)安裝包,讓太極能夠基于Python運(yùn)行,他還為此編寫了完整的使用教程。這些做法既體現(xiàn)了胡淵鳴縝密的思維,又進(jìn)一步地?cái)U(kuò)大了太極的使用范圍,降低了使用難度。
網(wǎng)友看了胡淵鳴的事跡后,不由感嘆道:“圖形+系統(tǒng)+編譯,真是創(chuàng)世的快樂(lè)?!边@個(gè)評(píng)價(jià)十分貼切,他也曾表達(dá)了自己在鉆研編譯器中獲得的快樂(lè)。每天對(duì)于太極編程語(yǔ)言相關(guān)問(wèn)題的思考,大大豐富了他自己的精神世界,把人世間的種種噪聲都隔絕了,這讓他的生活質(zhì)量有了很大的提高。
這個(gè)時(shí)代缺少學(xué)霸或科研人員嗎?或許并不是,比起學(xué)霸光環(huán),更難能可貴的是,在自己擅長(zhǎng)的領(lǐng)域,享受鉆研的樂(lè)趣。飽含一腔熱情并愿意靜下心來(lái)做真正有意義的事情,這正是胡淵鳴最讓人佩服的地方。
(王世全摘自《知識(shí)窗》2021年第1期)