This is the T5-11B model described in our paper DREAM: Improving Situational QA by First Elaborating the Situation, NAACL 2022 (Arxiv link: https://arxiv.org/abs/2112.08656, ACL Anthology link: https://aclanthology.org/2022.naacl-main.82/)

What is DREAM πŸ’­?

DREAM can be used to:

  • Build scene elaborations in a dataset-neutral way πŸ–ΌοΈ

  • πŸ“ˆ Improve QA performance across different end-tasks and on different models πŸ“ˆ

When people πŸ§‘β€πŸ’» answer questions about a specific situation, cognitive science 🧠 suggests that they form a mental picture πŸ–ΌοΈ of that situation. Will language models πŸ€– answer such questions more accurately if provided with additional details about the question situation πŸ–ΌοΈ ?

We train a new model, DREAM πŸ’­ , to answer questions that elaborate the scenes πŸ–ΌοΈ that situated questions are about, and then provide those elaborations as additional context πŸ“„ to a QA model πŸ€– . Our results show that DREAM πŸ’­ is able to create more βœ… accurate, βœ… useful, and βœ… consistent scene elaborations than a representative SOTA 🌟, zero-shot model (Macaw 🦜 ).

Remarkably, using DREAM’s πŸ’­ scene elaborations πŸ–ΌοΈ as additional context improvesπŸ“ˆ the answer accuracy across different downstream QA systems πŸ€– and on different end-tasks πŸ“ (including beyond that obtainable by further fine-tuning the QA system on DREAM’s training data πŸ“š). Our approach is question-agnostic πŸ’«, leaves end-task QA models unchanged ✨, and thus easily portable to other QA models 🌟, suggesting exciting opportunities for further improving and exploiting scene elaborations to better solve new problems. πŸ’‘

We invite you to try out DREAM πŸ’­ for your own application!

How to use DREAM πŸ’­?

We provide a quick example of how you can try out DREAM with just a few lines of code:

>>> from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
>>> model = AutoModelForSeq2SeqLM.from_pretrained("allenai/DREAM")

>>> tokenizer = AutoTokenizer.from_pretrained("t5-11b")
>>> input_string = "$answer$ ; $question$ = [SITUATION] hitting someones car in the drive thru on purpose. [QUERY] rot"
>>> input_ids = tokenizer.encode(input_string, return_tensors="pt")
>>> output = model.generate(input_ids, max_length=200)
>>> tokenizer.batch_decode(output, skip_special_tokens=True)
["$answer$ = It's wrong to damage other people's property."]

As discussed in our paper, DREAM supports the following possible dimensions for each input situation S:

1. M : motivation of character(s) before S.
2. E: emotion of character(s) after S.
3. ROT : general Rule of Thumb (ROT) about whether action described in S is socially acceptable or not (also known as social norm).
4. Con: likely consequence of action in S.

To get DREAM's output for these dimensions, use the corresponding terms below after the "[QUERY] " tag in your input string:

motivation
emotion
rot
consequence

More details about DREAM πŸ’­ ...

For more details about DREAM, please refer to our:

For additional instructions about using the DREAM model and sample commands, please refer to https://github.com/allenai/dream/blob/main/model/README_DREAM_model.md.

Downloads last month
11
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Spaces using allenai/DREAM 2