Add attention_scores as output in RoBERTa
# 🚀 Feature request

Hi, I propose to add `attention_scores`, which is a local variable in `RobertaSelfAttention`'s `forward` method to model output
on user request by adding `output_attention_scores` keyword argument  to RoBERTa model.

## Motivation

Currently, there is `output_attentions` keyword argument which makes model output `attention_probs`, but due to
the softmax being applied to it, it can not get involved in computing losses well. I mean softmax-related numerical instabilities which might arise.

## Your contribution

I would like to do the job, if you will. RoBERTa could be the starting point and then we could do the same to
other models

Interesting request -> to enable this, we would ideally enable it across all models which would be quite a bit of work. In which situations do you need the `attention_scores`?

cc @patrickvonplaten @patil-suraj @sgugger <|||||>In my case, I need to change attention distribution of a part of the sentence toward another part of it, using `torch.nn.CrossEntropyLoss` which expects input to be raw unnormalized scores (the `attention_scores` here) to internally compute softmax and log in a stable manner.

Generally, current attention output, namely `attention_probs` seems to serve almost just in visualization purposes. Its precomputed softmax does not let it to be used in certain loss functions.<|||||>Can't you just revert the softmax operation? Think PyTorch's softmax implementation is pretty stable<|||||>Yes, it can be reverted, but introduces extra computation in certain use cases like Cross Entropy. By the way, I see that the `attention_scores` requirement might not worth needed effort and added complexity to models' inputs.<|||||>Hmm, I think given that it's quite an edge-case and that it can be achieved by reverting the softmax operation locally, I don't think it's worth adding more outputs here to be honest. It would create a lot of work and the users would have to get used to another output for every model.