- Notifications
You must be signed in to change notification settings - Fork192
NLP DNN Toolkit - Building Your NLP DNN Models Like Playing Lego
License
microsoft/NeuronBlocks
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
- Overview
- Get Started in 60 Seconds
- Who should consider using NeuronBlocks
- Contribute
- Reference
- Related Project
- License
- Contact
NeuronBlocks is aNLP deep learning modeling toolkit that helps engineers/researchers to build end-to-end pipelines for neural network model training for NLP tasks. The main goal of this toolkit is to minimize developing cost for NLP deep neural network model building, including both training and inference stages.
NeuronBlocks consists of two major components:Block Zoo andModel Zoo.
- InBlock Zoo, we provide commonly used neural network components as building blocks for model architecture design.
- InModel Zoo, we provide a suite of NLP models for common NLP tasks, in the form ofJSON configuration files.
- English
- Chinese
- Sentence Classification
- Sentiment Analysis
- Question Answering Matching
- Textual Entailment
- Slot tagging
- Machine Reading Comprehension
- Knowledge Distillation for Model Compression
- More on-going
Users can either pick existing models (config files) inModel Zoo to start model training or create new models by leveraging neural network blocks inBlock Zoo just like playing with Lego.
Note: NeuronBlocks requiresPython 3.6 and above.
Clone this project.
git clone https://github.com/Microsoft/NeuronBlocks
Install Python packages in requirements.txt by the following command.
pip install -r requirements.txt
Install PyTorch (NeuronBlocks supportsPyTorch 0.4.1 and above).
ForLinux, run the following command:
pip install"torch>=0.4.1"ForWindows, we suggest you to install PyTorch viaConda by following the instruction ofPyTorch.
Get started by trying the given examples. BothLinux/Windows, GPU/CPU are supported. ForWindows, we suggest you to use PowerShell instead of CMD.
Tips: in the following instruction, PROJECTROOT denotes the root directory of this project.
# traincd PROJECT_ROOTpython train.py --conf_path=model_zoo/demo/conf.json# testpython test.py --conf_path=model_zoo/demo/conf.json# predictpython predict.py --conf_path=model_zoo/demo/conf.json
For prediction, NeuronBlocks have two modes:Interactive andBatch.
- Interactive Prediction Mode: The interactive mode provides interactive interface, users can input case according to corresponding prompt message and get realtime prediction result from trained model, and input "exit" to exit interactive interface.
# use the above example# interactive predictionpython predict.py --conf_path=model_zoo/demo/conf.json --predict_mode='interactive'
- Batch Prediction Mode: For batched cases prediction, NeuronBlocks provides batch prediction mode which receives a cases file as input and write the prediction results in the prediction file.
# use the above example# batch predictionpython predict.py --conf_path=model_zoo/demo/conf.json --predict_mode='batch' --predict_data_path=dataset/demo/predict.tsv
For more details, please refer toTutorial.md andCode documentation.
Engineers or researchers who face the following challenges when using neural network models to address NLP problems:
- Many frameworks to choose and high framework studying cost.
- Heavy coding cost. A lot of details make it hard to debug.
- Fast Model Architecture Evolution. It is difficult for engineers to understand the mathematical principles behind them.
- Model Code optimization requires deep expertise.
- Model Platform Compatibility Requirement. It requires extra coding work for the model to run on different platforms, such as Linux/Windows, GPU/CPU.
The advantages of leveraging NeuronBlocks for NLP neural network model training includes:
Model Building: for model building and parameter tuning, users only need to write simple JSON config files, which greatly minimize the effort of implementing new ideas.
Model Sharing It is super easy to share models just through JSON files, instead of nasty codes. For different models or tasks, our users only need to maintain one single centralized source code base.
Code Reusability: Common blocks can be easily shared across various models or tasks, reducing duplicate coding work.
Platform Flexibility: NeuronBlocks can run both on Linux and Windows machines, using both CPU and GPU. It also supports training on GPU platforms like Philly and PAI.
CPU inference Single-GPU inference Multi-GPU inference CPU train ✓ ✓ ✓ Single-GPU train ✓ ✓ ✓ Multi-GPU train ✓ ✓ ✓ Model Visualization: A model visualizer is provided for visualization and configure correctness checking, which helps users to visualize the model architecture easily during debugging.
Extensibility: NeuronBlocks is extensible, allowing users to contribute new blocks or contributing novel models (JSON files).
NeuronBlocks operates in an open model. It is designed and developed bySTCA NLP Group, Microsoft. Contributions from academia and industry are also highly welcome. For more details, please refer toContributing.md.
Anyone who are familiar with are highly encouraged to contribute code.
- Knowledge Distillation for Model Compression. Knowledge distillation for heavy models such as BERT, OpenAI Transformer. Teacher-Student based knowledge distillation is one common method for model compression.
- Multi-Lingual Support
- NER Model Support
- Multi-Task Training Support
NeuronBlocks -- Building Your NLP DNN Models Like Playing Lego. EMNLP 2019, athttps://arxiv.org/abs/1904.09535.
@article{gong2019neuronblocks, title={NeuronBlocks--Building Your NLP DNN Models Like Playing Lego}, author={Gong, Ming and Shou, Linjun and Lin, Wutao and Sang, Zhijie and Yan, Quanjia and Yang, Ze, Cheng, Feixiang and Jiang, Daxin}, journal={arXiv preprint arXiv:1904.09535}, year={2019}}- OpenPAI is an open source platform that provides complete AI model training and resource management capabilities, it is easy to extend and supports on-premise, cloud and hybrid environments in various scale.
- Samples for AI: a deep learning samples and projects collection. It contains a lot of classic deep learning algorithms and applications with different frameworks, which is a good entry for the beginners to get started with deep learning.
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under theMIT License.
If you have any questions, please contactNeuronBlocks@microsoft.com
If you have wechat, you can also add the following account:
About
NLP DNN Toolkit - Building Your NLP DNN Models Like Playing Lego
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors13
Uh oh!
There was an error while loading.Please reload this page.




