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