螞蟻金服開源背後的「有意思」工程師 | 1024快樂

image.png

!important 但願咱們是最先給你祝福的朋友程序員

去年的1024,咱們回顧了第一代到第五代架構

去年的今天,咱們和你們分享了 SOFAStack 背後的這羣工程師。好比程立,花名魯肅,螞蟻金服 CTO。胡喜,螞蟻金服副總裁、副CTO。楊冰,螞蟻金服智能科技產品技術部總監。算法

也與你們分享了從第一代到第五代架構的進化歷程,詳解了 SOFAStack 走的這一條跟傳統金融行業不一樣的分佈式架構之路。要基於不可靠的硬件系統實現金融級的性能和可靠性,要應對支付寶這樣的超大規模互聯網金融應用,有不少難題要解決。螞蟻金服構建了一整套處理金融級交易的分佈式架構與平臺,在金融級的一致性要求和海量併發處理能力上達到了很好的平衡,並在快速容災恢復、彈性伸縮能力、多地多活高可用保證能力和按需供給的精細化資源調度能力方面沉澱了豐富的實踐經驗。sql

前往去年此刻的時光機:螞蟻金服自研架構SOFA背後的工程師|1024快樂編程

今年,SOFAStack 團隊在忙什麼呢?

近幾年來,「雲原生架構」的相關話題討論比較熱烈,咱們也相信這也將是金融 IT 架構的關鍵發展趨勢之一。IT 架構轉型毫不是一蹴而就的,積極探索和應用以「雲原生」爲表明的新興技術的同時,還需考慮與傳統模式和技術融合並存,沿着一條穩妥的可落地路徑進行創新變革,確保架構轉型的價值交付可以穩妥支撐甚至積極引領業務創新。安全

Service Mesh 是螞蟻金服下一代架構的核心,這一年,咱們在奔跑的火車上換輪子,將現有的微服務架構快速演進到雲原生架構。RPC、消息、DB、安全、運維等每個環節均充滿挑戰。架構

螞蟻金服每一年雙十一大促會面臨很是大的流量挑戰,在已有LDC微服務架構下已支撐起彈性擴容能力。當有多個大促分階段進行時,如何在架構上保障資源最大程度複用下降大促成本極具挑戰。指望在最小規模的資源集羣下可經過靈活的架構來支撐起快速的資源騰挪來達成多個大促鏈路最大化利用資源的目的。經過 Service Mesh架構的支持,基礎設施層在應用外具有更強的管控能力,經過流量的調撥,JVM 內存的動態 Swap等手段可使用技術手段達成節省資源的目的。併發

今年即將到來的雙十一,螞蟻金服這套 Service Mesh 將迎來第一次大考 — 雙十一實戰,也或許是業界第一個如此大規模的實戰,請持續關注本公衆號,咱們會逐步進行技術揭祕。框架

今天,咱們想介紹螞蟻金服開源背後的這位「有意思」工程師:

對於螞蟻金服研究員王益而言,2019年是個很有記念意義的年份。今年他整40歲。從10歲開始,寫代碼整30年。這30年來,他當過「遊手好閒」的學生,創紀錄地在大一就考下系統分析員,「單槍匹馬」闖蕩過從國內到硅谷的多家知名互聯網科技公司,和AI領域許多傳奇人物都有所交集。不惑之年對於許多工程師來講,或許已經是須要焦慮的年齡,但40歲的王益在螞蟻金服天天都過得很充實:起牀,自由泳一公里,而後去作他最喜歡的事——寫代碼和組織你們一塊兒寫代碼。

2019年9月11日,在上海舉辦的Google開發者大會上,螞蟻金服研究員王益分享了新開發的分佈式深度學習系統ElasticDL。這是他來到螞蟻金服的一年之中所作的第二個開源項目,主要用於大幅提高集羣整體利用率以及深度學習團隊的工做效能。以前開源的 SQLFlow系統在短短的幾個月之間,已經在GitHub上得到了三千多顆星星。運維

2019對於王益而言是個很有記念意義的年份,今年他整40歲,寫代碼整30年。這聽上去是一件難以想象的事——30年前,上世紀的80年代末,他在⻓沙上小學,全城都很難找出一位能教編程的老師,我的電腦更是一個陌生名詞,一臺以蘋果2爲原型、能夠用BASIC語言編程的 「中華學習機」售價7000人民幣,在當時幾乎能夠買下一套房子。分佈式

幸運的是,王益在10歲那年獲得了這樣一件貴重的禮物,從這臺學習機和一本BASIC語言教材開始,他開啓了與代碼結緣的人生。

「我那時不是個好學生,常常受‘別人家的孩子’打擊,老師和同窗都以爲寫代碼是遊手好閒。」回想起30年來的經歷,這位清華博士、足跡從國內到硅谷歷經多家知名互聯網科技公司的學霸笑談本身「活得比較任性」,「但我就是想作不同凡響的事。別人越說這樣不行,我就越想用這種方式證實本身。」

初中畢業那年的暑假,他用「中華學習機」和本身焊接的電路板,把自家的老式「威力牌」雙筒洗衣機改形成了自動洗衣機。同時,他用Apple BASIC語言和6502彙編混合編程,寫了人生中第一個遊戲。高中三年,其餘同窗努力備考,他卻加班加點自學了大學計算機系全部課程,隨後參加計算機水平考試,前後得到了程序員、高級程序員、以及最高級別系統分析員資格。2018年,他得到Google APAC Innovation Award。從不斷摸索代碼世界的少年時代,到專一於AI基礎架構和系統開發的求學工做生涯,這份「任性」一直伴隨他走到今天。

「我常常從零開始。選擇去作什麼的一大標準是‘有意思’。」

相比於規劃一條穩妥的職業發展道路,王益更願意順應本身強烈的好奇心,去選擇最困難但最有意思的探索方向。他在中國和美國互聯網公司都工做過,也分別在美國公司的中國分部和中國公司的美國分部工做過。他的足跡遍佈國內BAT三家。任性的是,每次跳槽, 他都從一我的coding一個創新項目開始,吸引同事們加入,從而組建團隊。雖然2011年就在騰訊做爲廣告系統技術總監,可是他從不在跳槽時要求帶何等規模的團隊。

2014年,王益帶着妻子和兩個月大的女兒離開騰訊移居硅谷。「一切都歸零了。工資減半。」他笑笑說。不過憑着多位學界和業界領袖的推薦,他很快就安頓下來,不到一年就開始在硅谷創業,做爲Head of Research Scienets 參與建立了AI創業公司 ScaledInference。這是一家人才輩出的創業公司。人工智能行業的領袖人物、加州大學伯克利分校的Michael Jordan教授是這家公司顧問。陸奇曾表明微軟到訪,討論技術合做。「惋惜咱們不夠關注業務落地,作的不夠好。技術研發必定要有落地的能力。」過後,王益不無遺憾的說。

在加入螞蟻金服以前,王益在百度硅谷研究院工做,負責開源深度學習系統PaddlePaddle。在歷經兩年的艱苦開發,新一代技術Fluid開始系統地落地百度各個業務以後,他發起了他在 PaddlePaddle的最後一個子項目——一條太陽能驅動的無人駕駛船。這是一條雙體船,由他和五歲女兒的兩條划艇構成。船上的筆記本電腦運行基於immitation learning的人工智能系統,自動學習駕駛者的技巧。爲了船體穩定,他在自家車庫裏焊接了鏈接兩條划艇的金屬框架。便於拆裝的結構,能夠裝上他的皮卡,方便下水測試。

作出加入螞蟻金服的決定,也是出於一樣的理由——「有意思」。「這裏的業務很新穎,對AI 有着更加多樣化的需求。」如何用AI解決金融行業的問題,是和他以往所面對的徹底不一樣的全新挑戰。

SQLFlow:分析師與AI模型間的翻譯

加入螞蟻金服不久,王益就意識到本身以前的朦朧猜測愈來愈清晰地被驗證:和主要依靠流量與廣告賺錢的傳統互聯網公司不一樣,螞蟻金服不是純互聯網公司,它有獨特的商業模式和對於工具的獨到需求。

此前的十多年中,他的大部分經歷是在傳統互聯網行業作搜索推薦技術,這一類業務所需的模型總數比較有限,只須要算相關性的模型、排序的模型等,一個成熟的模型一般會有幾十上百人維護,每一年修改調整去提高性能。但在螞蟻金服,這種模式被顛覆了。由於金融行業的數據遠比社交、電商和搜索引擎的數據要稀疏,很難徹底靠機器來挖掘出規律,必須依賴金融專業分析師的智慧。分析師大量使用SQL語言來驗證想法,或者進一步作探索,這些結論對金融業務很是關鍵。

每一位分析師平均天天要提交不少個AI任務,這些任務對AI模型的需求各不相同,差別性特別顯著。可是,模型是建模團隊用Python語言描述的,分析師們若是要調用模型,要麼須要學習Python語言,要麼須要專配一位工程師,效率難以顯著提升。

語言不通,因此須要翻譯,那麼可否在SQL和Python之間也設立一個翻譯?

基於這樣的想法,王益和團隊一塊兒開發了SQLFlow,這個系統比如一個「翻譯機」,能將分析師們輸入的SQL命令翻譯成Python語言,這樣一來,分析師無需學習Python,使用SQL語言就可以處理數據、訓練AI模型,並使用訓練好的模型來回答業務問題。

這套系統更重要的做用,是從新界定了分析師、建模團隊和工具開發團隊的責任,讓同一個機構裏的這三個工種有了清晰的分工,有效造成協力。

ElasticDL:一個「聰明」的智能學習系統

經過SQLFlow被調用的模型,會基於基礎架構來進行分佈式執行,這套分佈式的智能學習系統,就是剛剛開源的ElasticDL。ElasticDL基於TensorFlow2.0構建,是面向將來的下一代技術,其很重要的獨特之處,就在於它很「聰明」。

首先,它能和SQLFlow一塊兒,補足簡短的SQL程序翻譯成複雜的Python程序的過程當中所需的信息。根據深度學習模型的數學特性,它可以決定用什麼樣的方式來進行計算,還能在計算過程當中智能地決定一些參數。

其次,它的容錯和彈性調度機制,能讓集羣的利用效率更高。用戶提交需求以後,再也不須要「排隊」等待資源釋放纔開始計算,計算會「插空」進行,這樣閒置和等待時間更短,大幅度減小了浪費在等待上的系統資源和人力資源。

在數據收集能力極大提高的今天,擁有能算「大」數據的能力,比算得快更爲重要。這是王益一直未變的觀點。ElasticDL的開發,着眼之處不只是計算自己的提速,更是針對雲計算時代中,數據量大且多人共用集羣的特色而進行的調度優化。「等待的時間有時會佔到60%-80%,若是不能有效減小這部分的浪費,只是提高計算速度的話,對總體效率的提高就是杯水車薪。」王益說,可是ElasticDL的彈性調度能在資源不足的狀況下,有多少就先調用多少,讓計算儘快啓動。

長遠看來,ElasticDL還將支持各類學習模式,以順應金融行業對AI的多種需求。不少在傳統互聯網行業無關緊要的訓練模式,在金融行業都頗有廣闊的應用場景,好比保障數據安全的同時還能共享數據背後規律的共享智能,或者創建能夠進行各類大膽試驗的虛擬環境,這些面向將來的需求,在ElasticDL的設計之中也有所考慮。

對於一直在作AI基礎架構的王益來講,對AI有着各類不一樣需求的金融行業,是一片全新的馳騁疆場。無數新的問題等待他去嘗試,去尋找新的解法,讓他樂此不疲。

image.png

實踐出真知,無需等待理論完美證實

「數學模型和分佈式架構是互相影響的,只瞭解其中任何一面,在這個領域都作很差。要爲深度學習的架構去改數學模型,也要由於數學模型的數學特色去作架構調整。」

站在今天回顧過去作AI基礎架構的十多年,王益以爲這是本身所學到的最重要一課。

這一想法的首次驗證,是在他2009年離開Google進入騰訊以後寫出的Peacock系統。和在Google所作的語義理解項目不一樣,此次他將算法和分佈式架構一塊兒考慮調整,讓語義理解的規模擴大了上千倍,後來集結成了論文發表在ACM Transactions on Intelligent Systems and Technology雜誌上,廣爲業界知曉。

2015年,他進入百度硅谷參與語音識別項目Deep Speech 2,這一項目不只被MIT科技評論評爲 2016年全球十大科技突破之一,也成爲他了解深度學習的一個契機。他一度堅持要有完美的理論論證才能進入實踐驗證,由於深度學習的理論未經嚴格推敲,他一直認爲只有統計學習纔是「正道」。

在百度,王益得到深度學習科學家徐偉的推薦,去負責深度學習平臺PaddlePaddle。在不斷探索解決實際問題的過程之中,他的想法改變了。

「並不必定先要有完整論證的理論纔去進行實踐,也能夠先實踐,實踐出真知。實踐以後再總結提高爲理論。」王益說,「這就像是在牛頓發現力學原理以前的幾千年前,人類就已經利用槓桿原理修起了金字塔。」

Code Review:從最初的震撼到終年的習慣

今年5月,SQLFlow宣佈開源,以後僅四個月,ElasticDL也宣佈開源,這在螞蟻金服的歷史上並很少見,倒是王益的堅持。他認爲惟有開源才能保證信息透明,惟有讓代碼直接面對全社會,才能全方位的接受審視和檢驗,對寫代碼的人自身來講,也是一種自我約束。

「開源和codereview不只是個技術問題,更是管理學問題、社會學問題,關係到如何把你們組織起來變成更高效的團隊。」王益說。

Code Review對他本身而言,也是人生中一段難以磨滅的經歷。他用「最初的震撼」來描述12年前初出校⻔加入Google中國時的體驗。當時他已經寫了18年程序,手握系統分析師資格,還特別研究過了Google的Code style,因此初次遭遇Code Review時並無太當回事:「覺得本身寫了這麼多年程序,怎麼都還行吧。」

但現實是骨感的:他在Google寫出的第一個程序,總共不過100行代碼,卻被來自美國的同事和好友Jerad提出了120行意見。「當時深受打擊,簡直以爲屈辱。」

他壓制了情緒,仔細去看那些意見,這才發現每一條都真誠且頗有幫助。「從那一刻起, Code Review 成爲了咱們的工做方式。」天天和這些同事們一塊兒coding,互相review,讓中國工程師們很快知道了應當關注哪些地方,應當如何溝通合做。所以,無論是騰訊的 Peacock,百度的PaddlePaddle新版本Fluid,仍是螞蟻的SQLFlow 和 ElasticDL 都是王益先開發出原型,再吸引感興趣的同事一塊兒來完善。

這種工做方式的影響一直延續到了今天,他也但願可以以這種方式去影響更多的工程師。「搞技術必須實事求是。」王益說,代碼是工程師最好的名片,藏着掖着、互不交流,就沒法帶來信賴、合做與提高。幫助你們瞭解和實踐code review,須要花費大量的時間和精力。「白天弄管理,晚上寫程序」這是王益總結的在騰訊工做時的辦法。「後來在百度和螞蟻,我更刻意地專一作技術工做,確保精力更集中。」

這正是如今的互聯網科技公司的組織管理和人才選拔之中不可或缺的一課。在開源機制之中,每一個人都會對本身的coding更加認真,主動的人會脫穎而出,被動的人會自動淘汰,團隊成員之間會自發地相互協同,互相認同,找到溝通和合做的方式。「如今技術領域的成果已經很難靠單槍匹馬的我的英雄主義去取得,團隊合做必不可少。但願用這種方式來找到開朗真誠的夥伴,一塊兒去摘高處的果實。」王益說。

SQLFlow官網地址:https://sqlflow.org

ElasticDL開源地址:https://elasticdl.org

公衆號:金融級分佈式架構(Antfin_SOFA)

相關文章
相關標籤/搜索