歡迎光臨
每天分享高質量文章

微軟開源專案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 ZooModel 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. 獲取原始碼

git clone https://github.com/Microsoft/NeuronBlocks

2. 安裝依賴包

pip install -r requirements.txt
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 開源專案,一起貢獻代碼!

 

如有任何問題,請聯繫:

[email protected]

已同步到看一看
赞(0)

分享創造快樂