微软开源项目 NeuronBlocks:像搭积木一样构建 NLP 深度学习模型!

2019 年 5 月 12 日 CSDN

作者 | 微软亚洲互联网工程院 (STCA) NLP Group

责编 | 胡巍巍

在构建自然语言理解深度学习模型过程中,研究人员或者工程师们经常需要在编程细节和代码调试上花费大量精力,而不是专注于模型架构设计与参数调整。

为了提升构建深度模型的效率,微软亚洲互联网工程院自然语言理解团队 (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。

获取源码:

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

安装依赖包:

pip install -r requirements.txt

pip install torch==0.4.1 

运行示例模型:

# 训练

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

作者简介:微软亚洲互联网工程院 (STCA) NLP Group:团队借助微软Bing,Cortana,和Office丰富应用场景、海量数据、超级计算平台以及一流人才的长期积累,立足未来,开放合作!致力于NLP领域AI核心技术和产品的研发,强调产品应用与研究并重,覆盖NLP全栈,包括基础分词,拼写改错,词法分析,知识挖掘,知识图谱,到智能检索、问答系统、机器阅读、机器翻译、智能对话等。

【END】

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

 热 文 推 荐 

☞ 一顿操作猛如虎!云原生应用为何如此优秀?

☞ 开了个会:破局企业云通信,华为加速 Buff 开发者!

☞ Google 究竟是不是要用 Fuchsia OS 取代 Android?

☞ 最全 Python 算法实现资源汇总!

☞ @程序员,不加班就滚吧 | 程序员有话说

☞ 独家! 币安被盗原因找到了! 7074枚比特币竟是这样丢掉的

☞ 用对方法,开发与部署深度学习原来如此简单……

☞ 什么叫云原生应用?| 技术头条

☞ 补偿100万?Oracle裁900+程序员,新方案已出!

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢
登录查看更多
6

相关内容

微软 STCA · Search & Distribution Group,致力于自然语言处理(NLP)和 AI 核心技术的深入研究、成果在全球产品中的落地应用,由北京、苏州两地的 200 多位热爱技术、勤于实践、勇于梦想的科学家和工程师构成。
模型优化基础,Sayak Paul,67页ppt
专知会员服务
74+阅读 · 2020年6月8日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
209+阅读 · 2020年4月26日
专知会员服务
197+阅读 · 2020年3月6日
已删除
将门创投
6+阅读 · 2019年4月22日
最流行的6大开源自然语言处理库对比
大数据技术
8+阅读 · 2018年8月14日
GitHub获赞过千:PyTorch 自然语言处理项目Top 5
新智元
12+阅读 · 2018年7月10日
Arxiv
3+阅读 · 2019年9月5日
Arxiv
21+阅读 · 2018年8月30日
Bidirectional Attention for SQL Generation
Arxiv
4+阅读 · 2018年6月21日
Arxiv
5+阅读 · 2018年1月18日
VIP会员
Top
微信扫码咨询专知VIP会员