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