一直以來,程序員這個職業(yè)被一部分人貼上了“青春”的標(biāo)簽,甚至在碼農(nóng)界,流傳著35歲不轉(zhuǎn)行,就是在等著被裁這樣危言聳聽的言論。事實(shí)上,35歲危機(jī)并不是程序員的專屬。絕大部分崗位都會出現(xiàn)這樣的窘境。只不過不同的人,做出的選擇不同,有些人到了這個年紀(jì)開始考慮轉(zhuǎn)行、轉(zhuǎn)崗,也有的人像我們本文的采訪對象王益這樣,選擇繼續(xù)深耕,并且在40歲的時候還樂在其中。
40 歲,寫代碼 30 年
對于螞蟻金服研究員王益而言,2019年是個頗有紀(jì)念意義的年份。今年他整40歲。從10歲開始,寫代碼整30年。
這30年來,他當(dāng)過“不務(wù)正業(yè)”的學(xué)生,創(chuàng)紀(jì)錄地在大一就考下系統(tǒng)分析員,“單槍匹”闖蕩過從國內(nèi)到硅谷的多家知名互聯(lián)網(wǎng)科技公司,和AI領(lǐng)域許多傳奇人物都有所交集。
不惑之年對于許多工程師來說,或許已是需要焦慮的年齡,但40歲的王益在螞蟻金服每天都過得很充實(shí):起床,自由泳一千米,然后去做他最喜歡的事——寫代碼和組織大家一起寫代碼。
2019年9月11日,在上海舉辦的Google開發(fā)者大會上,螞蟻金服研究員王益分享了新開發(fā)的分布式深度學(xué)習(xí)系統(tǒng)ElasticDL。這是他來到螞蟻金服的一年之中所做的第二個開源項目,主要用于大幅提升集群總體利用率以及深度學(xué)習(xí)團(tuán)隊的工作效能。之前開源的 SQLFlow系統(tǒng)在短短的幾個月之間,已經(jīng)在GitHub上獲得了三千多顆星星。
2019對于王益而言是個頗有紀(jì)念意義的年份,今年他整40歲,寫代碼整30年。
這聽上去是一件不可思議的事——30年前,上世紀(jì)的80年代末,他在沙上小學(xué),全城都很難找出一位能教編程的老師,個人電腦更是一個陌生名詞,一臺以蘋果2為原型、可以用BASIC語言編程的 “中華學(xué)習(xí)機(jī)”售價7000人幣,在當(dāng)時幾乎可以買下一套房子。
幸運(yùn)的是,王益在10歲那年得到了這樣一件貴重的禮物,從這臺學(xué)習(xí)機(jī)和一本BASIC語言教材開始,他開啟了與代碼結(jié)緣的人生。
“我那時不是個好學(xué)生,經(jīng)常受‘別人家的孩子’打擊,老師和同學(xué)都覺得寫代碼是不務(wù)正業(yè)。” 回想起30年來的經(jīng)歷,這位清華博士、足跡從國內(nèi)到硅谷歷經(jīng)多家知名互聯(lián)網(wǎng)科技公司的學(xué)霸笑談自己“活得比較任性”,“但我就是想做與眾不同的事。別人越說這樣不行,我就越想用這種方式證明自己。”
初中畢業(yè)那年的暑假,他用“中華學(xué)習(xí)機(jī)”和自己焊接的電路板,把自家的老式“威力牌”雙筒洗衣機(jī)改造成了自動洗衣機(jī)。同時,他用Apple BASIC語言和6502匯編混合編程,寫了人生中第一個游戲。
高中三年,其他同學(xué)努力備考,他卻加班加點(diǎn)自學(xué)了大學(xué)計算機(jī)系所有課程,隨后參加計算機(jī)水平考試,先后獲得了程序員、高級程序員、以及最高級別系統(tǒng)分析員資格。2018年,他獲得Google APAC Innovation Award。從不斷摸索代碼世界的少年時代,到專注于AI基礎(chǔ)架構(gòu)和系統(tǒng)開發(fā)的求學(xué)工作生涯,這份“任性”一直伴隨他走到今天。
“我經(jīng)常從零開始。選擇去做什么的一大標(biāo)準(zhǔn)是‘有意思’。”
相比于規(guī)劃一條穩(wěn)妥的職業(yè)發(fā)展道路,王益更愿意順應(yīng)自己強(qiáng)烈的好奇心,去選擇最困難但最有意思的探索方向。他在中國和美國互聯(lián)網(wǎng)公司都工作過,也分別在美國公司的中國分部和中國公司的美國分部工作過。他的足跡遍及國內(nèi)BAT三家。任性的是,每次跳槽, 他都從一個人coding一個創(chuàng)新項目開始,吸引同事們加入,從而組建團(tuán)隊。雖然2011年就在騰訊作為廣告系統(tǒng)技術(shù)總監(jiān),但是他從不在跳槽時要求帶何等規(guī)模的團(tuán)隊。
2014年,王益帶著妻子和兩個月大的女兒離開騰訊移居硅谷。“一切都?xì)w零了。工資減半。”他笑笑說。不過憑著多位學(xué)界和業(yè)界領(lǐng)袖的推薦,他很快就安頓下來,不到一年就開始在硅谷創(chuàng)業(yè),作為Head of Research Scienets 參與創(chuàng)建了AI創(chuàng)業(yè)公司 ScaledInference。這是一家人才濟(jì)濟(jì)的創(chuàng)業(yè)公司。人工智能行業(yè)的領(lǐng)袖人物、加州大學(xué)伯克利分校的Michael Jordan教授是這家公司顧問。陸奇曾代表微軟到訪,討論技術(shù)合作。“可惜我們不夠關(guān)注業(yè)務(wù)落地,做的不夠好。技術(shù)研發(fā)一定要有落地的能力。”事后,王益不無遺憾的說。
在加入螞蟻之前,王益在百度硅谷研究院工作,負(fù)責(zé)開源深度學(xué)習(xí)系統(tǒng)PaddlePaddle。在歷經(jīng)兩年的艱苦開發(fā),新一代技術(shù)Fluid開始系統(tǒng)地落地百度各個業(yè)務(wù)之后,他發(fā)起了他在 PaddlePaddle的最后一個子項目——一條太陽能驅(qū)動的無人駕駛船。這是一條雙體船,由他和五歲女兒的兩條劃艇構(gòu)成。船上的筆記本電腦運(yùn)行基于immitation learning的人工智能系統(tǒng),自動學(xué)習(xí)駕駛者的技巧。為了船體穩(wěn)定,他在自家?guī)炖锖附恿诉B接兩條劃艇的金屬框架。便于拆裝的結(jié)構(gòu),可以裝上他的皮卡,方便下水測試。
做出加入螞蟻金服的決定,也是出于同樣的理由——“有意思”。“這里的業(yè)務(wù)很新穎,對AI 有著更加多樣化的需求。”如何用AI解決金融行業(yè)的問題,是和他以往所面對的完全不同的全新挑戰(zhàn)。
SQLFlow:分析師與AI模型間的翻譯
加入螞蟻金服不久,王益就意識到自己之前的朦朧猜想越來越清晰地被驗證:和主要依靠流量與廣告賺錢的傳統(tǒng)互聯(lián)網(wǎng)公司不同,螞蟻金服不是純互聯(lián)網(wǎng)公司,它有獨(dú)特的商業(yè)模式和對于工具的獨(dú)到需求。
此前的十多年中,他的大部分經(jīng)歷是在傳統(tǒng)互聯(lián)網(wǎng)行業(yè)做搜索推薦技術(shù),這一類業(yè)務(wù)所需的模型總數(shù)比較有限,只需要算相關(guān)性的模型、排序的模型等,一個成熟的模型通常會有幾十上百人維護(hù),每年修改調(diào)整去提升性能。但在螞蟻金服,這種模式被顛覆了。因為金融行業(yè)的數(shù)據(jù)遠(yuǎn)比社交、電商和搜索引擎的數(shù)據(jù)要稀疏,很難完全靠機(jī)器來挖掘出規(guī)律,必須依賴金融專業(yè)分析師的智慧。分析師大量使用SQL語言來驗證想法,或者進(jìn)一步做探索,這些結(jié)論對金融業(yè)務(wù)非常關(guān)鍵。
每一位分析師平均每天要提交很多個AI任務(wù),這些任務(wù)對AI模型的需求各不相同,差異性特別顯著。但是,模型是建模團(tuán)隊用Python語言描述的,分析師們?nèi)绻{(diào)用模型,要么需要學(xué)習(xí)Python語言,要么需要專配一位工程師,效率難以顯著提高。
語言不通,所以需要翻譯,那么能否在SQL和Python之間也設(shè)立一個翻譯?
基于這樣的想法,王益和團(tuán)隊一起開發(fā)了SQLFlow,這個系統(tǒng)好比一個“翻譯機(jī)”,能將分析師們輸入的SQL命令翻譯成Python語言,這樣一來,分析師無需學(xué)習(xí)Python,使用SQL語言就能夠處理數(shù)據(jù)、訓(xùn)練AI模型,并使用訓(xùn)練好的模型來回答業(yè)務(wù)問題。
這套系統(tǒng)更重要的作用,是重新界定了分析師、建模團(tuán)隊和工具開發(fā)團(tuán)隊的責(zé)任,讓同一個機(jī)構(gòu)里的這三個工種有了清晰的分工,有效形成合力。
ElasticDL:一個“聰明”的智能學(xué)習(xí)系統(tǒng)
通過SQLFlow被調(diào)用的模型,會基于基礎(chǔ)架構(gòu)來進(jìn)行分布式執(zhí)行,這套分布式的智能學(xué)習(xí)系統(tǒng),就是剛剛開源的ElasticDL。ElasticDL基于TensorFlow2.0構(gòu)建,是面向未來的下一代技術(shù),其很重要的獨(dú)特之處,就在于它很“聰明”。
首先,它能和SQLFlow一起,補(bǔ)足簡短的SQL程序翻譯成復(fù)雜的Python程序的過程中所需的信息。根據(jù)深度學(xué)習(xí)模型的數(shù)學(xué)特性,它能夠決定用什么樣的方式來進(jìn)行計算,還能在計算過程中智能地決定一些參數(shù)。
其次,它的容錯和彈性調(diào)度機(jī)制,能讓集群的利用效率更高。用戶提交需求之后,不再需要“排隊”等待資源釋放才開始計算,計算會“插空”進(jìn)行,這樣閑置和等待時間更短,大幅度減少了浪費(fèi)在等待上的系統(tǒng)資源和人力資源。
在數(shù)據(jù)收集能力極大提升的今天,擁有能算“大”數(shù)據(jù)的能力,比算得快更為重要。這是王益一直未變的觀點(diǎn)。ElasticDL的開發(fā),著眼之處不僅是計算本身的提速,更是針對云計算時代中,數(shù)據(jù)量大且多人共用集群的特點(diǎn)而進(jìn)行的調(diào)度優(yōu)化。“等待的時間有時會占到60%-80%,如果不能有效減少這部分的浪費(fèi),只是提升計算速度的話,對整體效率的提升就是杯水薪。”王益說,但是ElasticDL的彈性調(diào)度能在資源不足的情況下,有多少就先調(diào)用多少,讓計算盡快啟動。
遠(yuǎn)看來,ElasticDL還將支持各種學(xué)習(xí)模式,以順應(yīng)金融行業(yè)對AI的多種需求。很多在傳統(tǒng)互聯(lián)網(wǎng)行業(yè)可有可無的訓(xùn)練模式,在金融行業(yè)都很有廣闊的應(yīng)用場景,比如保障數(shù)據(jù)安全的同時還能共享數(shù)據(jù)背后規(guī)律的共享智能,或者建立可以進(jìn)行各種大膽試驗的虛擬環(huán)境,這些面向未來的需求,在ElasticDL的設(shè)計之中也有所考慮。
對于一直在做AI基礎(chǔ)架構(gòu)的王益來說,對AI有著各種不同需求的金融行業(yè),是一片全新的馳騁疆場。無數(shù)新的問題等待他去嘗試,去尋找新的解法,讓他樂此不疲。
實(shí)踐出真知,無需等待理論完美證明
“數(shù)學(xué)模型和分布式架構(gòu)是互相影響的,只了解其中任何一面,在這個領(lǐng)域都做不好。要為深度學(xué)習(xí)的架構(gòu)去改數(shù)學(xué)模型,也要因為數(shù)學(xué)模型的數(shù)學(xué)特點(diǎn)去做架構(gòu)調(diào)整。”
站在今天回顧過去做AI基礎(chǔ)架構(gòu)的十多年,王益覺得這是自己所學(xué)到的最重要一課。
這一想法的首次驗證,是在他2009年離開Google進(jìn)入騰訊之后寫出的Peacock系統(tǒng)。和在Google所做的語義理解項目不同,這次他將算法和分布式架構(gòu)一起考慮調(diào)整,讓語義理解的規(guī)模擴(kuò)大了上千倍,后來集結(jié)成了論文發(fā)表在ACM Transactions on Intelligent Systems and Technology雜志上,廣為業(yè)界知曉。
2015年,他進(jìn)入百度硅谷參與語音識別項目Deep Speech 2,這一項目不僅被MIT科技評論評為 2016年全球十大科技突破之一,也成為他了解深度學(xué)習(xí)的一個契機(jī)。他一度堅持要有完美的理論論證才能進(jìn)入實(shí)踐驗證,因為深度學(xué)習(xí)的理論未經(jīng)嚴(yán)格推敲,他一直認(rèn)為只有統(tǒng)計學(xué)習(xí)才是“正道”。
在百度,王益獲得深度學(xué)習(xí)科學(xué)家徐偉的推薦,去負(fù)責(zé)深度學(xué)習(xí)平臺PaddlePaddle。在不斷探索解決實(shí)際問題的過程之中,他的想法改變了。
“并不一定先要有完整論證的理論才去進(jìn)行實(shí)踐,也可以先實(shí)踐,實(shí)踐出真知。實(shí)踐之后再總結(jié)提升為理論。”王益說,“這就像是在牛頓發(fā)現(xiàn)力學(xué)原理之前的幾千年前,人類就已經(jīng)利用杠桿原理修起了金字塔。”
Code Review:從最初的震撼到年的習(xí)慣
今年5月,SQLFlow宣布開源,之后僅四個月,ElasticDL也宣布開源,這在螞蟻金服的歷史上并不多,卻是王益的堅持。他認(rèn)為唯有開源才能保證信息透明,唯有讓代碼直接面對全社會,才能全方位的接受審視和檢驗,對寫代碼的人自身來說,也是一種自我約束。
“開源和code review不僅是個技術(shù)問題,更是管理學(xué)問題、社會學(xué)問題,關(guān)系到如何把大家組織起來變成更高效的團(tuán)隊。”王益說。
Code Review對他自己而言,也是人生中一段難以磨滅的經(jīng)歷。他用“最初的震撼”來描述12年前初出校加入Google中國時的體驗。當(dāng)時他已經(jīng)寫了18年程序,手握系統(tǒng)分析師資格,還特別研究過了Google的Code style,所以初次遭遇Code Review時并沒有太當(dāng)回事:“以為自己寫了這么多年程序,怎么都還行吧。”
但現(xiàn)實(shí)是感的:他在Google寫出的第一個程序,總共不過100行代碼,卻被來自美國的同事和好友Jerad提出了120行意。“當(dāng)時深受打擊,簡直覺得屈辱。”
他壓制了情緒,仔細(xì)去看那些意,這才發(fā)現(xiàn)每一條都真誠且很有幫助。“從那一刻起, Code Review成為了我們的工作方式。”每天和這些同事們一起coding,互相review,讓中國工程師們很快知道了應(yīng)當(dāng)關(guān)注哪些地方,應(yīng)當(dāng)如何溝通合作。因此,不管是騰訊的 Peacock,百度的PaddlePaddle新版本Fluid,還是螞蟻的SQLFlow 和ElasticDL都是王益先開發(fā)出原型,再吸引感興趣的同事一起來完善。
這種工作方式的影響一直延續(xù)到了今天,他也希望能夠以這種方式去影響更多的工程師。“搞技術(shù)必須實(shí)事求是。”王益說,代碼是工程師最好的名片,藏著掖著、互不交流,就無法帶來信賴、合作與提升。幫助大家了解和實(shí)踐code review,需要花費(fèi)大量的時間和精力。“白天弄管理,晚上寫程序”這是王益總結(jié)的在騰訊工作時的辦法。“后來在百度和螞蟻,我更刻意地專注做技術(shù)工作,確保精力更集中。”
這正是現(xiàn)在的互聯(lián)網(wǎng)科技公司的組織管理和人才選拔之中不可或缺的一課。在開源機(jī)制之中,每個人都會對自己的coding更加認(rèn)真,主動的人會脫穎而出,被動的人會自動淘汰,團(tuán)隊成員之間會自發(fā)地相互協(xié)同,互相認(rèn)同,找到溝通和合作的方式。
“現(xiàn)在技術(shù)領(lǐng)域的成果已經(jīng)很難靠單槍匹的個人英雄主義去取得,團(tuán)隊合作必不可少。希望用這種方式來找到開朗真誠的伙伴,一起去摘高處的果實(shí)。”王益說。
-
工程師
+關(guān)注
關(guān)注
59文章
1589瀏覽量
69217 -
SQL
+關(guān)注
關(guān)注
1文章
780瀏覽量
44806 -
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30262
發(fā)布評論請先 登錄
【華秋DFM】V4.6正式上線:工程師的PCB設(shè)計“好搭子”來了!
一技在手,醫(yī)療無憂!零基礎(chǔ)轉(zhuǎn)行高薪醫(yī)療維修工程師

(仰天長嘯)為什么受傷的總是硬件工程師...#MDD#MDD辰達(dá)半導(dǎo)體 #電子工程師

從“設(shè)計到生產(chǎn)”的蛻變:華秋DFM如何讓工程師們“輕松上陣”?



硬件工程師的終極幻想:焊板子焊上人生巔峰!#半導(dǎo)體器件 #硬件工程師 #MDD辰達(dá)半導(dǎo)體
嵌入式軟件工程師就業(yè)好不好?

不同時期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技



評論