2020 年已經到來,第一批 90 後互聯網大軍也步入了而立之年,回首他們的來時路,那些熬夜奮戰的日夜,失敗後的堅守,不斷的創新與突破都成爲他們送給本身最值得回味的禮物。git
第三次 AI 浪潮下,AI 技術大軍應用而生,而 90後開發者在這波大軍中破竹而出,不管是國內外,仍是學術界與工業界,他們完成了本身從「新生代」迅速成長爲「中堅力量」的華麗變身。而螞蟻金服技術專家唐源就是這批大軍中的一員,也是「異軍突起」的一員。程序員
唐源,90後,從 6 歲到 17 歲一直在國內學習書法、美術、繪畫等藝術專業 11 年,18 歲留學到美國卻選擇了數學專業,期間接觸了編程,開啓 7 年算法與技術之旅,大學創業,多年來一直與開源結伴同行,現任螞蟻金服技術專家。github
時間回到 2016 與 2017 年。算法
2016 年,AlphaGo 與李在乭的一戰,讓 AI 成名。自此,國內開始涌現大批 AI、深度學習愛好者與學習者,可是,與國外相比,國內學習條件乃至中文版的學習課程與資源、專業圖書、都很是匱乏。編程
2017 年 2 月,第一本 TensorFlow 的中文教材《TensorFlow實戰》出如今你們的視野中,這本書就像給國內的學習者、開發者的「學中送碳」,理論結合大量實例代碼,成爲初學者的必備案牘之做。同時,這本書也得到了 Google 團隊內部及業內衆多大牛的強力推薦。架構
而唐源,就是這本書的核心做者。框架
本科學習期間,唐源就成爲創業公司 DataNovo 的核心創始成員,研究專利數據挖掘、無關鍵字現有技術搜索、策略推薦等。後來,進入美國 Uptake,擔任數據科學家,帶領團隊創建用於多個物聯網領域的數據科學引擎進行條件和健康監控,同時創建公司的預測模型引擎,現已被用於航空、能源等大型機械領域。less
如今,唐源任螞蟻金服技術專家,目前專一於創建 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 數據科學家,帶領團隊創建用於多個物聯網領域的數據科學引擎進行條件和健康監控,同時創建公司的預測模型引擎,現已被用於航空、能源等大型機械領域。
本文中,唐源提到了諸多開源項目,爲了方便你們學習,他特別整理了這些開源項目地址,本文篇幅所限,不作一一列舉,詳細可前往 他的我的博客。