NeuronBlocks模块化 NLP 深度学习建模工具包

联合创作 · 2023-09-26 05:04

NeuronBlocks:像搭积木一样构建自然语言理解深度学习模型


中文教程


概览


NeuronBlocks 是一个模块化 NLP 深度学习建模工具包,可以帮助工程师/研究者们快速构建 NLP 任务的神经网络模型。 该工具包的主要目标是将 NLP 中深度神经网络模型构建的开发成本降到最低,包括训练阶段和推断阶段。


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



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

  • 在 Model Zoo 中, 我们提供了 JSON配置文件 形式的一系列经典 NLP 深度学习模型。



支持的语言



  • English

  • 中文


支持的 NLP 任务



  • 句子分类

  • 情感分析

  • 问答匹配

  • 文本蕴含

  • 序列标注

  • 阅读理解

  • 基于知识蒸馏的模型压缩

  • 更多……


使用方法


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



快速入门


安装


注: NeuronBlocks支持 Python 3.6及以上



  1. Clone本项目:


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

  2. 安装Python依赖包:


    pip install -r requirements.txt

  3. 安装PyTorch ( NeuronBlocks支持 PyTorch 0.4.1 及以上):

    对于 Linux ,运行以下命令:


    pip install "torch>=0.4.1"

    对于 Windows ,建议按照PyTorch官方安装教程通过Conda安装PyTorch。



快速开始


通过以下示例快速入门NeuronBlocks。对于Windows,建议使用PowerShell工具运行命令。


提示: 在下文中, PROJECTROOT表示本项目的根目录。



# 训练
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

更多细节, 请查看Tutorial_zh_CN.md 和 Code documentation


适用人群


使用用神经网络模型解决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 鼓励用户贡献新的神经网络模块或者新的模型。

浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报