End to End workflow for question answering starting with training in TAO Toolkit and deployment using Riva.
Question Answering
The Question Answering task in NLP pertains to building a model which can answer questions posed in natural language. Many datasets (including SQuAD, the dataset we use in this notebook) pose this as a reading comprehension task i.e. given a question and a context, the goal is to predict the span within the context with a start and end position which indicates the answer to the question. For every word in the training dataset we predict:
- likelihood this word is the start of the span
- likelihood this word is the end of the span
The best place to get started with TAO Toolkit - Question Answering would be the TAO - Question Answering jupyter notebooks. This resource has two notebooks included.
- Training: Sample workflow for training a question answering model and export the model to a
.rivafile - Deployment: Sample workflow to consume the
.rivafile and deploy it to Riva.
If you are a seasoned Conversation AI developer we recommend installing TAO and referring to the TAO documentation for usage information.
Pre-Requisites
Please make sure to install the following before proceeding further:
- python 3.6.9
- docker-ce > 19.03.5
- docker-API 1.40
- nvidia-container-toolkit > 1.3.0-1
- nvidia-container-runtime > 3.4.0-1
- nvidia-docker2 > 2.5.0-1
- nvidia-driver >= 455.23
Note: A compatible NVIDIA GPU would be required.
Installation
We recommend that you install TAO Toolkit inside a virtual environment. The steps to do the same are as follows.
virtualenv -p python3
source /bin/activate
pip install jupyter notebook # If you need to run the notebooks
TAO Toolkit is a python package that is hosted in nvidia python package index. You may install by using python’s package manager, pip.
pip install nvidia-pyindex
pip install nvidia-tao
To download the jupyter notebook please:
- Download the samples using the ngc cli with the following command
ngc registry resource download-version "nvidia/tao/questionanswering_notebook:v1.0"
- Instantiate the jupyter notebook server
jupyter notebook --ip 0.0.0.0 --allow-root --port 8888
License
By downloading and using the models and resources packaged with TAO Toolkit Conversational AI, you would be accepting the terms of the Riva license