微软开源项目NeuronBlocks - 像搭积木一样构建NLP深度学习模型
在構(gòu)建自然語(yǔ)言理解深度學(xué)習(xí)模型過(guò)程中,研究人員或者工程師們經(jīng)常需要在編程細(xì)節(jié)和代碼調(diào)試上花費(fèi)大量精力,而不是專注于模型架構(gòu)設(shè)計(jì)與參數(shù)調(diào)整。為了提升構(gòu)建深度模型的效率,微軟亞洲互聯(lián)網(wǎng)工程院自然語(yǔ)言理解團(tuán)隊(duì) (STCA NLP Group, Microsoft) 推出了開源項(xiàng)目 NeuronBlocks - 自然語(yǔ)言處理任務(wù)的模塊化深度學(xué)習(xí)建模工具包。
NeuronBlocks 將常用的神經(jīng)網(wǎng)絡(luò)層封裝為標(biāo)準(zhǔn)模塊,通過(guò)配置簡(jiǎn)單的配置文件,就可以輕松構(gòu)建復(fù)雜的深度神經(jīng)網(wǎng)絡(luò)模型。與此同時(shí),工具包還提供了一系列針對(duì)常見 NLP 任務(wù)的經(jīng)典模型。
NeuronBlocks 能使工程師們?cè)趲酌腌妰?nèi)快速構(gòu)建和訓(xùn)練各種自然語(yǔ)言處理模型。工具包的可擴(kuò)展性很強(qiáng),支持快速加入新的神經(jīng)元模塊用于新的網(wǎng)絡(luò)模型的構(gòu)建,最大程度地避免重復(fù)的代碼工作。
目前工具包支持的任務(wù)包括:句子分類(二/多分類),文本匹配,序列標(biāo)注,閱讀理解,基于知識(shí)蒸餾的模型壓縮,等等。歡迎來(lái)自學(xué)術(shù)界和工業(yè)界的朋友加入 NeuronBlocks 開源項(xiàng)目:
項(xiàng)目地址:https://github.com/Microsoft/NeuronBlocks
論文地址:https://arxiv.org/abs/1904.09535
NeuronBlocks設(shè)計(jì)
NeuronBlocks 是基于 PyTorch 的 NLP 深度學(xué)習(xí)建模工具包,可以幫助研究員或者工程師們快速構(gòu)建自然語(yǔ)言理解任務(wù)的深度神經(jīng)網(wǎng)絡(luò)模型。該工具包的主要目標(biāo)是將 NLP 深度神經(jīng)網(wǎng)絡(luò)模型構(gòu)建的開發(fā)成本降到最低,包括模型訓(xùn)練階段和推斷階段。
NeuronBlocks 整體框架如下圖所示,包括 Block Zoo 和 Model Zoo 兩個(gè)重要組件。
Block Zoo 將常用的神經(jīng)網(wǎng)絡(luò)層抽象并封裝為可重用的標(biāo)準(zhǔn)模塊。這些模塊將被用于構(gòu)建各種針對(duì)不同自然語(yǔ)言理解任務(wù)的深度學(xué)習(xí)模型。工具包目前支持的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)模塊包括:詞嵌入、CNN、LSTM/GPU、Transformer 和各種 Attention 等。?
Model Zoo 提供大量預(yù)構(gòu)建好的深度神經(jīng)網(wǎng)絡(luò)模型,涵蓋了常見的 NLP 任務(wù)。這些模型以 JSON 配置文件的形式呈現(xiàn),用戶可以通過(guò)簡(jiǎn)單修改 Model Zoo 中的示例模型配置,即可將其應(yīng)用于自己的任務(wù)中。此外,工具包支持 Linux 和 Windows 操作系統(tǒng)、CPU 與 GPU 處理器、以及 PAI 等 GPU 調(diào)度平臺(tái)。
快速開始
NeuronBlocks 目前支持:Python 3.6, PyTorch 0.4.1,Linux/Windows,GPU/CPU。
1. 獲取源碼
2. 安裝依賴包
pip?install?torch==0.4.1
3. 運(yùn)行示例模型
cd?PROJECT_ROOT
python?train.py?--conf_path=model_zoo/demo/conf.json
#?測(cè)試
python?test.py?--conf_path=model_zoo/demo/conf.json
#?預(yù)測(cè)
python?predict.py?--conf_path=model_zoo/demo/conf.json
NeuronBlocks工作流程
用戶可以選擇 Model Zoo 中的示例模型(JSON 配置文件)開啟模型訓(xùn)練,或者利用 Block Zoo 中的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)模塊自由構(gòu)建新的模型架構(gòu),就像玩樂(lè)高積木一樣。
模型可視化工具
NeuronBlocks 提供了一個(gè)模型可視化工具,可以快速繪制模型架構(gòu)圖,如下圖所示。
NeuronBlocks優(yōu)勢(shì)
? 模型構(gòu)建:用戶只需要配置簡(jiǎn)單的 JSON 文件,就能夠構(gòu)建模型和調(diào)整參數(shù),大大減少了模型實(shí)現(xiàn)的工作量;?
? 模型分享:可以通過(guò)分享 JSON 配置文件來(lái)分享模型,使模型共享變得非常容易。對(duì)于不同的任務(wù)或模型,用戶只需維護(hù)一個(gè)通用的源碼庫(kù);?
? 代碼重用:可以在各任務(wù)與模型間共享神經(jīng)網(wǎng)絡(luò)模塊,減少重復(fù)的編程工作;?
? 平臺(tái)靈活性:可以在 Linux 和 Windows 機(jī)器上運(yùn)行,支持 CPU 和 GPU,也支持像 Open PAI 這樣的 GPU 管理平臺(tái);?
? 模型可視化:提供了一個(gè)模型可視化工具,用于觀察模型結(jié)構(gòu)及檢查 JSON 配置的正確性;?
? 可擴(kuò)展性:支持用戶貢獻(xiàn)新的神經(jīng)網(wǎng)絡(luò)模塊或者新的模型。
聯(lián)系我們
歡迎來(lái)自學(xué)術(shù)界和工業(yè)界的朋友加入 NeuronBlocks 開源項(xiàng)目,一起貢獻(xiàn)代碼!
如有任何問(wèn)題,請(qǐng)聯(lián)系:
NeuronBlocks@microsoft.com
點(diǎn)擊以下標(biāo)題查看更多往期內(nèi)容:?
目標(biāo)檢測(cè)小tricks之樣本不均衡處理
圖神經(jīng)網(wǎng)絡(luò)綜述:模型與應(yīng)用
DRr-Net:基于動(dòng)態(tài)重讀機(jī)制的句子語(yǔ)義匹配方法
小樣本學(xué)習(xí)(Few-shot Learning)綜述
萬(wàn)字綜述之生成對(duì)抗網(wǎng)絡(luò)(GAN)
可逆ResNet:極致的暴力美學(xué)
基于多任務(wù)學(xué)習(xí)的可解釋推薦系統(tǒng)
AAAI 2019 | 基于分層強(qiáng)化學(xué)習(xí)的關(guān)系抽取
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得或技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來(lái)。
??來(lái)稿標(biāo)準(zhǔn):
? 稿件確系個(gè)人原創(chuàng)作品,來(lái)稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?
? 如果文章并非首發(fā),請(qǐng)?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?
? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請(qǐng)單獨(dú)在附件中發(fā)送?
? 請(qǐng)留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們?cè)诰庉嫲l(fā)布時(shí)和作者溝通
?
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
關(guān)于PaperWeekly
PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點(diǎn)擊 |?閱讀原文?| 獲取最新論文推薦
總結(jié)
以上是生活随笔為你收集整理的微软开源项目NeuronBlocks - 像搭积木一样构建NLP深度学习模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 让Keras更酷一些:中间变量、权重滑动
- 下一篇: CVPR 2019 | STGAN: 人