Github项目推荐 | NeuronBlocks:微软发布的模块化深度学习NLP工具集

2019-05-13 19:01:58 浏览数 (1)

概览

NeuronBlocks是一个NLP深度学习建模工具包,可帮助工程师构建用于NLP任务的神经网络模型训练的端到端管道。该工具包的主要目标是将NLP深度神经网络模型构建的开发成本降到最低,包括训练阶段和推理阶段。有关详细信息,请查看我们的论文:NeuronBlocks -- Building Your NLP DNN Models Like Playing Lego

Github项目地址:

https://github.com/Microsoft/NeuronBlock

NeuronBlocks由两个主要组件组成:Block ZooModel Zoo

Block Zoo中,我们提供常用的神经网络组件作为模型架构设计的构建块。

Model Zoo中,我们以JSON配置文件的形式为常见的NLP任务提供了一套NLP模型。

工具包用法

用户可以选择Model Zoo中的现有模型(配置文件)来开始模型训练,或者通过利用Block Zoo中的神经网络块创建新模型,就像玩乐高积木一样。

支持NLP任务

  • 句子分类
  • 问答匹配
  • 文本含义
  • 插槽标记
  • 机器阅读理解
  • 更多任务正在开发中

NeuronBlocks的推荐使用人群

使用神经网络模型解决NLP问题时面临以下挑战的工程师或研究人员:

  • 框架选择多,研究成本高。
  • 编码成本高。大量的细节使得调试非常困难。
  • 快速模型架构演变。工程师很难理解他们背后的数学原理。
  • 模型代码优化需要深厚的专业知识。
  • 模型平台兼容性要求。它需要额外的编码工作才能使模型在不同的平台上运行,例如Linux / Windows,GPU / CPU。

利用NeuronBlocks进行NLP神经网络模型训练的优势包括:

  • 模型构建:对于模型构建和参数调整,用户只需编写简单的JSON配置文件,这大大减少了实现新思想的工作量。
  • 模型共享:通过JSON文件可以非常容易地进行模型共享模型,而非讨厌的代码。对于不同的模型或任务,我们的用户只需要维护一个集中的源代码库。
  • 代码可重用性:可以在各种模型或任务之间轻松共享公共代码块,从而减少重复编码工作。
  • 平台灵活性:NeuronBlocks可以在Linux和Windows机器上运行,同时使用CPU和GPU。它还支持像Philly和PAI这样的GPU平台上的培训。
  • 模型可视化:提供了一个模型可视化器,用于可视化和配置正确性检查,帮助用户在调试过程中轻松地查看可视化模型架构。
  • 可扩展性:NeuronBlocks是可扩展的,允许用户贡献新块或贡献新模型(JSON文件)。

NeuronBlocks入门

请查看 Tutorial.md 和 代码文档 。

贡献

NeuronBlocks在开放模型中运行。它由微软的STCA NLP Group设计和开发。我们亦欢迎学术界及业界人士作出贡献。有关更多的详细信息,请查看Contributing.md 。

正在进行的工作

  • 模型压缩的知识提炼。重型模型的知识提炼,如BERT,OpenAI Transformer。基于师生的知识提炼是模型压缩的常用方法。
  • 多语言支持
  • NER模型支持
  • 多任务培训支持

参考文献

论文:NeuronBlocks -- Building Your NLP DNN Models Like Playing Lego

https://arxiv.org/abs/1904.09535.

相关项目

OpenPAI是一个开源平台,可提供完整的AI模型培训和资源管理功能,可以轻松扩展和支持各种规模的内部部署、云和混合环境。

AI样本:深度学习样本和项目集合。它包含了许多经典的深度学习算法和具有不同框架的应用程序,这对于开始深度学习的初学者来说是一个很好的入门工具。

0 人点赞