Instructions to use AmazonScience/qanlu with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use AmazonScience/qanlu with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("question-answering", model="AmazonScience/qanlu")# Load model directly from transformers import AutoTokenizer, AutoModelForQuestionAnswering tokenizer = AutoTokenizer.from_pretrained("AmazonScience/qanlu") model = AutoModelForQuestionAnswering.from_pretrained("AmazonScience/qanlu", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| language: en | |
| license: cc-by-4.0 | |
| widget: | |
| - context: "Yes. No. I'm looking for a cheap flight to Boston." | |
| datasets: | |
| - atis | |
| # Question Answering NLU | |
| Question Answering NLU (QANLU) is an approach that maps the NLU task into question answering, | |
| leveraging pre-trained question-answering models to perform well on few-shot settings. Instead of | |
| training an intent classifier or a slot tagger, for example, we can ask the model intent- and | |
| slot-related questions in natural language: | |
| ``` | |
| Context : Yes. No. I'm looking for a cheap flight to Boston. | |
| Question: Is the user looking to book a flight? | |
| Answer : Yes | |
| Question: Is the user asking about departure time? | |
| Answer : No | |
| Question: What price is the user looking for? | |
| Answer : cheap | |
| Question: Where is the user flying from? | |
| Answer : (empty) | |
| ``` | |
| Note the "Yes. No. " prepended in the context. Those are to allow the model to answer intent-related questions (e.g. "Is the user looking for a restaurant?"). | |
| Thus, by asking questions for each intent and slot in natural language, we can effectively construct an NLU hypothesis. For more details, please read the paper: [Language model is all you need: Natural language understanding as question answering](https://assets.amazon.science/33/ea/800419b24a09876601d8ab99bfb9/language-model-is-all-you-need-natural-language-understanding-as-question-answering.pdf). | |
| ## Model training | |
| Instructions for how to train and evaluate a QANLU model, as well as the necessary code for ATIS are in the [Amazon Science repository](https://github.com/amazon-research/question-answering-nlu). | |
| ## Intended use and limitations | |
| This model has been fine-tuned on ATIS (English) and is intended to demonstrate the power of this approach. For other domains or tasks, it should be further fine-tuned | |
| on relevant data. | |
| ## Use in transformers: | |
| ```python | |
| from transformers import AutoTokenizer, AutoModelForQuestionAnswering, pipeline | |
| tokenizer = AutoTokenizer.from_pretrained("AmazonScience/qanlu", use_auth_token=True) | |
| model = AutoModelForQuestionAnswering.from_pretrained("AmazonScience/qanlu", use_auth_token=True) | |
| qa_pipeline = pipeline('question-answering', model=model, tokenizer=tokenizer) | |
| qa_input = { | |
| 'context': 'Yes. No. I want a cheap flight to Boston.', | |
| 'question': 'What is the destination?' | |
| } | |
| answer = qa_pipeline(qa_input) | |
| ``` | |
| ## Citation | |
| If you use this work, please cite: | |
| ``` | |
| @inproceedings{namazifar2021language, | |
| title={Language model is all you need: Natural language understanding as question answering}, | |
| author={Namazifar, Mahdi and Papangelis, Alexandros and Tur, Gokhan and Hakkani-T{\"u}r, Dilek}, | |
| booktitle={ICASSP 2021-2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, | |
| pages={7803--7807}, | |
| year={2021}, | |
| organization={IEEE} | |
| } | |
| ``` | |
| ## License | |
| This library is licensed under the CC BY NC License. |