Joint Intent classification and Slot classification is a task of classifying an Intent and detecting all relevant Slots (Entities) for this Intent in a query. For example, in the query: What is the weather in Santa Clara tomorrow morning? , we would like to classify the query as a Weather Intent, and detect Santa Clara as a Location slot and tomorrow morning as a date_time slot.
Intents and Slots names are usually task specific and defined as labels in the training data. This is a fundamental step that is executed in any task-driven Conversational Assistant. The primary use case of this model is to jointly identify Intents and Entities in a given user query.
This is a pretrained Bert based model with 2 linear classifier heads on the top of it, one for classifying an intent of the query and another for classifying slots for each token of the query. This model is trained with the combined loss function on the Intent and Slot classification task on the given dataset.
For each query the model will classify it as one the intents from the intent dictionary and for each word of the query it will classify it as one of the slots from the slot dictionary, including out of scope slot for all the remaining words in the query which does not fall in another slot category. Out of scope slot (O) is a part of slot dictionary that the model is trained on.
We used a proprietary data set that have queries releated to weather, smalltalk, map and POI domains.
List of the recognized Intents for this model:
List of the recognized Entities:
Misty model is trained on dataset of multiple domains weather, poi, smalltalk and nomatch to identify outlier queries. This model is trained on over 20000 unique queries from various domain/intents for 50 epochs. It's performance is evaluated on an held out set of around 3500 unique queries. On the evaluation set it has show f1 score of 98.97 in intent classification and f1 of 99.62 in slot identification.
These model checkpoints are intended to be used with the Train Adapt Optimize (TAO) Toolkit. In order to use these checkpoints, there should be a specification file (.yaml) that specifies hyperparameters, datasets for training and evaluation, and any other information needed for the experiment. For more information on the experiment spec files for each use case, please refer to the TAO Toolkit User Guide.
Note: The model is encrypted and will only operate with the model load key tlt_encode.
To fine-tune from a model checkpoint (.tlt), use the following command (`` parameter should be a valid path to the file that specifies the fine-tuning hyperparameters, the dataset to fine-tune on, the dataset to evaluate on, epochs number):
!tao intent_slot_classification finetune -e <experiment_spec> \
-m <model_checkpoint> \
-g <num_gpus>
To evaluate an existing dataset using a model checkpoint (.tlt), use the following command (`` parameter should be a valid path to the file that specifies the dataset that is being evaluated):
!tao intent_slot_classification evaluate -e <experiment_spec> \
-m <model_checkpoint>
To evaluate a model checkpoint (.tlt) on a set of query examples, use the following command (`` parameter should be a valid path to the file that specifies list of queries to test):
!tao intent_slot_classification infer -e <experiment_spec> \
-m <model_checkpoint>
The model architecture is based on the paper: https://arxiv.org/pdf/1902.10909.pdf
By downloading and using the models and resources packaged with TAO Conversational AI, you would be accepting the terms of the Riva license
More information on about TAO Toolkit and pre-trained models can be found at the [NVIDIA Developer Zone]https://developer.nvidia.com/tao-toolkit Read the TAO Toolkit getting Started guide and release notes If you have any questions or feedback, please refer to the discussions on TAO Toolkit Developer Forums Deploy your model for Production using Riva. Learn more about Riva framework
NVIDIA’s platforms and application frameworks enable developers to build a wide array of AI applications. Consider potential algorithmic bias when choosing or creating the models being deployed. Work with the model’s developer to ensure that it meets the requirements for the relevant industry and use case; that the necessary instruction and documentation are provided to understand error rates, confidence intervals, and results; and that the model is being used under the conditions and in the manner intended.