如此簡(jiǎn)潔易用,得益于本次ERNIE語(yǔ)義理解開(kāi)源開(kāi)發(fā)套件的全新升級(jí)。借助國(guó)產(chǎn)深度學(xué)習(xí)框架飛槳?jiǎng)討B(tài)圖優(yōu)勢(shì),本次升級(jí)實(shí)現(xiàn)了“動(dòng)態(tài)圖”與“靜態(tài)圖”的完美結(jié)合,即“一套代碼,兩種運(yùn)行方式”,使得開(kāi)發(fā)者更加高效、方便的使用ERNIE解決工業(yè)生產(chǎn)中的各類(lèi)NLP問(wèn)題,達(dá)到簡(jiǎn)單幾行代碼即可實(shí)現(xiàn)基于ERNIE的文本分類(lèi)、情感分析等經(jīng)典N(xiāo)LP任務(wù)。

  ERNIE開(kāi)源套件:https://github.com/PaddlePaddle/ERNIE

  動(dòng)態(tài)圖vs靜態(tài)圖

  當(dāng)前,主流深度學(xué)習(xí)框架的編程方式主要包含“聲明式編程”和“命令式編程”兩種。通俗來(lái)說(shuō),前者稱為“靜態(tài)圖”,是指用戶需要事先把神經(jīng)網(wǎng)絡(luò)計(jì)算流程定義好,再通過(guò)執(zhí)行器執(zhí)行;而后者則稱為“動(dòng)態(tài)圖”,是指用戶可以在Python解釋器中逐行輸入計(jì)算指令,而框架在后臺(tái)同步完成運(yùn)算。兩種方式各有優(yōu)勢(shì),動(dòng)態(tài)圖“所見(jiàn)即所得”的特性可以快速實(shí)現(xiàn)最新的idea;而靜態(tài)化的運(yùn)算流程可以在脫離Python的生產(chǎn)環(huán)境中部署上線。

  為了兼顧兩種優(yōu)勢(shì),ERNIE開(kāi)源套件進(jìn)行了全新升級(jí),推出了動(dòng)靜合一的ERNIE語(yǔ)義理解開(kāi)發(fā)套件。

  動(dòng)靜合一的ERNIE開(kāi)源套件

  新版ERNIE開(kāi)源套件突顯了模型易取易用性,簡(jiǎn)單幾行代碼就可以把ERNIE跑起來(lái)。整套核心代碼簡(jiǎn)單、清晰,使得開(kāi)發(fā)者,尤其是剛?cè)腴T(mén)NLP的新手玩家,可以學(xué)習(xí)各類(lèi)NLP任務(wù)的finetune,加載舊版本checkpoint、C++ inference API、ERNIE-server等每一個(gè)重要功能的細(xì)節(jié)。同時(shí),新版ERNIE開(kāi)源套件還為廣大初學(xué)者提供了豐富的AI Studio教程,用戶無(wú)需自己提供GPU,即可運(yùn)行ERNIE來(lái)完成各類(lèi)NLP任務(wù),做到了“人人有AI學(xué)”。 除此以外,新版ERNIE的環(huán)境配置也很簡(jiǎn)單,大部分的依賴都可以通過(guò)pip安裝。

  1. pip install paddle-ernie

  新版ERNIE套件最大程度地保證了邏輯的簡(jiǎn)潔,整體模型結(jié)構(gòu)核心代碼量較原來(lái)減少了41%,并采用了大家熟悉的面向?qū)ο笤O(shè)計(jì)。幾乎所有的網(wǎng)絡(luò)運(yùn)算邏輯集中在ernie/modeling_ernie.py文件中,在這里你可以看到ERNIE所支持的全部NLP任務(wù)的源代碼。各個(gè)對(duì)象及其對(duì)應(yīng)的NLP任務(wù)可見(jiàn)下表:

  一行一行學(xué)NLP

  對(duì)于初學(xué)NLP的玩家而言,最好的學(xué)習(xí)方式莫過(guò)于親自上手調(diào)試,把模型拆開(kāi)后,一步一步調(diào)試檢查其中的結(jié)果以及神經(jīng)網(wǎng)絡(luò)流程的走向。為此,新ERNIE套件內(nèi)置了豐富的教程(https://github.com/PaddlePaddle/ERNIE#%E6%95%99%E7%A8%8B):你無(wú)需提供運(yùn)算資源,在網(wǎng)頁(yè)端即可運(yùn)行教程代碼。目前官方提供的示例教程包括:

  從0開(kāi)始學(xué)ERNIE

  情感識(shí)別

  完形填空

  知識(shí)蒸餾

  萬(wàn)事不決問(wèn)ERNIE

  這些教程既含有ERNIE原理解釋?zhuān)埠w了ERNIE的訓(xùn)練和預(yù)測(cè)過(guò)程。例如在“萬(wàn)事不決問(wèn)ERNIE”中,通過(guò)一小段代碼,展示了ERNIE做閱讀理解任務(wù)的過(guò)程:

  又例如,在“從0開(kāi)始學(xué)ERNIE”中,整個(gè)訓(xùn)練循環(huán)被濃縮成下面幾行:

  除此之外,新ERNIE套件動(dòng)態(tài)執(zhí)行的代碼可以很方便地配合Python的debuger或者第三方IDE的調(diào)試模式(如PyCharm),進(jìn)行逐行debug。例如,你可以在教程中任意地方插入ipdb的debug語(yǔ)句:

  Python解釋器運(yùn)行到插入的語(yǔ)句時(shí)會(huì)自動(dòng)暫停,你可以在debugger的交互環(huán)境中輸入相應(yīng)的指令來(lái)觀察程序的狀態(tài),如:

  1. p featuer.numpy()

  則debugger 返回feature tensor中的所有內(nèi)容:

  簡(jiǎn)單易用的分布式Finetune功能

  為了提升ERNIE的Finetune速度,最新ERNIE套件全新支持了分布式Finetune功能。依托飛槳?jiǎng)討B(tài)分布式API優(yōu)勢(shì),開(kāi)發(fā)者僅需一個(gè)封裝:model = FD.parallel.DataParallel(model, ctx) ,模型便具備了分布式訓(xùn)練的能力。當(dāng)你在Python程序中顯式調(diào)用apply_collective_grads 時(shí),系統(tǒng)會(huì)進(jìn)行一次全局通信來(lái)平均所有運(yùn)算進(jìn)程中產(chǎn)生的loss 梯度。你需要做的是,在運(yùn)行環(huán)境中使用啟動(dòng)器:paddle.distributed.launch 來(lái)在參與訓(xùn)練的每一張GPU卡上啟動(dòng)訓(xùn)練進(jìn)程。由啟動(dòng)器拉起來(lái)的進(jìn)程會(huì)自動(dòng)發(fā)現(xiàn)對(duì)方并開(kāi)始多機(jī)通信。

  動(dòng)態(tài)編程,靜態(tài)部署

  為了保證動(dòng)態(tài)圖模型部署的性能,兼容針對(duì)靜態(tài)圖做的部署代碼性能優(yōu)化。開(kāi)發(fā)者可選擇通過(guò)TracedLayer.trace API將動(dòng)態(tài)模型序列化成為靜態(tài)模型使用:

  在調(diào)用TracedLayer.trace API時(shí),開(kāi)發(fā)者可動(dòng)態(tài)傳入兩個(gè)虛擬構(gòu)造出來(lái)的tensor;分別代表即將輸入的 token id 和 sentence type id ,paddle后臺(tái)會(huì)自動(dòng)追蹤ERNIE的forward 過(guò)程并把中間運(yùn)行的op序列化下來(lái),成為靜態(tài)圖模型。隨后便可調(diào)用靜態(tài)圖 save_inference_model API將模型保存下來(lái)。如此保存下來(lái)的模型與舊版本模型并無(wú)二致。

  得益于本次動(dòng)靜合一的全新升級(jí),開(kāi)發(fā)者可以更方便地獲取ERNIE強(qiáng)大的語(yǔ)義理解能力,賦能各行各業(yè)智能化轉(zhuǎn)型,助燃智能經(jīng)濟(jì)騰飛。

  百度在自然語(yǔ)言處理領(lǐng)域已有二十年的積累與沉淀,具備最前沿、最全面、最領(lǐng)先的技術(shù)布局,不僅專(zhuān)注于前瞻技術(shù)探索,更致力通過(guò)技術(shù)應(yīng)用解決實(shí)際問(wèn)題。飛槳是中國(guó)首個(gè)開(kāi)源開(kāi)放、功能完備的產(chǎn)業(yè)級(jí)深度學(xué)習(xí)平臺(tái),集深度學(xué)習(xí)核心框架、基礎(chǔ)模型庫(kù)、端到端開(kāi)發(fā)套件、工具組件和服務(wù)平臺(tái)于一體。目前,飛槳累計(jì)開(kāi)發(fā)者數(shù)量194萬(wàn),服務(wù)企業(yè)數(shù)量8.4萬(wàn)家,基于飛槳平臺(tái)產(chǎn)生了23.3萬(wàn)模型。飛槳助力開(kāi)發(fā)者快速實(shí)現(xiàn)AI想法、快速上線AI業(yè)務(wù),幫助越來(lái)越多的行業(yè)完成AI 賦能,實(shí)現(xiàn)產(chǎn)業(yè)智能化升級(jí)。

鄭重聲明:中國(guó)IT研究中心網(wǎng)站刊登/轉(zhuǎn)載此文出于傳遞更多信息之目的 ,并不意味著贊同其觀點(diǎn)或論證其描述。中國(guó)IT研究中心不負(fù)責(zé)其真實(shí)性 。

分享到

zhangnn

相關(guān)推薦