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

Posted CSDN

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微软开源项目 NeuronBlocks:像搭积木一样构建 NLP 深度学习模型!相关的知识,希望对你有一定的参考价值。

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

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

责编 | 胡巍巍

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

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

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

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

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

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

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


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

NeuronBlocks设计


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

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

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

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

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

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

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

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


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

快速开始


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:像搭积木一样构建 NLP 深度学习模型!

NeuronBlocks工作流程


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

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


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

模型可视化工具


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

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


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

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)

戳他了解更多↓↓↓

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

 热 文 推 荐 


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

你点的每个“在看”,我都认真当成了喜欢

以上是关于微软开源项目 NeuronBlocks:像搭积木一样构建 NLP 深度学习模型!的主要内容,如果未能解决你的问题,请参考以下文章

架构思维:如何让写程序像搭积木一样

造汽车就像搭积木!你的车是模块化生产的吗?

springboot实战开发全套教程,让开发像搭积木一样简单!Github星标已上10W+!

机器人自己造自己,像搭积木一样轻松 | MIT

架构思维:如何让写程序像搭积木一样轻松?

Jetpack从入门到精通全家桶(含项目实战 附Demo)