Updated deberta attention
Author: guillaume-be
Pull request: yes

# What does this PR do?

This PR simplifies the current DeBERTa implementation that handles an attention type that was eventually not implemented. It removes unused code, simplifies the model logic branching and avoids unnecessary calculations.

<!-- Remove if not applicable -->

Fixes https://github.com/huggingface/transformers/issues/14621


## Before submitting
- [ ] This PR fixes a typo or improves the docs (you can dismiss the other checks if that's the case).
- [ ] Did you read the [contributor guideline](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md#start-contributing-pull-requests),
      Pull Request section?
- [x] Was this discussed/approved via a Github issue or the [forum](https://discuss.huggingface.co/)? Please add a link
      to it if that's the case.
- [ ] Did you make sure to update the documentation with your changes? Here are the
      [documentation guidelines](https://github.com/huggingface/transformers/tree/master/docs), and
      [here are tips on formatting docstrings](https://github.com/huggingface/transformers/tree/master/docs#writing-source-documentation).
- [ ] Did you write any new necessary tests?


## Who can review?

@LysandreJik 
@BigBird01 


Comments:
Thanks @guillaume-be!

I'm worried that this would break models that have `p2p` as a `pos_att_type`. I think putting the following in the configuration initialisation would be safer:
```py
self.pos_att_type = pos_att_type if pos_att_type != "p2p" else "p2c" 
```

Or something like this, still taking into account the list creation. What do you think?

Hi @LysandreJik ,

`pos_att_type` is a list of strings, that may contain `p2c`, `c2p` and `p2p` initialized as
```python
self.pos_att_type = config.pos_att_type if config.pos_att_type is not None else []
```
In the proposed implementation, the `p2p` attribute may be parsed into the list of attention types if it is provided. It will however be ignored in the attention calculations (it was already not impacting the model output, although was leading to unnecessary calculations). Providing `p2p` in the `pos_att_type` is still allowed and will not break the model, but will not impact the results.

As an illustration all 3 configurations in the example below do not lead to an error. Config 1 and 2 lead to identical outputs. Config 3 will lead to a calculation without relative attention:
```python
from transformers import  DebertaForSequenceClassification, DebertaTokenizer,  DebertaConfig

if __name__ == '__main__':
    config = DebertaConfig.from_pretrained("microsoft/deberta-base-mnli")
    config.pos_att_type = ["c2p", "p2c", "p2p"] # case 1
    # config.pos_att_type = ["c2p", "p2c"] # case 2
    # config.pos_att_type = ["p2p"]  # case 3
    model = DebertaForSequenceClassification.from_pretrained("microsoft/deberta-base-mnli", config=config)
    tokenizer = DebertaTokenizer.from_pretrained('microsoft/deberta-base-mnli')

    input_context = ["[CLS] I love you. [SEP] I like you. [SEP]"]

    input_ids = tokenizer(input_context, return_tensors="pt", padding=True)

    # warmup
    output = model(input_ids=input_ids.input_ids)
    print(output.logits.softmax(-1))

```

Please let me know if I misunderstood the concern and a case that would lead to breaking changes