螞蟻金服技術90後:從藝術轉投數學,還出版首本TensorFlow中文教材

2020 年已經到來,第一批 90 後互聯網大軍也步入了而立之年,回首他們的來時路,那些熬夜奮戰的日夜,失敗後的堅守,不斷的創新與突破都成爲他們送給自己最值得回味的禮物。

 

第三次 AI 浪潮下,AI 技術大軍應用而生,而 90後開發者在這波大軍中破竹而出,無論是國內外,還是學術界與工業界,他們完成了自己從「新生代」迅速成長爲「中堅力量」的華麗變身。而螞蟻金服技術專家唐源就是這批大軍中的一員,也是“異軍突起”的一員。

 

唐源,90後,從 6 歲到 17 歲一直在國內學習書法、美術、繪畫等藝術專業 11 年,18 歲留學到美國卻選擇了數學專業,期間接觸了編程,開啓 7 年算法與技術之旅,大學創業,多年來一直與開源結伴同行,現任螞蟻金服技術專家。

 

厚積而薄發

他帶着第一本 TensorFlow 的中文教材與大家見面

 

時間回到 2016 與 2017 年。

 

2016 年,AlphaGo 與李在乭的一戰,讓 AI 成名。自此,國內開始涌現大批 AI、深度學習愛好者與學習者,但是,與國外相比,國內學習條件乃至中文版的學習課程與資源、專業圖書、都非常匱乏。

 

2017 年 2 月,第一本 TensorFlow 的中文教材《TensorFlow實戰》出現在大家的視野中,這本書就像給國內的學習者、開發者的“學中送碳”,理論結合大量實例代碼,成爲初學者的必備案牘之作。同時,這本書也獲得了 Google 團隊內部及業內衆多大牛的強力推薦。

 

而唐源,就是這本書的核心作者。

 

 

本科學習期間,唐源就成爲創業公司 DataNovo 的核心創始成員,研究專利數據挖掘、無關鍵字現有技術搜索、策略推薦等。後來,進入美國 Uptake,擔任數據科學家,帶領團隊建立用於多個物聯網領域的數據科學引擎進行條件和健康監控,同時建立公司的預測模型引擎,現已被用於航空、能源等大型機械領域。

 

現在,唐源任螞蟻金服技術專家,目前專注於建立 AI 基礎架構和自動機器學習平臺,如 2019 年 10 月,螞蟻金服開源的 ElasticDL。AI 科技大本營近期再次採訪到了唐源本人,和他聊了聊多年來他在美國學習與工作,現加入螞蟻金服,一路走來的故事。

 

加入螞蟻金服,走出舒適區

在國內大環境中繼續積累沉澱

 

AI科技大本營:什麼時候加入螞蟻金服的?是什麼原因離開了上一份工作,選擇了螞蟻金服?

 

唐源:我是在2018年6月加入螞蟻金服的,離開上一份工作加入螞蟻金服主要有以下兩個原因。

 

首先,我想體驗一下國內的公司文化和技術氛圍,我是高三的時候就來美國做交換生,之後留在這邊讀大學。因爲大部分的專業知識以及工作經驗都是在美國積累的,所以一直對國內公司的文化和氛圍充滿好奇,螞蟻金服聯繫我的時候也是我第一次開始瞭解國內的公司。

 

其次,我也想在更大的環境裏從更多有經驗的同事那裏學習和積累。我在本科期間自己有過創業經歷,由於在美國的身份限制很遺憾沒能繼續,畢業後也進入了一家發展迅速的創業公司,體驗了一個公司從100多人發展到1000人的整個過程。我非常享受創業公司的文化氛圍,當時做的項目也在自己的推動之下在幾個大的場景落地,得到不少高層的支持,緊接着開始帶領自己的小團隊,目標是把這個項目應用到公司內部所有的應用和場景。

 

後來發現自己逐漸地把時間都花在和各個團隊溝通和策劃上面了,自己熱衷的寫代碼、玩技術的機會和時間卻越來越少。我當時想的是,過早地做管理可能會讓自己沒辦法沉下心來好好在技術上有沉澱,應該要多花時間在自己最喜歡的事情上,趁現在多在技術上有提升。

 

螞蟻金服聯繫我的時候也剛好是我想走出舒適區的時候了,我在螞蟻金服的團隊不乏從 Google、Facebook 等大公司來的很有經驗的同事,可以更多地從他們身上學習,踏踏實實地側重提升自己的技術能力。

 

AI科技大本營:目前在螞蟻金服主要負責哪方面的工作?這和之前有什麼不同嗎?有哪些變化?

 

唐源:目前在螞蟻金服主要在做 AI 基礎架構,支持螞蟻金服內部的各種業務算法在大規模的分佈式集羣裏的運行,圍繞 Kubernetes 以及各種機器學習框架來做系統上的優化。加入螞蟻金服之前我在 H2O.ai 主要負責開發開源大型機器學習平臺 H2O 以及自動機器學習平臺 Driverless AI,這裏面囊括了各種系統性能上的優化,優秀的機器學習算法和建模技巧,當時能做到自動化整個機器學習流程,在無人工干預的情況下能在 Kaggle 數據科學競賽中取得前10的成績。

 

加入螞蟻金服後,工作內容對我來說是有非常大的轉變,從算法建模工作逐漸轉到了搭建分佈式機器學習系統,走出了自己的舒適區,在更多方面得到了提升。由於自己之前在開源社區有不少積累,分佈式機器學習架構很多時候也是需要結合算法來優化的,所以這個轉變整體來說算是比較成功。

 

開源

是他不忘初心的堅持

 

2019 年是擁抱開源的一年,無論是國內外開源社區、開發者乃至企業,都發生了很大的變化。

 

據 GitHub 年度數據報告統計,在 GitHub 全球 4000 萬的開發者中,中國開發者無論從數量還是開源項目的貢獻上均已位列第二。並且,越來越多的中國企業正在國際開源項目及貢獻中扮演着重要角色,譬如阿里、騰訊、百度均已進入 GitHub 全球公司貢獻榜。

 

中國的活躍開源項目貢獻者,有 40%~50% 都是在過去一年裏加入的。開發者羣體中很多人都是 90 後,或者是高中生,對軟件開發有着非常強烈的興趣。

 

彼時,CSDN 曾對唐源進行過一次專訪:《掌握 Google 深度學習框架的正確姿勢——專訪 TensorFlow 貢獻者唐源》,瞭解到了那時他與衆多深度學習開源框架的故事。

 

作爲第一批走進開源社區的 90後,多年來,唐源都一直醉心於自己的開源的事業中。

 

他是 XGBoost 和 Apache MXNet 的 PMC 成員,TensorFlow、ElasticDL、以及 Kubeflow 等項目的 Committer,也是 ggfortify、metric-learn 等軟件的作者,曾因他對開源社區的貢獻而榮獲谷歌 Open Source Peer Bonus。

 

AI科技大本營:此前,你獲得了谷歌 Open Source Peer Bonus 獎,證明了你在開源工作上取得了成就與獲得的認同,你如何看待這個獎,對你後來的工作和想法產生了作用?

 

唐源:這個獎首先是由谷歌內部員工提名推薦,然後再經過內部審覈和討論得到最後的獲獎人名單的,我通過持續對 TensorFlow 的貢獻吸引到了他們的注意最後得到肯定,這是對我的一個很大的鼓勵以及對我的貢獻的認可。

 

緊接着,我也圍繞 TensorFlow 生態做了許多的工作,包括:我和 RStudio 合作的 TensorFlow in R,提供了非常友好的 API 讓 R 語言用戶能方便地使用 TensorFlow;TensorFlow I/O 支持 TensorFlow 從各種格式以及文件系統來讀寫數據;Kubeflow 支持在 Kubernetes 集羣上很方便地運行各種機器學習框架,包括 TensorFlow;ElasticDL 支持在 Kubernetes 集羣上運行 TensorFlow,並且支持容錯和彈性調度。這些工作很多都是社區、家人、以及公司的鼓勵和支持分不開的,在這裏由衷地感謝。

 

AI科技大本營:國內現在也有很多開發者積極投入到開源的工作中,從你個人多年的經歷而言,有什麼經驗可與大家分享嗎?

 

唐源:一開始我是因爲工作需要,經常對使用的軟件進行各種修修補補,逐漸也養成了一種看源代碼的習慣,對軟件的架構好奇心也越來越強,開始主動去了解某個功能是如何具體實現的,這個過程讓我受益良多。

 

對還沒有參與開源的朋友,我的建議是先從用戶做起,熟悉一個軟件的功能,遇到問題自己嘗試閱讀源代碼看看是不是能自己解決,如果對自己的解決方案不滿意可以和社區討論,多從用戶的角度思考是不是其它有價值的功能可以開發,並且多參與社區的討論,儘可能地幫助和回饋社區。

 

從個人的角度來說,參與開源能夠塑造個人品牌、認識各地的開發者、促進世界範圍內的合作、提升個人技術、思考、以及交流能力等等。從公司的角度來說,參與開源能夠提升社區影響力、引導社區發展、提升團隊整體能力、避免重造輪子、複用現有技術、以及鼓勵創新等等。我從參與開源軟件這個過程中獲得了許多幫助,學到了很多,認識了許多志同道合的人,我也希望通過我的貢獻來報答社區對我的幫助。我相信給予越多,獲得的回報也越多。

 

一個開源項目如果只有中文文檔的話那是無法推廣到世界範圍上去的,因爲大部分開發者都是至少會英語,中文對外國人來說是比較難學的。如果僅僅是在中文的文檔基礎上再補充英文文檔的話,也是不足以做到有很大的影響力的。一個有影響力的項目是要用長時間的維護來贏得用戶和社區的信任和支持的,我看到過很多中國開發者開源的項目都是項目一開源就放在 GitHub 上不管了,其實開源只是第一步而已,接下來要持續的維護項目、收集用戶遇到的問題和需求、組織社區會議、定期規劃項目的長短期目標等等。這樣可以吸引更多的人來參與開發與貢獻,長遠來看不僅僅項目會有更大影響力,還能形成更好的開源生態,用戶和開發者們一起在社區成長和學習,以後可以再回饋給社區。公司開源的項目也是如此,開源之後要儘早地將內部的會議和技術討論開放到社區,吸引更多的開發者參與到討論和決策中去。

 

AI科技大本營:加入螞蟻金服後,在開源方面的工作與身份,發生了哪些變化嗎?

 

唐源:加入螞蟻金服之後,除了自己在繼續保持和開源社區的交流和貢獻之外,也在公司以及老闆們的支持下開始負責推動團隊一起貢獻開源。國內的開源氛圍相比起美國來還沒有那麼活躍,所以需要花時間來宣傳開源的意義,建設團隊內部的開源文化,以及推進相關開源技術的複用。我們圍繞 Kubeflow 和 TensorFlow 兩個社區來展開貢獻,包括參加社區的會議、拉動跨公司的合作、在 GitHub 上討論新版本的設計、提交 bug fix、改進文檔等等,團隊裏不少成員都積極地參與了進來,貢獻的成果不僅在公司內部以及合作方能夠得到應用,同時也收穫了社區的認可和支持。

 

AI開發者大本營:如何評價這些改變?預料之中還是預料之外?

 

唐源:這是預料之外的,因爲我之前對國內公司的文化是完全沒有了解的,阿里巴巴有非常成熟和有特色的企業文化與價值觀,這和我呆過的美國初創公司是很不一樣的。非常感謝老闆們對我的支持和信任,讓我能有機會和動力在螞蟻金服帶動團隊一起貢獻開源,爲社區出一份力。雖然一開始參與的人還不是特別多,但是我相信他們會成爲一股開源的中堅力量,之後帶動更多的人蔘與進來。

 

AI科技大本營:目前,還在參與哪些開源項目的開發中?

 

唐源:我在 GitHub 上對我參與的開源項目和活動進行了簡單的總結,歡迎大家來支持我的開源工作:https://github.com/sponsors/terrytangyuan

 

可以說,唐源的整個青春時代都與開源社區和開源事業緊緊連在一起,現在他的開源生涯也和他一起正迎來開花結果的大好年華,亦如他所堅信的那樣:給予越多,回報越多。

 

回首來時路

從藝術到技術,是跨越也是自我突破

 

他談到自己對編程感興趣緣起本科期間一個項目,在項目中接觸到了MATLAB,開始學習各種編程語言,軟件工程課程。在數據挖掘課程上開始接觸機器學習,從而開始進入這方面的研究。

 

但唐源卻不是純正的工科計算機男出身。

 

AI科技大本營:之前學習藝術專業,是怎麼在留學時選擇了數學專業?這應該是讓很多非理科生都頭疼的一門學科?在過往中給你增添了哪些有趣的經歷?如果再讓你選擇一次,你想過自己會如何選擇嗎?

 

唐源:我是很小的時候就開始學習國畫和書法,之後一直在沿着美術這條路努力,開始打素描、速寫、水彩畫等美術功底,初三畢業的時候就跑去北京和準備高考的美術特長生一起培訓,當時可以說是對美術的興趣十足,但同時需要兼併學校的文化科目,和大家一起準備高考。

 

唐源初中時畫的石膏像素描

 

後來也是機緣巧合,我們學校的上一屆的赴美交換生來學校分享,我從小在小城市長大,高中才去了湖南長沙,這次的分享爲我打開了一個全新的視野,我當時感覺特別激動和新鮮,開始着重加強英語等方面的學習,開始了留美學習之旅。

 

我是理科生,其中學得最好而且最喜歡的科目是數學和物理,我就毫不猶豫地選擇了主修數學,數學是很多工程以及科學類的課程的基礎學科,想着自己可以先學着,然後如果發現更喜歡的科目再轉也不遲。

 

果不其然,在課程之餘和導師一起做項目時接觸了編程,由此開始對編程產生了特別濃厚的興趣,開始學習各種編程語言,也開始選修一些計算機課程。

 

如果再讓我選擇一次,我還是會這樣選擇,因爲主修數學爲我後來在機器學習領域的工作打好了紮實的基礎,同時數學作爲計算機視覺、機器學習、等等的基礎,隨着人工智能領域的發展,越來越的研究成果也運用在了藝術創作上,比如自動生成梵高風格的油畫、齊白石風格的水墨畫等等,這些應用都非常的有意思。

 

AI科技大本營:進入程序員這一行後,是否也猶疑迷茫過?如何化解的?

 

唐源:剛開始編程的時候,主要是運用在數值計算上,能夠利用計算機來解決很多自己平時手動解決數學問題繁瑣的過程,比如解微分方程。逐漸地我就開始對各種編程產生的應用軟件感興趣,開始自學做網頁、做手機App、寫小遊戲、等等。在大學最後一年連續幾個週末都在參加各個大學組織的 Hackathon,翻譯過來是黑客馬拉松,也就是整個週末不間斷地完成一個自己想的創新項目,雖然只收獲了一枚第一名的獎章,結識了不少熱愛創新熱愛編程的朋友,也感受了從自己一行行寫出來的代碼到能夠和觀衆進行互動的App的成就感。

 

受到編程和之前學美術的影響,我在後來也做了一些數據可視化的工作,比如 ggfortify 和 autoplotly 兩個開源項目,能夠自動將數據分析的結果進行二維或者三維的可視化,讓研究者和工作者能夠集中精力在他們的主要研究當中,從而在科學和技術上有着更快的實質性突破。

 

現在做分佈式機器學習系統,需要對算法和系統都有很深的理解,由於分佈式系統的複雜性,也經常遇到很多挑戰、比較棘手的 bug、等等。有時候問題無法復現,網上也沒有找到類似的解決方案,經常會卡在一個問題上好幾天,需要有足夠的耐心和細心來調試每個相關的系統組件,最後總是能解決的。雖然有時候可能會有小小的氣餒,但解決問題的那一瞬間充滿了成就感。

 

信仰、熱愛與家人

未來的程序員之路,不畏不憂

 

生活中,唐源有很多興趣愛好,同時他對工作與生活也有自己的規劃,有目標。他還是一個2歲可愛、機靈又帥氣男孩(豆仔)的父親,日常帶娃的他,還用兒子製作各種搞怪有趣的表情包,真是「不玩一下自己的兒子的程序員,不是敬業好爸爸」。

 

他是這麼描述自己的:”我喜歡游泳、騎車、滑雪和各種球類運動,比如乒乓球、羽毛球、籃球、和高爾夫,不過在這些愛好面前,我是業務選手。論專業能力,我更擅長各種溜娃,帶娃出去結交新朋友以及嘗孩子媽做的美食”。

 

(這碗糧,我先乾爲敬!)即使在短暫的接觸中,很容易就能感受到唐源的耐心、善解人意與風趣幽默,並且被他身上滿滿的幸福感與正能量所感染。

 

唐源和兒子的合照

AI科技大本營:你對自己的認知,工作和生活的規劃與目標,一直都是很清晰的嗎?

唐源:工作方面,一直都是比較清晰的,一步步走過來都算是跟着自己的興趣愛好,做的工作都是自己比較感興趣的,也在各個領域都有不少的探索,在這裏非常感謝我的公司以及老闆對我信任,能夠讓我自己選擇想做的工作。

 

生活和戀愛方面,我和我太太是在大一的時候認識的,那時候我們都被分到了一個比較小的校區,公共交通很不發達,我們慢慢就熟悉了,三年以後本科畢業就結婚了,之後我去工作,太太繼續讀碩士。一直以來我們有大概的方向,但也不敢說對於未來的計劃都很清晰。我們對未來生活的大方向和價值觀非常一致,在一些生活細節和性格方面也比較互補。

 

AI科技大本營:你認爲支持你走到現在最關鍵的三個因素?未來,你對自己的有什麼規劃,制定過哪些目標嗎?

 

唐源:三個支持我走到現在關鍵因素是:信仰 的帶領,對自己做的事情的 熱愛,以及 家人 的支持。

 

我是一名基督徒,我覺得提到自己人生的方向和規劃的時候,就不可避免要談一談基督徒是如何爲自己人生制定計劃的。聖經的箴言裏面有一句話是“人心籌算自己的道路;惟耶和華指引他的腳步”。我對於工作和家庭有很多具體的設想和計劃,也很期待之後實踐的過程,但是大的方向還是由神來帶領的。至於在開源社區的付出與貢獻,我覺得與個人興趣是分不開的,需要長期的堅持。另外我非常感恩太太一直支持我所喜歡的事業和興趣,也很感恩讀書時候父母對我的帶領和支持。他們一直都是我堅實的後盾。

 

AI科技大本營:大家都在談論,30+的程序員以後要如何發展?到了 35 歲以後,會面臨職業瓶頸期?你是如何看待這一問題的?是否也有過這些擔憂呢?

 

唐源:我覺得這個還是要看個人了,如果在這之前有很深的技術積累,也有精力的話,之後其實可以自由選擇是否繼續專注寫代碼或者做管理,做管理也是個不錯的選擇,可以帶動更多人一起做事情,更快更好地做出自己期待的產品。

 

我在這方面倒是沒有太多的擔憂,可能是還沒到那個年紀還感受不到這些吧,不過在開源社區有不少朋友都是年紀比較大還在繼續寫代碼的,比如 Python 語言的創始人 Guido van Rossum 60多歲了還在努力爲 Python 社區做貢獻,再比如說日本的 Masako Wakamiya 60 多歲的時候纔開始接觸電腦,到了80多歲了還在寫手機遊戲,所以只要自己喜歡,身體也能支撐的話,什麼年紀都是能寫代碼的。再說每個人追求的東西不一樣,不一定都是想要一直往上晉升的,晉升後的壓力和工作內容也不一定適合每個人,所以這些最好是順其自然、水到渠成比較好,“職業瓶頸期”這個說法是不一定適用於每個人的。

 

AI科技大本營:前一段時間,大家都在討論和回首「2017→2019」,在這幾年的經歷中,有什麼是讓你印象深刻的嗎?可以與大家分享讓你記憶深刻的故事與感想?

 

唐源:過去這兩年體會比較深的就是有了寶寶加入我們這個小家庭以後,我一直在學習平衡家庭和工作的功課。我的感受是在平衡工作與陪家人的時間這方面是很需要智慧的,我還在學習中。自從寶寶出生以後,我和太太感受到了養寶寶的不易,家裏沒有長輩長期幫助我們,所以很多事情都是親力親爲。在寶寶一歲以前我和太太經常因爲照顧寶寶非常疲勞,不過能夠看着寶寶每天的變化也是非常驚喜的,寶寶給我們帶來的快樂也是工作和其他不能給予的。有了寶寶讓我的工作和生活更豐富,也鼓勵我更認真地做自己喜歡做的事。這個過程讓我深刻體會到苦難是化了妝的祝福,我們相信孩子是來自上帝的恩賜,藉着經歷的辛勞得到了更大的祝福。

 

最後,附上我們全家去迪士尼玩的照片:

 

 

採訪嘉賓:唐源,現任螞蟻金服技術專家,目前專注於建立 AI 基礎架構和自動機器學習平臺。一直積極參與開源軟件的開發,是多個開源軟件的作者,XGBoost 和 Apache MXNet 的 PMC 成員, TensorFlow、ElasticDL、以及 Kubeflow 的 Committer。同時也是暢銷書 《TensorFlow實戰》的作者,這本書是第一本 TensorFlow 的中文教材,並且已被翻譯成多種語言。

 

曾在本科學習期間成爲創業公司 DataNovo 的核心創始成員,研究專利數據挖掘、無關鍵字現有技術搜索、策略推薦等。美國 Uptake 數據科學家,帶領團隊建立用於多個物聯網領域的數據科學引擎進行條件和健康監控,同時建立公司的預測模型引擎,現已被用於航空、能源等大型機械領域。 

本文中,唐源提到了諸多開源項目,爲了方便大家學習,他特別整理了這些開源項目地址,本文篇幅所限,不做一一列舉,詳細可前往他的個人博客。 
發佈了138 篇原創文章 · 獲贊 611 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章