天天看點

螞蟻金服技術90後:從藝術轉投數學,還出版首本TensorFlow中文教材厚積而薄發丨他帶着第一本 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 資料科學家,帶領團隊建立用于多個物聯網領域的資料科學引擎進行條件和健康監控,同時建立公司的預測模型引擎,現已被用于航空、能源等大型機械領域。

本文中,唐源提到了諸多開源項目,為了友善大家學習,他特别整理了這些開源項目位址,本文篇幅所限,不做一一列舉,詳細可前往 他的個人部落格。

繼續閱讀