2018年11月,英特爾人工智慧大會(AIDC 2018)在北京國貿酒店舉行,這也是英特爾首次專門面向開發者和和技術社區的人工智慧大會。PaddlePaddle總架構師於佃海應邀在大會主論壇做了主題演講,介紹了百度開源深度學習框架PaddlePaddle的最新進展以及百度實際業務中的大規模深度學習應用實踐,特別強調了PaddlePaddle在海量數據超大規模稀疏特徵場景下的高效分布式訓練特色。
於佃海表示,百度很早就開始擁抱機器學習技術,對於深度學習,百度一開始就把握住了先機。早在2012年,百度就成功將DNN模型應用於語音識別和光學字符識別(OCR)任務;而緊接著在2013年,鳳巢廣告和搜索排序也先後上線深度學習模型,這些都屬於業內首次,也奠定了百度在世界範圍內深度學習研究和應用的領先優勢。從此百度逐步全面進入深度學習時代,在深度學習框架研發、平臺建設和技術創新應用等方面都一直走在前沿。
作為國內唯一的開源深度學習框架,PaddlePaddle承載了百度多年以來在深度學習領域的深厚積累。於佃海介紹,PaddlePaddle的原型來自於百度從2013年開始研發的深度學習框架Paddle項目,Paddle的得名就是並行分布式學習(Parallel Distributed Deep Learning)。這個項目是非常有遠見和前瞻性的。首先,在當時還沒有什麼工業界的深度學習框架,也就是百度在深度學習應用剛起步時就意識到了建設通用框架的重要性;另一個是並行分布式,深度學習的威力依賴大數據,工業級的深度學習必須有大規模訓練的支持,百度在深度學習框架構建之初就定位了它的分布式訓練能力。
而對於百度而言,深度學習的應用確實和大數據、強算力下的大規模訓練密切相關。除了大家熟知的語音、視覺、自然語言處理等AI基礎方向外,於佃海特別介紹了在搜索、廣告、信息流推薦等產品線的核心系統中超大規模深度學習的應用,這些應用除了數據規模大之外,還有高維度稀疏特徵的典型特性。
例如在網頁搜索中,百度將深度學習技術用於語義匹配特徵計算。自2013年初次上線以來,持續優化迭代,目前深度學習語義特徵已是百度這個最大中文搜尋引擎上的最關鍵的排序特徵,極大破除了搜索排序依賴關鍵詞匹配的弊端,有效改善了長尾和冷門Query的搜索效果,也建立了百度搜索的技術領先優勢。對應的網絡模型是百度自主研發的深度語義匹配網絡SimNet系列模型,輸入是Query和網頁的各個信息域,利用用戶行為數據來進行大規模訓練。這個任務的數據規模達到了千億級別以上,而文本任務的詞嵌入(Word Embedding)向量表示特點,也使得參數規模達到了數億。在實際業務中,每一個語義匹配特徵對應的模型,都是使用幾十個高性能計算結點多機多線程分布式訓練來完成。
而對於廣告和信息流推薦業務上的深度學習應用,還有更特別的挑戰。這些場景上,深度學習用來構建系統最核心的點擊率預估模型,使用了比語義匹配更多的離散特徵,包括一些ID特徵和組合特徵。特別是在信息流業務上,內容端信息更加豐富,展現序列更長,瀏覽和點擊的歷史信息也更多,整體特徵空間變得更大。結果就是特徵規模最終可達百億級別以上,在Embedding表示下,參數規模能達到千億甚至萬億,模型大小超過TB。但對每條樣本來講,其對特徵的命中又是稀疏的,可能只有數十個到數千個有效特徵被激活。這就形成了超高維度加稀疏的特性,給訓練和在線部署都帶來了極大挑戰。一方面,全局參數已經多到單機無法加載,另一方面仍然是海量數據的超大規模訓練。還有就是這些場景的時效性非常強,新的訓練數據也在不斷產生。在實際業務中,百度對於此類任務使用百結點以上的集群來在線訓練,每個小時可以完成數億樣本的充分增量訓練,並在線實時提供預測服務。
基於這些實際業務中大規模深度學習應用的介紹,於佃海指出,不同場景的深度學習的特點及規模化的難度存在極大差異。圖像類任務,往往網絡的深度和計算的密集型比較突出。但對於文本任務而言,一個尤其重要的特點是詞語的向量表示,每個詞的Embedding向量的維度是幾十到上千,而詞表往往會從幾萬到百萬的規模,這使得詞語的參數Embedding就非常巨大,但實際每個句子中詞語出現又是很稀疏的,這給計算和並行訓練都帶來了新的挑戰。而在很多實際網際網路應用中,往往又廣泛引入大量稀疏特徵,這使得高維稀疏特徵的參數真的變成了一個超級大表,整個分布式並行模式都需要有針對性的設計。
可以看到,深度學習的大規模,不只是大數據和大網絡,我們同時要關注其特徵量和計算特異性。這些都給通用的高性能深度學習編程框架的設計和實現帶來了困難。對於百度當前各產品線上的海量數據超大規模稀疏特徵的深度學習任務,當今市面上的大部分開源框架是很難支撐起來的,當然其中一些在設計層面就沒有特別考慮工業級的大規模訓練問題。而對於PaddlePaddle,是一直伴隨著百度的產品業務應用需求成長起來的。百度各產品線和業務平臺上大規模訓練的場景經驗和技術積累也持續集成到PaddlePaddle中。於佃海表示,在設計和實現上,除了保持深度學習框架自身的通用性和靈活性之外,PaddlePaddle一直同步強化其大規模並行訓練的能力。對大規模高維稀疏數據並行訓練的強有力支持是PaddlePaddle的核心關鍵特色。例如在百度信息流推薦場景下,PaddlePaddle十小時內可輕鬆完成千億規模參數模型在百億日誌數據上在線訓練,完美支持信息流推薦排序任務。我們注意到,在今年7月的百度開發者大會的深度學習公開課上,百度曾專題介紹過大規模稀疏訓練的的相關技術,而在剛剛過去的百度世界大會上的AI論壇上,也特別強調過PaddlePaddle的這一特色。
此外,於佃海還介紹了最近剛剛發布的PaddlePaddle Suite,由核心框架、服務平臺、模塊組件三大部分組成。除了多平臺支持的高性能訓練和預測框架外,特別介紹了以AutoDL和PARL為代表的強大的平臺層和豐富的組件層。PARL是基於PaddlePaddle的深度強化學習(Reinforcement Learning)框架。在剛剛結束的在NeurIPS 2018的強化學習AI挑戰賽中,面對400多隻強手如林的參數隊伍,百度的PARL研發團隊以絕對領先優勢獲得第一名。而PARL的高效分布式訓練能力,也是其奪冠的重要因素之一。
最後於佃海介紹了PaddlePaddle與英特爾在底層性能優化上開展的包括nGraph在內的廣泛而深入的合作,並表示PaddlePaddle對性能優化的追求永無止境,除了大規模分布式訓練能力外,對於深度學習框架的各個環節都會持續優化,發揮深度學習框架和大規模分布式訓練完美結合的優勢,矢志打造能支撐工業級應用的高性能AI框架。