TechDay實(shí)錄 | 認(rèn)識(shí)PaddlePaddle:更低使用成本、更高開(kāi)發(fā)效率的深度學(xué)習(xí)框架

導(dǎo)讀:

在人工智能時(shí)代,各行各業(yè)都在嘗試?yán)脵C(jī)器學(xué)習(xí)/深度學(xué)習(xí)等前沿技術(shù)來(lái)解決自身的業(yè)務(wù)需求,深度學(xué)習(xí)框架也應(yīng)運(yùn)而生。為了繼續(xù)幫助AI開(kāi)發(fā)者們?cè)谏疃葘W(xué)習(xí)的道路上快速升級(jí),百度PaddlePaddle于2019年重磅啟動(dòng)系列技術(shù)公開(kāi)課“PaddlePaddle TechDay”。

2019年1月5日,第一期活動(dòng)于北京中關(guān)村創(chuàng)業(yè)大街百度大腦創(chuàng)新體驗(yàn)中心展開(kāi),秉承著“技術(shù)為先,應(yīng)用至上”的理念,百度邀請(qǐng)深度學(xué)習(xí)技術(shù)平臺(tái)主任工程師胡曉光和高級(jí)算法工程師、百度認(rèn)證布道師胡曉曼作為此次主講嘉賓,分享PaddlePaddle框架設(shè)計(jì)原理、實(shí)現(xiàn)方式、完整實(shí)例等技術(shù)點(diǎn),并結(jié)合百度自身AI實(shí)踐的應(yīng)用發(fā)展,詳解PaddlePaddle針對(duì)深度學(xué)習(xí)模型的應(yīng)用、訓(xùn)練與優(yōu)化等具體細(xì)節(jié)。

以下為胡曉光講師的演講實(shí)錄:

2012年,百度開(kāi)始深度學(xué)習(xí)的應(yīng)用,其深度學(xué)習(xí)框架內(nèi)部版本可追溯到2013年,到2016年,為了滿(mǎn)足開(kāi)發(fā)者的使用需求,百度開(kāi)源了深度學(xué)習(xí)平臺(tái)PaddlePaddle,2018年底,百度又推出了PaddlePaddle Suit,力求框架使用成本越來(lái)越低。

如今,各大巨頭公司都在進(jìn)入深度學(xué)習(xí)領(lǐng)域,那深度學(xué)習(xí)框架為何如此重要?其實(shí)深度學(xué)習(xí)框架相當(dāng)于傳統(tǒng)的操作系統(tǒng),起到連接底層硬件和上層應(yīng)用場(chǎng)景的作用,以此支持各種AI相關(guān)的應(yīng)用,使其與業(yè)務(wù)結(jié)合,實(shí)實(shí)在在解決業(yè)務(wù)場(chǎng)景中的問(wèn)題。例如,通過(guò)該框架,可以將底層的CPU、GPU、FPGA、專(zhuān)用AI芯片、手機(jī)移動(dòng)端上的芯片等各類(lèi)硬件相關(guān)隔離并進(jìn)行管理;在中間層將數(shù)據(jù)進(jìn)行組網(wǎng)、訓(xùn)練,進(jìn)一步得到模型進(jìn)行預(yù)測(cè);在應(yīng)用層,還可以跟語(yǔ)音、NLP、視覺(jué)、推薦等實(shí)際場(chǎng)景中的業(yè)務(wù)進(jìn)行結(jié)合。

可以看到,PaddlePaddle致力于通過(guò)輸出領(lǐng)先的深度學(xué)習(xí)技術(shù),賦能各行各業(yè),全方位滿(mǎn)足企業(yè)級(jí)深度學(xué)習(xí)的應(yīng)用;同時(shí),PaddlePaddle更加注重用戶(hù)的開(kāi)發(fā)成本,以最少的時(shí)間獲得最滿(mǎn)意的功能和效果。

支持不同層級(jí)開(kāi)發(fā)者需求的PaddlePaddle全功能套件

如上圖所示,PaddlePaddle的整體架構(gòu)主要包含四個(gè)層面:核心框架、輔助工具、通用技術(shù)方案、服務(wù)平臺(tái)。

核心框架包括:PaddlePaddle訓(xùn)練框架、PaddlePaddleServing(預(yù)測(cè))、PaddlePaddle Mobile(移動(dòng)端手機(jī)上可部署),在這個(gè)基礎(chǔ)框架之上,可以做深度學(xué)習(xí)相關(guān)的工作。

再往上一層,針對(duì)深度學(xué)習(xí)應(yīng)用的輔助工具包括:Visual DL可視化工具、Auto DL網(wǎng)絡(luò)自動(dòng)設(shè)計(jì)工具、PARL強(qiáng)化學(xué)習(xí)工具。

通用技術(shù)方案上,目前PaddlePaddle主要支持包括文本處理/NLP、CV?、智能推薦相關(guān)的三個(gè)方向,這三個(gè)方向里有大量的模型。

服務(wù)平臺(tái)方面,面向用戶(hù)實(shí)際業(yè)務(wù)場(chǎng)景,Easy DL無(wú)需用戶(hù)寫(xiě)代碼,便可低成本獲取定制化服務(wù);此外,還有學(xué)習(xí)深度學(xué)習(xí)的平臺(tái)AI Studio、針對(duì)深度學(xué)習(xí)云服務(wù)的Infinity。

PaddlePaddle設(shè)計(jì)思想

具體到執(zhí)行流程,通常前端程序是用Python來(lái)寫(xiě)的,但實(shí)際代碼程序是在后端的C++語(yǔ)言環(huán)境下實(shí)現(xiàn)的,那二者是如何關(guān)聯(lián)起來(lái)的呢?

在Python前端,有一個(gè)接口可做到前后端的調(diào)度,中間還有一個(gè)程序ProgramDecs,可進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)的序列化。然后將Programdesc通過(guò)接口傳給Transpiler,對(duì)原始Program做進(jìn)一步優(yōu)化,再傳給一個(gè)新的Programdesc。而在C++后端有一個(gè)執(zhí)行器,這里面對(duì)各種各樣的Operator進(jìn)行計(jì)算和調(diào)用,相當(dāng)于在CPU上跑的各種指令在這里完成。之后,像梯度或參數(shù)等計(jì)算結(jié)果跑出來(lái)后,需要返回預(yù)測(cè)值,還是通過(guò)這個(gè)接口再傳給Python前端。也就是說(shuō),輸入數(shù)據(jù)和返回的結(jié)果都是可以在前端完成的。正因如此,整個(gè)框架后端是基于C++的,效率也十分高。

執(zhí)行過(guò)程

編譯期:定義Program

1.????編譯時(shí),用戶(hù)編寫(xiě)一段python程序,通過(guò)調(diào)用?Fluid?提供的算子,向一段?Program?中添加變量(Tensor)以及對(duì)變量的操作(Operators?或者?Layers)。用戶(hù)只需要描述核心的前向計(jì)算,不需要關(guān)心反向計(jì)算、分布式下以及異構(gòu)設(shè)備下如何計(jì)算。

2.????原始的?Program在平臺(tái)內(nèi)部轉(zhuǎn)換為中間描述語(yǔ)言:?ProgramDesc。

3.????編譯期最重要的一個(gè)功能模塊是?Transpiler。Transpiler?接受一段?ProgramDesc?,輸出一段變化后的?ProgramDesc?,作為后端?Executor?最終需要執(zhí)行的?Fluid Program

4.????后端?Executor?接受?Transpiler?輸出的這段?Program?,依次執(zhí)行其中的?Operator(可以類(lèi)比為程序語(yǔ)言中的指令),在執(zhí)行過(guò)程中會(huì)為?Operator?創(chuàng)建所需的輸入輸出并進(jìn)行管理。

執(zhí)行期:1.執(zhí)行Program

2.創(chuàng)建Executor

Fluid中使用fluid.Executor(place)創(chuàng)建Executor,place屬性由用戶(hù)定義,代表程序?qū)⒃谀睦飯?zhí)行。

下例代碼表示創(chuàng)建一個(gè)Executor,其運(yùn)行場(chǎng)所在CPU內(nèi):

3.運(yùn)行Executor

Fluid使用Executor.run來(lái)運(yùn)行程序。定義中通過(guò)Feed映射獲取數(shù)據(jù),通過(guò)fetch_list獲取結(jié)果:

官方支持最多模型庫(kù)——PaddlePaddle Fluid模型庫(kù)

目前,基于PaddlePaddle框架基礎(chǔ)上開(kāi)發(fā)了大量的模型,可以支持像CV、NLP、推薦等各類(lèi)非常前沿的技術(shù)應(yīng)用。值得一提的是,模型應(yīng)用有很多已經(jīng)放在GitHub上開(kāi)源出來(lái),如果開(kāi)發(fā)者想要進(jìn)一步嘗試PaddlePaddle,除了查看官方文檔,也可以在GitHub上快速找到PaddlePaddle最新開(kāi)源的模型。

目前來(lái)看,PaddlePaddle官方支持的模型數(shù)量超過(guò)其他主流框架,主要包括計(jì)算機(jī)視覺(jué)里的圖像分類(lèi)、目標(biāo)檢測(cè)、人臉檢測(cè)、關(guān)鍵點(diǎn)、OCR識(shí)別、語(yǔ)義分割、視頻分類(lèi),自然語(yǔ)言處理里的中文詞法分析、語(yǔ)義匹配、機(jī)器翻譯,個(gè)性化推薦模型,語(yǔ)音識(shí)別等。

1.圖像分類(lèi)

?目前網(wǎng)絡(luò)模型主要朝著兩個(gè)方向發(fā)展:一是越來(lái)越深;二是越來(lái)越復(fù)雜。如AlexNet、VGG、GoogleNet、ResNet、Inception-v4、MobileNet、Dual Path Network、SE-ResNeXt,2012年以來(lái)的經(jīng)典圖像識(shí)別網(wǎng)絡(luò)都包含在PaddlePaddle的圖像分類(lèi)模型庫(kù)里。

2.目標(biāo)檢測(cè)?SSD

Single Shot MultiBoxDetector (SSD)?是目標(biāo)檢測(cè)領(lǐng)域較新且效果較好的檢測(cè)算法之一,具有檢測(cè)速度快且檢測(cè)精度高的特點(diǎn)。

對(duì)比?Faster R-CNN和SSD在GPU上的運(yùn)行速度和準(zhǔn)確率,可以得知,F(xiàn)aster R-CNN的準(zhǔn)確率會(huì)很高,但跑得速度會(huì)慢些;而SSD會(huì)快很多,但準(zhǔn)確率會(huì)低些。

3.人臉檢測(cè)?PyramidBox

?在圖像檢測(cè)里,人臉檢測(cè)是比較特殊的,包括人臉拍照、人臉識(shí)別解鎖,其核心基礎(chǔ)都是檢測(cè)。2018年,百度最新推出的PyramidBox,可以說(shuō)是迄今最好的人臉?biāo)惴?。除了傳統(tǒng)算法之外,重點(diǎn)考慮人臉的上下文特征,可以很好地提升人臉檢測(cè)的交互率和準(zhǔn)確率。

4.語(yǔ)義分割DeepLab V3+、語(yǔ)義實(shí)時(shí)分割ICNet

目前,用于語(yǔ)義分割的DeepLab V3+模型基于PaddlePaddle得到了實(shí)現(xiàn),并取得了非常好的效果??梢钥吹?,它有一些操作并不是標(biāo)準(zhǔn)的卷積,這意味著有可以針對(duì)這些操作進(jìn)行更深入底層優(yōu)化的空間。

5.視頻分類(lèi)

?視頻分類(lèi)方法主要包含基于卷積神經(jīng)網(wǎng)絡(luò)、基于循環(huán)神經(jīng)網(wǎng)絡(luò)、或?qū)⑦@兩者結(jié)合的方法,目前包含Temporal Segment Network(TSN)模型。?

6.中文詞法分析(LAC

?中文詞法分析(Lexical Analysis of Chinese)是一個(gè)聯(lián)合的詞法分析模型,包括中文分詞、詞性標(biāo)注、專(zhuān)有名詞識(shí)別任務(wù)。LAC基于一個(gè)堆疊的雙向GRU結(jié)構(gòu),在長(zhǎng)文本上準(zhǔn)確復(fù)刻了百度AI開(kāi)放平臺(tái)上的詞法分析算法。這三個(gè)任務(wù)可以做一個(gè)訓(xùn)練,其效果是非常顯著的。?

7.語(yǔ)義匹配?DAM

?在最新發(fā)表的“Multi-Turn Response Selection for Chatbotswith Deep Attention Matching Network”論文中指出,主要使用了全局方法的網(wǎng)絡(luò)結(jié)構(gòu),可判斷全局信息,通過(guò)上下文表示句子語(yǔ)義結(jié)構(gòu),目前已在內(nèi)部如聊天或?qū)υ?huà)系統(tǒng)中取得了非常好的效果。

8.機(jī)器翻譯?Transformer

?從2017年起提出的Transformer現(xiàn)已成為業(yè)界機(jī)器翻譯模型訓(xùn)練的標(biāo)配。Transformer是一個(gè)基于自注意力機(jī)制的機(jī)器翻譯模型,其中不再有RNN或CNN結(jié)構(gòu),而是完全利用Attention學(xué)習(xí)語(yǔ)言中的上下文依賴(lài)。?

9.個(gè)性化推薦模型

?PaddlePaddle對(duì)推薦算法的訓(xùn)練提供了完整的支持,并提供了多種模型配置供用戶(hù)選擇,包括:TagSpace、GRU4Rec、SequenceSemanticRetrieval、DeepCTR、Multiview-Simnet。

模型庫(kù):

https://github.com/PaddlePaddle/models

總結(jié)來(lái)講,PaddlePaddle是一個(gè)功能全面而又特別注重實(shí)用性的框架,百度在生產(chǎn)環(huán)境的打磨使其具備了強(qiáng)大的工業(yè)級(jí)生產(chǎn)能力,同時(shí)從框架的內(nèi)部設(shè)計(jì)和實(shí)現(xiàn)上注重接口的簡(jiǎn)潔性和穩(wěn)定性,并規(guī)避了復(fù)雜概念和設(shè)計(jì)的引入,使其降低了PaddlePaddle的開(kāi)發(fā)門(mén)檻,對(duì)開(kāi)發(fā)者也更加友好。此外,開(kāi)放出大量支持最新主流的模型庫(kù),從而全方位為企業(yè)開(kāi)發(fā)者提供幫助,使其可以順暢地進(jìn)行上層開(kāi)發(fā)。當(dāng)前仍處于深度學(xué)習(xí)研究和應(yīng)用的持續(xù)火熱期,深度學(xué)習(xí)框架及平臺(tái)在研究界和工業(yè)界的需求仍持續(xù)增長(zhǎng),百度PaddlePaddle也將隨著深度學(xué)習(xí)在各行各業(yè)的廣泛應(yīng)用,持續(xù)迭代和更新,為中國(guó)開(kāi)發(fā)者和企業(yè)提供更強(qiáng)、更貼近需求的服務(wù),我們也歡迎廣大開(kāi)發(fā)者和企業(yè)加入到百度PaddlePaddle的大家庭當(dāng)中來(lái),共建深度學(xué)習(xí)生態(tài),助力AI落地。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,030評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,310評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事?!?“怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,951評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,796評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,566評(píng)論 6 407
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,055評(píng)論 1 322
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,142評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,303評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,799評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,683評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,899評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,409評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,135評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,520評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,757評(píng)論 1 282
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,528評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,844評(píng)論 2 372

推薦閱讀更多精彩內(nèi)容