Skip to content
main
Switch branches/tags
Code

Latest commit

* the first ctc draft

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* make k2 CTC separated from existing code

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* convergence bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* training acceletated by using intersection

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* an attempt to get loss values close to the baseline

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* gradient normalization added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* gtn backend added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* GradExpNormalize fix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* GradExpNormalize runtime fix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* val WER calc fix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* refactoring and mmi and crf prototypes added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* citrinet_256 config added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* mbr training added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* crf made prettier

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* trying to fix crf

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* 1st trial to stabilize training

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* forgotten change pushed

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* remove experimental features

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* handling exceptions that way has never been safe

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* graph decoding added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* wip: trying to make tlg decode work

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* some bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* more bugfixes

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* :(

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* some topos added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* cleanup

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* wer computing option added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* decode bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* aux loss and ctc_shared_blank topo added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* citrinet_384 config update

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* another topology added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* denominator assertion commented out

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* conflict resolve

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* specaugment fix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* loss split, finetuning, mbr fix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* refactor

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* shift targets and LM for ctc_compact topo

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* new topo added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* scoring rules update

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* allow for empty language model in MMI

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* bugfix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* mmi memory optimization

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* update to k2 v1.8

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* cleanup

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* large refactoring

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* missing export added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* lm loading workaround

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* token LM building

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* k2 installation added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* mmi config added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* apply black

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* remove gtn support

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* fix k2 installation

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* style fix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* fix lgtm warnings

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* add nvidia licence

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* GradExpNormalize fix

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* missing import added

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* source notice

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* fix formatting

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* minor source notices

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* put k2 installation into reinstall.sh

Signed-off-by: Aleksandr Laptev <alaptev@nvidia.com>
Signed-off-by: GNroy <laptevsasha12@gmail.com>

* aligner added

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* alert fix

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* copyright fix

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* k2 import guard and latest k2 installation

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* k2.Fsa -> 'k2.Fsa'

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* replace kwargs with configs

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* k2Mixin, bugfix

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* register LM as artifact, bugfix

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* other fixes

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* resolve conflict

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* fix lgtm and ci

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* add k2 installation to Dockerfile

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* 2nd review' fixes

Signed-off-by: GNroy <laptevsasha12@gmail.com>

* fix lgtm

Signed-off-by: GNroy <laptevsasha12@gmail.com>

Co-authored-by: Aleksandr Laptev <alaptev@nvidia.com>
Co-authored-by: Somshubra Majumdar <titu1994@gmail.com>
c45aabe

Git stats

Files

Permalink
Failed to load latest commit information.

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Documentation NeMo core license and license for collections in this repo Language grade: Python Total alerts Code style: black

NVIDIA NeMo

Introduction

NVIDIA NeMo is a conversational AI toolkit built for researchers working on automatic speech recognition (ASR), natural language processing (NLP), and text-to-speech synthesis (TTS). The primary objective of NeMo is to help researchers from industry and academia to reuse prior work (code and pretrained models) and make it easier to create new conversational AI models.

Pre-trained NeMo models.

Introductory video.

Key Features

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

Requirements

  1. Python 3.6, 3.7 or 3.8
  2. Pytorch 1.10.0 or above
  3. NVIDIA GPU for training

Documentation

Version Status Description
Latest Documentation Status Documentation of the latest (i.e. main) branch.
Stable Documentation Status Documentation of the stable (i.e. most recent release) branch.

Tutorials

A great way to start with NeMo is by checking one of our tutorials.

Getting help with NeMo

FAQ can be found on NeMo's Discussions board. You are welcome to ask questions or start discussions there.

Installation

Pip

Use this installation mode if you want the latest released version.

apt-get update && apt-get install -y libsndfile1 ffmpeg
pip install Cython
pip install nemo_toolkit['all']

Note

Depending on the shell used, you may need to use "nemo_toolkit[all]" instead in the above command.

Pip from source

Use this installation mode if you want the a version from particular GitHub branch (e.g main).

apt-get update && apt-get install -y libsndfile1 ffmpeg
pip install Cython
python -m pip install git+https://github.com/NVIDIA/NeMo.git@{BRANCH}#egg=nemo_toolkit[all]

From source

Use this installation mode if you are contributing to NeMo.

apt-get update && apt-get install -y libsndfile1 ffmpeg
git clone https://github.com/NVIDIA/NeMo
cd NeMo
./reinstall.sh

Note

If you only want the toolkit without additional conda-based dependencies, you may replace reinstall.sh with pip install -e . when your PWD is the root of the NeMo repository.

RNNT

Note that RNNT requires numba to be installed from conda.

conda remove numba
pip uninstall numba
conda install -c conda-forge numba

Megatron GPT

Megatron GPT training requires NVIDIA Apex to be installed.

git clone https://github.com/NVIDIA/apex
cd apex
git checkout c8bcc98176ad8c3a0717082600c70c907891f9cb
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" --global-option="--fast_layer_norm" ./

Docker containers:

To build a nemo container with Dockerfile from a branch, please run

DOCKER_BUILDKIT=1 docker build -f Dockerfile -t nemo:latest .

If you chose to work with main branch, we recommend using NVIDIA's PyTorch container version 22.01-py3 and then installing from GitHub.

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 --device=/dev/snd nvcr.io/nvidia/pytorch:22.01-py3

Examples

Many examples can be found under "Examples" folder.

Contributing

We welcome community contributions! Please refer to the CONTRIBUTING.md CONTRIBUTING.md for the process.

Publications

We provide an ever growing list of publications that utilize the NeMo framework. Please refer to PUBLICATIONS.md. We welcome the addition of your own articles to this list !

Citation

@article{kuchaiev2019nemo,
  title={Nemo: a toolkit for building ai applications using neural modules},
  author={Kuchaiev, Oleksii and Li, Jason and Nguyen, Huyen and Hrinchuk, Oleksii and Leary, Ryan and Ginsburg, Boris and Kriman, Samuel and Beliaev, Stanislav and Lavrukhin, Vitaly and Cook, Jack and others},
  journal={arXiv preprint arXiv:1909.09577},
  year={2019}
}

License

NeMo is under Apache 2.0 license.