Giter Site home page Giter Site logo

kristiankielhofner / nemo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nvidia/nemo

0.0 0.0 0.0 134.15 MB

NeMo: a toolkit for conversational AI

Home Page: https://nvidia.github.io/NeMo/

License: Apache License 2.0

Python 99.63% Shell 0.24% Dockerfile 0.13%

nemo's Introduction

Project Status: Active โ€“ The project has reached a stable, usable state and is being actively developed. NeMo documentation on GitHub pages NeMo core license and license for collections in this repo Language grade: Python Total alerts Code style: black

NVIDIA NeMo

NeMo is a toolkit for creating Conversational AI applications.

NeMo toolkit makes it possible for researchers to easily compose complex neural network architectures for conversational AI using reusable components - Neural Modules. Neural Modules are conceptual blocks of neural networks that take typed inputs and produce typed outputs. Such modules typically represent data layers, encoders, decoders, language models, loss functions, or methods of combining activations.

The toolkit comes with extendable collections of pre-built modules for automatic speech recognition (ASR), natural language processing (NLP) and text synthesis (TTS).

Built for speed, NeMo can utilize NVIDIA's Tensor Cores and scale out training to multiple GPUs and multiple nodes. NeMo has integration with NVIDIA Jarvis.

Introduction

Getting started

THE LATEST STABLE VERSION OF NeMo is 0.10.1 (Available via PIP).

Requirements

  1. Python 3.6 or 3.7
  2. PyTorch 1.4.* with GPU support
  3. (optional, for best performance) NVIDIA APEX. Install from here: https://github.com/NVIDIA/apex

Docker containers

NeMo docker container

You can use NeMo's docker container with all dependencies pre-installed

docker run --runtime=nvidia -it --rm -v --shm-size=16g -p 8888:8888 -p 6006:6006 --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/nemo:v0.10

If you are using the NVIDIA NGC PyTorch container follow these instructions

  • Pull the docker: docker pull nvcr.io/nvidia/pytorch:20.01-py3
  • Run:docker run --gpus all -it --rm -v <nemo_github_folder>:/NeMo --shm-size=8g -p 8888:8888 -p 6006:6006 --ulimit memlock=-1 --ulimit stack=67108864 nvcr.io/nvidia/pytorch:20.01-py3
  • apt-get update && apt-get install -y libsndfile1 ffmpeg && pip install Cython
  • pip install nemo_toolkit Installs NeMo core only.
  • pip install nemo_toolkit[all] Installs NeMo core and ALL collections
  • pip install nemo_toolkit[asr] Installs NeMo core and ASR (Speech Recognition) collection
  • pip install nemo_toolkit[nlp] Installs NeMo core and NLP (Natural Language Processing) collection
  • pip install nemo_toolkit[tts] Installs NeMo core and TTS (Speech Synthesis) collection

See examples/start_here to get started with the simplest example.

Tutorials

Pre-trained models

Modality Model Trained on
ASR Jasper10x5DR_En LibriSpeech, WSJ, Mozilla Common Voice (en_1488h_2019-12-10), Fisher, Switchboard, and Singapore English National Speech Corpus (Part 1)
ASR QuartzNet15x5En LibriSpeech, WSJ, Mozilla Common Voice (en_1087h_2019-06-12), Fisher, and Switchboard
ASR QuartzNet15x5Zh AISHELL-2 Mandarin
NLP BERT base uncased English Wikipedia and BookCorpus dataset seq len <= 512
NLP BERT large uncased English Wikipedia and BookCorpus dataset seq len <= 512
TTS Tacotron2 LJspeech
TTS WaveGlow LJspeech

DEVELOPMENT

If you'd like to use master branch and/or develop NeMo you can run "reinstall.sh" script.

Documentation (master branch).

Installing From Github

If you prefer to use NeMo's latest development version (from GitHub) follow the steps below:

  1. Clone the repository git clone https://github.com/NVIDIA/NeMo.git
  2. Go to NeMo folder and re-install the toolkit with collections:
./reinstall.sh

Style tests

python setup.py style  # Checks overall project code style and output issues with diff.
python setup.py style --fix  # Tries to fix error in-place.
python setup.py style --scope=tests  # Operates within certain scope (dir of file).

** NeMo Test Suite**

NeMo contains test suite divided into 5 subsets:
  1. unit: unit tests, i.e. testing a single, well isolated functionality
  2. integration: tests checking the elements when integrated into subsystems
  3. system: tests working at the highest integration level
  4. acceptance: tests checking whether the developed product/model passes the user defined acceptance criteria
  5. docs: tests related to documentation (deselect with '-m "not docs"')

The user can run all the tests locally by simply executing:

pytest

In order to run a subset of tests one can use the -m argument followed by the subset name, e.g. for system subset:

pytest -m system

By default, all the tests will be executed on GPU. There is also an option to run the test suite on CPU by passing the --cpu command line argument, e.g.:

pytest -m unit --cpu

Citation

If you are using NeMo please cite the following publication

@misc{nemo2019,
    title={NeMo: a toolkit for building AI applications using Neural Modules},
    author={Oleksii Kuchaiev and Jason Li and Huyen Nguyen and Oleksii Hrinchuk and Ryan Leary and Boris Ginsburg and Samuel Kriman and Stanislav Beliaev and Vitaly Lavrukhin and Jack Cook and Patrice Castonguay and Mariya Popova and Jocelyn Huang and Jonathan M. Cohen},
    year={2019},
    eprint={1909.09577},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

nemo's People

Contributors

alexgrinch avatar blisc avatar borisdayma avatar borisfom avatar chiphuyen avatar drnikolaev avatar ekmb avatar fayejf avatar harisankarh avatar hkelly33 avatar jbalam-nv avatar khcs avatar kkersten avatar mr-muyu avatar muyangdu avatar nithinraok avatar okuchaiev avatar pchitale1 avatar purn3ndu avatar qijiaxing avatar redoctopus avatar ryanleary avatar seovchinnikov avatar stasbel avatar titu1994 avatar tkornuta-nvidia avatar vahidoox avatar vsl9 avatar yashv28 avatar yzhang123 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.