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

640?wx_fmt=gif

640?wx_fmt=jpeg

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

责编 | 胡巍巍

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

为了提升构建深度模型的效率,微软亚洲互联网工程院自然语言理解团队 (STCA NLP Group, Microsoft) 推出了开源项目NeuronBlocks - 自然语言处理任务的模块化深度学习建模工具包。

NeuronBlocks将常用的神经网络层封装为标准模块,通过配置简单的配置文件,就可以轻松构建复杂的深度神经网络模型。

与此同时,工具包还提供了一系列针对常见NLP 任务的经典模型。NeuronBlocks能使工程师们在几秒钟内快速构建和训练各种自然语言处理模型。

工具包的可扩展性很强,支持快速加入新的神经元模块用于新的网络模型的构建,最大程度地避免重复的代码工作。

目前工具包支持的任务包括:句子分类(二/多分类),文本匹配,序列标注,阅读理解,基于知识蒸馏的模型压缩,等等。欢迎来自学术界和工业界的朋友加入NeuronBlocks开源项目:

  • 项目地址:https://github.com/Microsoft/NeuronBlocks 

  • 论文地址:https://arxiv.org/abs/1904.09535 

640?wx_fmt=png

 

640?wx_fmt=png

NeuronBlocks设计

 

NeuronBlocks是基于PyTorch的NLP深度学习建模工具包,可以帮助研究员或者工程师们快速构建自然语言理解任务的深度神经网络模型。

该工具包的主要目标是将NLP深度神经网络模型构建的开发成本降到最低,包括模型训练阶段和推断阶段。

NeuronBlocks整体框架如下图所示,包括Block ZooModel Zoo两个重要组件。

640?wx_fmt=png

Block Zoo将常用的神经网络层抽象并封装为可重用的标准模块。这些模块将被用于构建各种针对不同自然语言理解任务的深度学习模型。

工具包目前支持的标准神经网络模块包括:词嵌入、CNN、LSTM/GPU、Transformer和各种Attention等。

Model Zoo提供大量预构建好的深度神经网络模型,涵盖了常见的NLP任务。这些模型以JSON配置文件的形式呈现,用户可以通过简单修改Model Zoo中的示例模型配置,即可将其应用于自己的任务中。

此外,工具包支持Linux和Windows操作系统、CPU与GPU处理器、以及PAI等GPU调度平台。

 

640?wx_fmt=png

快速开始

 

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 

 

640?wx_fmt=png

NeuronBlocks工作流程

 

用户可以选择Model Zoo中的示例模型(JSON配置文件)开启模型训练,或者利用Block Zoo中的标准神经网络模块自由构建新的模型架构,就像玩乐高积木一样。

640?wx_fmt=png

 

640?wx_fmt=png

模型可视化工具

 

NeuronBlocks提供了一个模型可视化工具,可以快速绘制模型架构图,如下图所示。

640?wx_fmt=png

 

640?wx_fmt=png

NeuronBlocks优势

 

  • 模型构建:用户只需要配置简单的JSON文件,就能够构建模型和调整参数,大大减少了模型实现的工作量;

  • 模型分享:可以通过分享JSON配置文件来分享模型,使模型共享变得非常容易。对于不同的任务或模型,用户只需维护一个通用的源码库;

  • 代码重用:可以在各任务与模型间共享神经网络模块,减少重复的编程工作;

  • 平台灵活性:可以在Linux和Windows机器上运行,支持CPU和GPU,也支持像Open PAI这样的GPU管理平台;

  • 模型可视化:提供了一个模型可视化工具,用于观察模型结构及检查JSON配置的正确性;

  • 可扩展性:支持用户贡献新的神经网络模块或者新的模型。

联系我们:

欢迎来自学术界和工业界的朋友加入NeuronBlocks开源项目,一起贡献代码!

如有任何问题,请联系:NeuronBlocks@microsoft.com

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

别惊讶!人工智能时代即将到来!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

 

【END】

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

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

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

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

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

戳他了解更多↓↓↓

640?wx_fmt=jpeg

 热 文 推 荐 

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

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

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

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

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

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

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

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

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

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

640?wx_fmt=png你点的每个“在看”,我都认真当成了喜欢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值