NeuronBlocks:像搭积木一样构建自然语言理解深度学习模型
中文教程
概览NeuronBlocks是一个模块化NLP深度学习建模工具包,可以帮助工程师/研究者们快速构建NLP任务的神经网络模型。该工具包的主要目标是将NLP中深度神经网络模型构建的开发成本降到最低,包括训练阶段和推断阶段。
NeuronBlocks包括 BlockZoo 和 ModelZoo 两个重要组件,其整体框架如下图所示。
在 BlockZoo 中,我们提供了常用的神经网络组件作为模型架构设计的构建模块。在 ModelZoo 中,我们提供了 JSON配置文件 形式的一系列经典NLP深度学习模型。支持的语言English中文支持的NLP任务句子分类情感分析问答匹配文本蕴含序列标注阅读理解基于知识蒸馏的模型压缩更多……使用方法用户可以选择 ModelZoo 中的示例模型(JSON配置文件)开启模型训练,或者利用 BlockZoo 中的神经网络模块构建新的模型,就像玩乐高积木一样。
快速入门安装注:NeuronBlocks支持 Python3.6及以上
Clone本项目:
gitclonehttps://github.com/Microsoft/NeuronBlocks安装Python依赖包:
pipinstall-rrequirements.txt安装PyTorch( NeuronBlocks支持 PyTorch0.4.1 及以上):
对于 Linux ,运行以下命令:
pipinstall"torch>=0.4.1"对于 Windows ,建议按照PyTorch官方安装教程通过Conda安装PyTorch。
快速开始通过以下示例快速入门NeuronBlocks。对于Windows,建议使用PowerShell工具运行命令。
提示:在下文中,PROJECTROOT表示本项目的根目录。
#训练cdPROJECT_ROOTpythontrain.py--conf_path=model_zoo/demo/conf.json#测试pythontest.py--conf_path=model_zoo/demo/conf.json#预测pythonpredict.py--conf_path=model_zoo/demo/conf.json更多细节,请查看Tutorial_zh_CN.md 和 Codedocumentation。
适用人群使用用神经网络模型解决NLP任务时面临以下挑战的工程师和研究者们:
很多框架可以选择,且框架学习成本高;繁重的编程工作,大量细节使其难以调试;快速迭代的模型架构,使工程师们很难完全理解其背后的数学原理;模型代码优化需要深厚的专业知识;平台兼容性要求,需要额外的编程工作才能使模型运行在不同的平台上,如Linux/Windows,GPU/CPU。利用NeuronBlocks进行NLP神经网络模型训练的优势包括:
模型构建:用户只需要配置简单的JSON文件,就能够构建模型和调整参数,大大减少了模型实现的工作量;模型分享:可以通过分享JSON配置文件来分享模型,使模型共享变得非常容易。对于不同的任务或模型,用户只需维护一个通用的源码库;代码重用:可以在各任务与模型间共享神经网络模块,减少重复的编程工作;平台灵活性:NeuronBlocks可以在Linux和Windows机器上运行,支持CPU和GPU,也支持像Philly和PAI这样的GPU管理平台; CPU预测Single-GPU预测Multi-GPU预测CPU训练✓✓✓Single-GPU训练✓✓✓Multi-GPU训练✓✓✓模型可视化:NeuronBlocks提供了一个模型可视化工具,用于观察模型结构及检查JSON配置的正确性可扩展性:NeuronBlocks鼓励用户贡献新的神经网络模块或者新的模型。
评论