微博技術大V老師木:軟件平臺是深度學習計算力突破的關鍵
作者: 吳少杰? Tina ? 陳思
在知乎上,“老師木的機器學習水平怎么樣”的問題,被瀏覽了3.7萬次。雖然關注者眾,卻不少評論他線下實際“為人低調”。
同時有人稱他是“微博大V老師木“,沒錯,作為一個技術人,他的微博粉絲有5.8萬。老師木說這個影響力“還太小”。
有人關心他為什么做得好好的要從微軟亞洲研究院離職,更有人關心老師木為啥要創業。
老師木,真名袁進輝。讀書時成績一直優異,本科后保送清華大學直博生,師從人工智能領域張鈸院士。期間多篇論文在國際頂級會議上發表,在競爭激烈的國際技術評測(TRECVID)中連續多年名列第一。博士后出站后,于2011年入職網易有道。2012 年作為早期成員加入360搜索創業團隊,一年之后,產品上線成為國內市場份額第二的搜索引擎。2013年,加入微軟亞洲研究院(MSRA),主要從事大規模機器學習平臺的研發工作。
從博士后到第一次創業,是從學術研究人員轉型成為工程師;進微軟亞洲研究院,則又重回到了學術道路。在MSRA期間,專注于研發大規模機器學習平臺,以出色的科研和工程綜合能力,發明了世界上最快主題模型算法LightLDA及分布式訓練系統:只用幾十臺服務器就能完成之前需要數千服務器才能完成的訓練任務?!癓ightLDA 的確是迄今為止,我做出來最有影響力的工作。人常說,評價一個學者水平高低不是看成果多少,而是看他能到達的最高水平,可以說這項研究讓我躋身于世界一流研究人員的行列”。
MSRA 被稱作中國IT屆的黃埔軍校,精英薈萃 ,并且老師木的成就也開始受到各界的認可,但是他卻出人意料的放棄了MSRA的優厚工作,走上了創業的路途,更是參與到深度學習框架這種戰略級產品競爭中。眾所周知,很多大公司都出有自己的深度學習框架,Google的TensorFlow,微軟CNTK, Amazon 的MxNet,Facebook 的Caffe2等,并且都在努力的建立生態。以老師木的視角,他是如何看待這些框架?我們從深度學習技術和框架、LightLDA兩大方向和老師木進行了一次深度訪談。
關于創業
Q:為什么你放棄MSRA的優厚工作去創業?
老師木: 創業者一定有一個或大或小的愿景,或者說使命感,未來的世界應該是什么樣的,怎么努力促使愿景實現。 我的愿景是: 人工智能技術賦能各行各業,推動人們工作效率和生活質量更高,把人類從機器擅長的工作中解放出來,讓人類去做更需要創造力的事。在這種使命驅動下,首先選擇做什么事最有利于這個愿景實現,其次選擇做事的形式。要選能突破自我,能最大化創造價值的事和形式。
Q:怎么看待人工智能的市場潛力?
老師木: 首先,互聯網行業已經充分驗證了數據驅動的業務模式。其次,互聯網行業之外的存量業務有顯著的人工智能技術紅利可吃,或者剛剛嘗到人工智能技術的甜頭,或者是尚未開墾的處女地,僅僅把人工智能技術引入已有業務,就能獲得競爭優勢,甚至帶來質的飛躍。最后,人工智能技術革命會催生一些新的產業,譬如自動駕駛,精準醫療等。據此,有人認為這次由深度學習引發的大潮可能是第三次工業革命。
Q:深度學習在業界有哪些靠譜應用?
老師木: 每個高商業價值的互聯網應用背后都有深度學習的身影,搜索引擎,廣告,推薦引擎,用戶畫像,社交媒體,共享經濟等等。人類智能可概括為感知,決策和控制三方面,有監督深度學習方法最先在感知類型的任務(圖像視頻,語音,語言的理解)中取得成功,譬如安防,醫學影像,色情信息過濾,語音助手,機器翻譯等都已經商用落地。強化學習在決策和控制方面也取得很多成果,主要是機器人自動控制,自動駕駛,處在快速發展中。
Q:深度學習在技術上存在什么瓶頸?最可能在哪里獲得突破?
老師木: 先分別說有哪些關鍵問題。在算法和理論方面,目前有監督學習應用最成功,各行各業積累了大量的無標簽的數據,怎么利用上無標簽或弱標簽的數據?深度學習在感知(Perception)類型的任務上非常成功,怎么與認知(Cognition)方法(符號推理)結合形成最終決策?在理論上如何理解深度學習這么驚人的效果,怎么在理論指導下去設計模型,而不是靠ad-hoc經驗試?在計算效率方面,服務器端主要考慮擴展性,怎么能讓一批高吞吐協處理器協同解決一個大型任務時總體利用率最高,在終端上則主要是考慮低功耗實現,能否同時實現易用性和高效性。在應用方面,主要是在一些高商業價值的問題上能否從技術上打通達到可用程度,AlphaGo 非常成功,但商業價值還不明確,在殺手級應用如自動駕駛,精準醫療,自動化交易等方向上取得成功,更值得期待。
理論和算法研究上的突破通??捎霾豢汕螅y預測,而且是否真的突破最終也要落實到實際應用中去評判。在計算力和應用上的突破確定性更高一些。我們是瞄準了計算力這個方向的商機,一會兒可以深入探討下這方面的問題。某些垂直應用如自動駕駛方向聚集了大量資金和人才,這方面的突破希望也很大。
Q:為什么計算力會成為深度學習的一個突破方向?
老師木:首先 ,計算力是極其關鍵的一項支撐技術。最近發生的人工智能革命通常被認為是三駕馬車驅動,數據,算法和計算力。與上世紀九十年代相比,深度學習在算法原理上并無二致,在數據和計算力方面進步更大,各行各業積累了大量的優質數據,GPU 作為新的計算手段引爆了此次深度學習的熱潮。
其次 ,計算力方面還有現成的紅利可吃,相同的算法,如果能用上更多的數據,或者用更大規模的模型,通常能帶來效果的顯著提升,能不能做的更大取決于計算力的水平。
再 次 ,算法和原理的研究進展依賴于計算能力,好的計算力平臺可以提高算法和原理研究的迭代速度,一天能實驗一個新想法就比一星期才能實驗一個新想法快的多。有些理論問題本身是一個大規模計算問題,譬如神經網絡結構的自動學習等價于在一個超大規模假設空間的搜索問題,沒有強大計算力的支持就只能停留在玩具數據上。深度學習是受生物神經網絡啟發而設計出來的,現在人工神經網絡的規模還遠遠小于人腦神經網絡的規模,人腦有上千億神經元細胞,每個神經元平均有成千上萬的連接。
最后 ,如何在低功耗約束下完成高通量的計算也是制約了深度學習在更多終端上應用的一大因素。
Q:計算力具有什么樣的商業價值?
老師木: 一方面,計算力的商業價值體現在它是數據驅動型公司的大部頭營業支出(硬件采購,人力成本等)。數據驅動型業務的完整鏈條包括數據收集,預處理,深度分析和在線預測,無論是私有部署還是上公有云,建設高擴展性的基礎設施等支撐技術,都是一筆不可忽視的開銷。另一方面,計算力也是數據驅動型公司獲得競爭優勢的關鍵,人工智能可提高公司業務效率,而計算力又可提高人工智能的效率。目前,圍繞著計算力已經出現了諸多成功的商業模式,譬如公有云,面向私有部署的商業技術服務,深度學習加速器(GPU,DPU)等。
Q:計算力在技術上有哪些瓶頸?
老師木: 從硬件看,我們現在使用的都是馮諾依曼結構的計算機,它的主要特點是計算單元和存儲單元分離,主要瓶頸表現在摩爾定律(Moore’s law)的失效和內存墻(Memory wall)問題上??朔柖傻闹饕緩绞窃黾又醒胩幚砥魃霞傻暮诵模╟ore)數量,從單核,多核發展到現在眾核架構(GPU, Intel Xeon Phi),但芯片的面積及功耗限制了人們不可能在一個處理器上集成無窮無盡個核心。內存墻的問題是指內存性能的提升速度還趕不上CPU性能的提升速度,訪存帶寬常常限制了CPU性能的發揮。純從硬件角度解決這些瓶頸問題,一方面要靠硬件制造工藝本身的發展,另一方面可能要靠新型的計算機體系結構來解決,譬如計算和存儲一體化的非馮諾依曼結構計算機。除了高通量的計算,在電池技術沒有大的突破的前提下,終端應用場景(物聯網,邊緣計算)里低功耗也是計算力的一項重要指標。當前,深度學習專用硬件創業如火如荼,有可能會被忽視的一點是: 對突破計算力瓶頸,軟件至少和硬件一樣關鍵。
Q:為什么軟件會成為計算力突破的關鍵?
老師木: 計算力的基礎設施要滿足上層用戶對易用性,高效率,擴展性的綜合需求,僅有硬件是不夠的。一方面,數據科學家和算法研究員不像系統研發工程師那樣深刻立刻硬件的工作機理,不擅長開發釋放硬件計算潛能的軟件,對數據科學家最友好的界面是聲明式編程,他們只需要告訴計算力平臺他們想做什么,具體怎樣算的快要由軟件工具鏈來解決。另一方面,盡管單個眾核架構的協處理設備(如GPU)吞吐率已遠超CPU,但出于芯片面積/功耗等物理限制,任何一個單獨的設備都無法足夠大到處理工業級規模的數據和模型,仍需由多個高速互聯的設備協同才能完成大規模任務。出于靈活性需求,設備之間的依賴必定由軟件定義和管理,軟件怎樣協調硬件才能提高硬件利用率和釋放硬件潛能極具挑戰,至關重要。在相關領域,軟件定義硬件已是大勢所趨:上層軟件決定底層硬件的發展方向,底層硬件要取得成功離不開完善的上層軟件生態。
Q:業界已經有很多軟件平臺,為什么要再打造一個?
老師木 :用戶選擇眾多,但仍有重要需求未被滿足,深度學習框架技術演化仍未收斂。 深度學習框架一定會出現Hadoop那樣具有市場支配地位的產品,也就是所謂的事實工業標準,而現在還沒有任何一個軟件平臺達到這種地位。 工業標準級的平臺不僅要解決眼前的需求,更要面向未來?,F在的確有一些知名的軟件平臺,但業界還有相當一部分重要需求沒有被滿足。比如,現有技術方案對于單設備或多設備數據并行這種簡單場景的支持已經非常優秀,但在模型更大或者神經網絡拓撲更復雜時,通用框架的易用性和效率都大打折扣,有這種需求的工業級應用只好去用定制的HPC方案(譬如百度的DeepSpeech)。問題的根源是,設備之間互聯帶寬遠低于設備內訪存帶寬,這是和傳統CPU 上內存墻(Memory Wall)類似的難題。我們團隊經過艱苦卓絕的努力,探索一條走向通用解決方案的技術路徑。沿這個思路開發的軟件平臺,有望既享受軟件的靈活和便利,又享有專用硬件的高效性。 我們堅信,通用的解決方案是 深度學習平臺 技術收斂的方向,只有 這種 通用的解決方案才 是深度學習平臺的最終形態 。
Q:能說說你們產品的主要技術特點是什么嗎?
老師木: 深度神經網絡和人腦信息處理本質數據流計算,信號的傳播即計算,然而當前主流的底層硬件都是馮諾依曼結構。純硬件實現的數據流計算機還不現實,現在必須依賴深度學習軟件平臺來完成這樣一個翻譯或者映射的過程:從數據流表達到馮諾依曼結構上的指令序列。 軟件平臺最終價值體現在易用性和高效性。 易用性,要支持用戶能夠使用最自然的表達方式來描述各種神經網絡計算的需求;高效性,對所支持的任何一種上層需求,都能基于通用硬件資源表現出專用硬件的那種效率。我們的產品開創了一種和現有深度學習框架截然不同的技術路線,細節上表現出來靜態編譯,全鏈路異步,去中心化,流式計算等特點,我們認為這是深度學習基礎架構實現易用和高效的必由之路,是深度學習框架技術收斂的方向。
Q:長江后浪推前浪,這樣一個先進的技術架構生命力會有多久?
老師木: 首先,我們可以探討一下深度學習的范式還有多久生命力,畢竟技術架構應需求而生??梢詮倪@幾方面看:從數據流計算模型是生物體采用的信息處理機制,是人工智能的效仿對象;人工神經網絡已經在多個領域取得成功,而且深度學習本質上還是統計學習理論,利用算法在數據種挖掘統計規律性,這種學習機制的本質不會變化;深度學習算法便于利用并行硬件的威力,算法和硬件的天作之合,還看不出取代它的必要。其次,從計算機體系結構及硬件演化方向上看,軟硬件結合的數據流計算機代表著突破摩爾定律和內存墻限制的方向。
Q:是不是只有大公司才需要這樣的基礎設施?
老師木: 并不是。目力所及,這樣的基礎設施已經不是大公司的獨享的專利,擁有數十臺服務器的中小企業,大學研究院所比比皆是。數據驅動是一種先進的生產力,所有行業最終都會變成數據驅動,每個行業的每個公司的數據都在積累,每個公司對數據分析的需求都在進化,從淺層的分析到深度分析,這個大趨勢呼之欲出不可逆轉。十年前,會有多少公司需要Hadoop,現今幾乎所有的公司都要用到Hadoop。歷史一再證明,無論計算能力發展到多強大,應用總能把它用滿。多年以前,有人還覺得640K內存對于任何人來說都足夠了,今天64G的內存都開始捉襟見肘,一輛自動駕駛測試車每天收集的數據達數TB之多。從來不是強大的計算力有沒有用的問題,而是計算力夠不夠用的問題。
Q:深度學習框架競爭很激烈,而且看上去都是業界巨頭在玩。
老師木: 是的。一個深度學習框架一旦像Hadoop那樣成為事實工業標準, 就占據了人工智能各種關鍵應用的入口 ,對各類垂直應用,基于私有部署的技術服務,公有云上的AI 即服務業務,甚至底層專用硬件市場都有舉足輕重的影響。它的角色就像互聯網時代的瀏覽器,移動互聯網時代的安卓操作系統一樣,是戰略級產品,業界巨頭誰都不想讓給他人也就不奇怪了。目前,大公司出品的比較知名的框架有Google的TensorFlow,微軟CNTK, Amazon 的MxNet,Facebook 的Caffe2, PyTorch,國內百度的PaddlePaddle等。
Q:為什么用創業的方式做這樣一件事?
老師木: 這種事既有技術攻關上的挑戰,也有資源組織上的挑戰。這就需要科研院所那種人才密集度,又需要公司的組織支持。我既有在大公司工作的經歷,也有兩次創業的經歷,個人理解, 創業是社會資源組織和分配的一種優秀機制,能最大化這項事業的成功率 。首先,創業是社會鼓勵創新和承擔風險的一種資源分配形式,有潛力的創業團隊能得到所需要的資源(資金和人才),同時有高度靈活的機制,在大公司,未必是最適合做這項事業的人來承擔這樣的項目。其次,一項充滿挑戰的事業需要具有聰明才智的人以持久的熱情投入其中,創業公司那種公平合理的利益分配機制才能最大激發成員的主觀能動性,為業界做出實質貢獻的人也應該得到回報。
Q:創業公司做這樣一件事看上去很不可思議。
老師木:有很多大公司加入這場競爭,說明存在真實的需求,而且市場容量足夠大,看上去創業公司做這樣的 產品 非常難,實際上大公司 做也是同樣地 難。 深度學習框架的用戶是開發者(developer),也就是常說的To developer,要把這樣一件產品做成功,被業界廣為采用,關鍵看兩點:
首先 ,這種深度學習框架是技術密集型產品,一定要做到最廣泛的滿足實際需求,而且在某些方面要有不可替代的優勢,有突出的長板。
其次 ,要形成生態,具有完善的社區支持,做到沒有明顯的短板。一個組織只要具備實現這兩點目標的要素,就有機會,而不在于那是小公司,還是大公司。
事實上,在開源軟件范圍競爭還是非常公平的, 原來名不見經傳的人開發出的軟件的確好用就能火,大公司開發出的軟件質量不行也沒人用 ,最終靠產品質量說話。現在,創業公司聚集了業界最優秀的一批人,聰明,更重要的是有野心(進取心)。當然,對創業公司來說,不僅要取得產品的成功,還要取得商業上的成功,讓所有參與這項事業的人拿到現實的回報,公司自身也獲得更充足的資金支持投入再生產,做出更優秀的產品。大公司在開源產品的商業化上更從容一些。 個人觀點,很多大公司與你競爭不可怕,更可怕的是 面對 很多創業公司 的 競爭。 最終結果取決于產品質量。
Q:如何取得商業上的成功?只有好的技術也可能賺不了錢。
老師木: 取得商業上的成功是創業公司的最終追求,我們也一樣。我的理解,這涉及兩個“價值”問題。
第一,我們在做的事是否為用戶創造了價值,我堅決信奉 create value, money follows;
第二個是回歸商業價值,在為用戶創造價值的前提下,我們需要探索出一條雙贏的利益分配機制,把用戶轉化成客戶。
現階段,我們聚焦在解決第一個問題,打造出解決用戶需求和痛點的產品:深度學習平臺,不貪大求全,只追求把整個鏈條中的那最關鍵一環打造到極致。這是我們這個團隊在人工智能大潮中參與頂端競爭的切入點,在我們眼里是那個撬動地球的杠桿支點。從為用戶創造價值這個角度切入能最大化實現商業目標的成功率,而且有可能把我們推舉到比其它選項要高的多的高度。微軟,谷歌,英偉達,甲骨文,華為這樣偉大的公司都是因為有了創新的產品才形成了偉大的商業公司。我們對商業模式的各種選項都持open態度,不排斥和高商業價值的垂直場景結合。
Q:您們的深度學習平臺第一版預計什么時候公測?需要從哪些方面準備?
老師木: 系統主體開發已經完成,目前處在內測階段,計劃年底時開源。開源之前需要從以下方面做充分準備:第一,產品功能完整性,要支持主流的深度學習模型,譬如CNN/RNN/LSTM , 支持圖像,語音和語言經典應用;第二,驗證高效性,在業界公認的大規模評測中表現出效率優勢,給出具體技術指標,如在多大規模上跑到什么水平的加速比,設備利用率等等;第三,打磨易用性,和上下游工具,和已有深度學習框架的兼容性,以及文檔建設等等。我們團隊先從技術方面打好一個底子,當用戶想為這個項目做貢獻時,可以更容易加入進來。
Q:您們研發深度學習平臺會兼容哪些芯片?支持什么操作系統,支持 Linux, Windows, Android 和IOS嗎?
老師木: 目前我們聚焦在服務端的訓練場景,在這種場景下,GPU是最經濟的選擇,所以目前只支持純CPU或CPU+GPU的異構集群,如果未來硬件市場發生變化,我們也可以支持其它芯片。服務器上主要操作系統是Linux和Windows,所以目前只支持這兩種。終端的應用場景主要是在線推理(inference),我們團隊目前沒有投入。
關于LightLDA
Q:LightLDA是您的代表作之一么?能給大家介紹下這個項目的一些情況么?
老師木: LightLDA 的確是迄今為止我做出來最有影響力的工作。人常說,評價一個學者水平高低不是看成果多少,而是看他能到達的最高水平,可以說這項研究讓我躋身于世界一流研究人員的行列。首先,算法結果是一流的,LightLDA是當時業界最快的訓練Latent Dirichilet Allocation (LDA) 主題模型的算法,它把單個詞采樣降低到O(1)復雜度。其次,系統實現是一流的,我們僅用數十臺服務器,完成之前成千上萬臺服務器才能做的事。LightLDA和許多其它優秀科研成果一樣,是集體努力的結晶。那個時候,CMU的邢波教授(Eric Xing)在MSRA 任顧問,微軟團隊和他領銜的Petuum團隊合作達成此項成果,論文發表在WWW 2015,系統代碼在Github開源,也成功應用于微軟搜索廣告和情景廣告產品中。
主題模型特別是LDA是廣告系統和推薦系統中的關鍵組件,據說“Google AdSense 背后廣告相關性計算的頭號秘密武器Google Rephil ” 就是一個巨大規模的主題模型。大約三四年前,微軟很多產品想用類似的技術,然而并沒有大規模主題模型的訓練系統。有一天,主管這個領域的副院長馬維英(現今日頭條副總裁)和我討論時,說起這件事,產品部門經常問他的團隊有沒有這樣的解決方案,問我愿不愿意干。恰好那時邢波教授也開始做MSRA的顧問,邢教授的團隊在這方面有很積累,微軟正好可以和他在CMU的團隊合作研發大規模主題模型訓練技術,雙方一拍即合。當時,從公開渠道能了解到,為解決工業級需求,訓練數據可能涵蓋數億個文檔,每個文檔包含十幾到數百個詞,為了覆蓋長尾詞和長尾語義,詞典可能包含數十萬到百萬個單詞,主題個數遠超業界發表論文的數字(僅數百個主題),達到萬,十萬,甚至百萬,最先進的解決方案需要數千臺服務器運行數天才能得到結果。我們當時立下的flag是,相對于業界最好解決方案,做到各個維度上都有數量級的超越(服務器數量必須是數十臺,我們那時拿不到數千臺這么奢侈的硬件支持,數據規模做到數十億Bing索引的主流網頁,詞典和主題數至少做到十萬級別)。稍微推算一下,就可以知道,即使是當時最先進的算法SparseLDA,在給定的硬件環境中訓練這樣規模的模型需要半年到一年的時間。再加上身處研究部門,一沒有可供使用的集群,二沒有工程師團隊的支持,微軟這邊全時投入的只有我和實習生高飛,這個目標看上去是mission impossible。我當時的想法是,最低目標要做出來一個能滿足產品部門需求可用的主題模型,能不能做出打破紀錄,就看運氣了。
Q:請問大規模訓練LDA模型的瓶頸是什么?
老師木: 訓練LDA 的算法可以分成兩類,一類是變分貝葉斯法,一類是Gibbs采樣算法。前者計算過程和中間表示都是稠密的,分布式實現時通信量較大,后者是稀疏計算,通信量小,一般大規模主題模型都基于Gibbs 采樣算法實現。使用Gibbs 采樣算法時,算法復雜度和系統實現兩方面都有困難。假設有100億文檔,平均每個文檔有100個詞,一共有10000億個詞,訓練過程迭代100次,那就需要對10000億個詞掃描100遍。標準的Collapsed Gibbs 采樣算法處理一個詞的計算復雜度與模型的主題數量有關,假設要訓練包含10萬個主題的模型,那么每個詞就包含10萬次計算,主頻為2GHz的CPU 核心每秒能處理1000個詞,這樣估算一下下來,假設使用一個單線程程序來做這件事,共需要1000億秒,也就是100萬天。使用10000個CPU 核心的分布式集群去訓練,假設線性擴展性,也需要100天之久。假如每個詞的采樣效率能提高100倍,那么使用10000個CPU 核心的集群去訓練這個模型就只需要1天。前人已經提出了Gibbs 采樣算法的多種改進,譬如SparseLDA, AliasLDA,但這些算法的單個詞的計算復雜度仍與模型的主題數量相關,與“創造奇跡”仍有距離。另外,實踐上,算法中總有一些步驟是無法并行化,受制于阿姆達爾法則,分布式系統很難做到線性加速比,所需要的時間會比上述預估的時間更長。
Q:LightLDA 設計之處,面臨了哪些挑戰?
老師木: 我們LightLDA團隊資源匱乏(計算資源,工程師資源),同時在算法和系統實現上都挑戰極大。我個人認為最大挑戰在信心方面:我們能不能做到?在此之前,有多位知名科學家和資深工程師在訓練大規模LDA的問題上耕耘已久,他們已經把算法和系統實現推進到相當的高度,即使采用當時最先進的技術,仍不可能實現我們的目標。必須做出顯著超越前人的奇跡技術突破才有可能實現目標。我和學生都是第一次從事大規模機器學習的項目,名不見經傳,何德何能,能比另外一些特別牛逼的人物做的還要好?
首先是算法上的突破。我在重現和把玩SparseLDA 和 AliasLDA時,被可遇不可求的靈感眷顧:解耦Gibbs 采樣中與詞自身相關的因素和詞所在文檔上下文的因素這兩個因子,能做到單個詞采樣復雜度與主題個數無關。馬維英院長第一次聽我介紹完這個想法和初步實現結果后說 too good to be true,的確,誰能想到這樣一個小小的insight,竟然能把單個詞采樣復雜度降到O(1),理論上使得達成那個宏偉的目標成為可能。這個靈感來的偶然又必然,機遇偏愛有準備的人。我動手能力比較突出,很快就重現了SparseLDA 和當時剛剛在KDD 上發表并獲得最佳論文獎的AliasLDA 算法,同時理論功底又比較扎實,很快就深刻理解了它們的關鍵所在。我不斷把玩這兩個算法,在直覺和理論分析指引下做一些改動,然后觀察是否有效,終于在一次改動后發現計算效率陡升,讓人懷疑是不是出現了有益處的bug,再三推敲后終于確認,這是一個有深刻內涵的新發現。這又一次印證了我從清華數學系林元烈老師那學到的一個訣竅:熟能生巧。他的隨機課程巨難無比,我剛開始怎么都入不了門,和很多自認佼佼者的同學一樣竟然期中考試不及格。林老師說了一番這樣的道理:他認識很多大牛數學家,即使是像他們那么聰明的人,在掌握一些艱深的數學科目時,也是通過做特別多習題才能悟道。我就硬著頭皮做了很多習題,有的證明看不懂,甚至都背下來了,也是突然一瞬就知道了隨機過程怎么回事。每次遇到困難,在說放棄之前再堅持一會兒結果就會不同。
找到理論上性質很好的算法,只是萬里長征第一步。怎么高效地用程序實現,特別是在分布式環境下接近線性加速,包含了一系列的技術挑戰,任何一個環節掉鏈子,所有努力都會化成泡影。做這類事的特點就是,兵來將擋,水來土掩,在你不知道前人這些技巧時,你要自己發明出來,但在系統領域極大概率是這個發明已經在經典文獻中被提出過了。我們解決了兩個突出的難題,超大規模模型的內存瓶頸和通信瓶頸。100萬的詞典和100萬個主題,模型之大,前所未有,意味著需要若干TB的內存,如何存儲和支持快速訪問也極其嚴峻。在分布式環境下,如何有效掩蓋通信開銷又不損失模型精度,也是當時面臨的一個主要難題。我的學生高飛在工程實現方面特別給力,交給他的事情總能又快又好的做完。事后回顧這段經歷,他說,這段日子是他最愉快的經歷之一,偶爾會感到絕望,總發現我在前面仍激情滿滿的堅持,他深感佩服。我的領導馬維英和劉鐵巖研究員則克服重重困難,為這個項目提供資源支持和高屋建瓴的指導。同時,我們和CMU Petuum 團隊,Eric Xing, David Dai, Jinliang Wei, Qirong Ho, 盡管身處太平洋兩岸,但幾乎每天都有郵件討論,每周都有好幾次電話會議,遇到技術難題大家湊在一次分析,提出不成熟的好點子又立刻能得到挑戰,共鳴和支持,缺少任何一個人,結果都不是大家看到的樣子,這就是一個優秀團隊的魅力所在。
沒有前面技術突破,絕不可能達到目標。僅僅有前面的算法突破,沒有執行成功,這項研究也就是一個微不足道的trick,絕不可能產生后來的影響。
Q:LightLDA 如何借助DMTK 框架做并行化? LightLDA 有哪些優點?
老師木: 這里可能有一個小小的誤解。在Github上發布時,LightLDA 是作為Distributed Machine Learing Toolkit (DMTK)的一個組件發布的,但實際上LightLDA 最初是使用 Petuum 的參數服務器實現并行化。在LightLDA論文發表后,微軟醞釀和發布了DMTK項目,這時候把LightLDA 作為DMTK的一個主要應用集成進去了。LightLDA 的優點就不多說了,主要是快,擴展性好,用少得多的硬件資源就可以解決規模大的多的問題。我來說一下開源版本的缺憾吧。首先,理論上單個詞采樣復雜度是O(1),在工程實現上,因為隨機訪存造成cache miss太多的原因,沒有完全發揮算法的優勢,不久以后,清華大學朱軍和陳文光教授的課題組做了一些新的創新,提出了WarpLDA,重排訓練數據的訪問順序,大大減少cache miss,才真正發揮了這類O(1) 復雜度算法的威力;其次,LightLDA 開源的代碼并沒有包含數據預處理和在線預測這一整套工具鏈,使得用戶必須自己去開發和踩坑;最后,有一些較高級的特性雖然在內部版本實現了,卻并未在開源代碼中發布,譬如能搞定長尾語義的非對稱先驗的LDA等。我們也沒有把單線程版本發布出來,方便同行做純粹地算法比較。
Q:通過LightLDA項目,得到了什么啟發?
老師木: 第一,的確存在不可替代的技術,平凡的創新和破壞式創新的效果不可同日而語,后者往往有四兩撥千斤的效果。
第二,要敢于迎接挑戰,承擔風險,個人理解,這相對于平凡而穩妥的道路更劃算,做一件挑戰但有風險的事,可能需要付出于平常事3倍的努力,但可能獲得做10件平常事才會有的回報。
第三,無論是科學研究,產品研發,還是商業競爭是智商,意志,情商等綜合素質的全面比拼,不僅要有不可替代的優勢,在其它任何方面還不能有短板。
第四,機會總是眷顧有準備的人,有所準備才能抓住稍縱即逝的機會??偨Y,LightLDA 讓我體驗了做成一件有影響的事所需要的所有困難,我好像對看上去很難的事不會感到畏懼。
關于人工智能從業
Q:人工智能前景良好,那么從業者能發揮什么角色?
老師木: 有三種類型的技術可做:
一,研究機器學習算法或原理,解答怎么做(How)或為什么這么做(Why)的問題,譬如研究怎么訓練深度學習模型,什么樣的神經網絡結構效果最好,為什么深度學習要比其它機器學習方法效果好等等,簡略稱為原理問題;
二,機器學習的基礎設施,什么樣的軟硬件設計能使得機器學習算法計算更快,能用上更多數據,或者使模型規模更大,例如研發深度學習軟件框架,或深度學習專用硬件等等,可歸結為計算力問題;
三,如何應用機器學習技術(算法和計算力)解決工作和生活中的實際問題,譬如互聯網廣告系統設計,推薦系統,游戲博弈(如AlphaGo),自動駕駛等等,可歸類為應用問題。
Q:從事哪種類型的工作更有競爭優勢??
老師木: 這三種類型的工作我恰好都做過,應該說哪個都很有用武之地,哪一個方向能做到頂尖水平都不易,做好了都能贏者通吃,全棧則更有優勢。當然,這些工作也存在一些具體的差別。理論問題,進入門檻較高,工作崗位不太多,一般是興趣驅動,看天賦和運氣,這方面的突破,影響范圍廣,惠及全行業,從創業看,難以形成獨立的商業模式,一般是在大學或企業研究院開展。計算力問題,影響力能到達全行業,通常是業界巨頭和精干的創業團隊的強項,崗位不太多,門檻也比較高,但主要看后天努力,一般是努力總有結果,創業上有可能形成獨立的商業模式。應用類型的問題,業界需求最大,進入門檻低一些,確定性高,離商業近,周期短,見效快,影響力一般受限于特定領域。統計上,少數人從事理論和計算力類型的工作,大部分人從事應用驅動的工作?,F在的開源軟件和公開課非常普及,為有志于在此方向上有所造詣的同行提供了前所未有的良好條件。
最后的話:“遍地黃金的日子過去了,低垂的果子已經沒了”,技術創新主導的時代必將來臨,讓我們以“像鷹一樣的眼光,像狼一樣的精神,像熊一樣的膽量,像豹一樣的速度”,去抓住屬于技術人的機遇。
End.
轉載請注明來自36大數據(36dsj.com): 36大數據 ? 微博技術大V老師木:軟件平臺是深度學習計算力突破的關鍵