Documentation Language grade: Python Code style: black
NVIDIA NeMo is a conversational AI toolkit built for researchers working on automatic speech recognition (ASR), text-to-speech synthesis (TTS), large language models (LLMs), and natural language processing (NLP). 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 Lightning and training is automatically scalable to 1000s of GPUs. Additionally, NeMo Megatron LLM models can be trained up to 1 trillion parameters using tensor and pipeline model parallelism. NeMo models can be optimized for inference and deployed for production use-cases with HuggingFace Hub and tutorials that can all be run on example scripts that support multi-GPU/multi-node training.
| Version | Status | Description |
|---|---|---|
| Latest | Documentation of the latest (i.e. main) branch. | |
| Stable | Documentation of the stable (i.e. most recent release) branch. |
A great way to start with NeMo is by checking Getting help with NeMo
FAQ can be found on NeMo's Installation
We recommend installing NeMo in a fresh Conda environment.
conda create --name nemo python==3.8
conda activate nemo
Install PyTorch using their
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
Note The command used to install PyTorch may depend on your system. Use this installation mode if you want the latest released version. Note Depending on the shell used, you may need to use Use this installation mode if you want the a version from particular GitHub branch (e.g main). Use this installation mode if you are contributing to NeMo. Note If you only want the toolkit without additional conda-based dependencies, you may replace Note that RNNT requires numba to be installed from conda. NeMo Megatron training requires NVIDIA Apex to be installed.
Install it manually if not using the NVIDIA PyTorch container. NeMo Megatron GPT has been integrated with Install it manually if not using the NVIDIA PyTorch container. Note Transformer Engine requires PyTorch to be built with CUDA 11.8. NeMo Text Processing, specifically (Inverse) Text Normalization, requires
bash NeMo/nemo_text_processing/install_pynini.sh
To build a nemo container with Dockerfile from a branch, please run If you chose to work with main branch, we recommend using NVIDIA's PyTorch container version 22.09-py3 and then installing from GitHub. Many examples can be found under folder. We welcome community contributions! Please refer to the Publications
We provide an ever growing list of publications that utilize the NeMo framework. Please refer to Citation
NeMo is under /quminzi/NeMo
Pip
apt-get update && apt-get install -y libsndfile1 ffmpeg
pip install Cython
pip install nemo_toolkit['all']
"nemo_toolkit[all]" instead in the above command.
Pip from source
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
apt-get update && apt-get install -y libsndfile1 ffmpeg
git clone https://github.com/NVIDIA/NeMo
cd NeMo
./reinstall.sh
reinstall.sh
with pip install -e . when your PWD is the root of the NeMo repository.
RNNT
conda remove numba
pip uninstall numba
conda install -c conda-forge numba
NeMo Megatron
git clone https://github.com/ericharper/apex.git
cd apex
git checkout nm_v1.11.0
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" --global-option="--fast_layer_norm" --global-option="--distributed_adam" --global-option="--deprecated_fused_adam" ./
Transformer Engine
NeMo Text Processing
Docker containers:
DOCKER_BUILDKIT=1 docker build -f Dockerfile -t nemo:latest .
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.09-py3
Examples
Contributing
@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