possible mistake in documentation
Author: shyrma
Pull request: no

Looking at description of the parameter "decoder_input_ids" in "forward" method of BartForConditionalGeneration/T5ForConditionalGeneration, I see following:

BartForConditionalGeneration:
decoder_input_ids - ... For translation and summarization training, decoder_input_ids should be provided. If no decoder_input_ids is provided, the model will create this tensor by shifting the !!INPUT_IDS!! to the right for denoising pretraining following the paper.

T5ForConditionalGeneration:
decoder_input_ids - ... To know more on how to prepare decoder_input_ids for pretraining take a look at T5 Training. If decoder_input_ids and decoder_inputs_embeds are both unset, decoder_input_ids takes the value of  !!INPUT_IDS!!.

Looks like there should be LABELS instead of INPUT_IDS.

Thanks,
@patrickvonplaten, @patil-suraj


Comments:
Hey @shyrma,

you are right I think - do you mind opening a PR to fix it? :-) 

I'm not sure how to make a fix in an appropriate way, since both classes (for example) BartModel and BartForConditionalGeneration
use the same doc string BART_INPUTS_DOCSTRING `@add_start_docstrings_to_model_forward(BART_INPUTS_DOCSTRING)`.
BART_INPUTS_DOCSTRING contains mistake in respect to BartForConditionalGeneration only.

Hi @shyrma 

There were few other mistakes in the docs for almost all seq-2-seq models. I took care of it! Thanks a lot for pointing this out.

Hi guys
Mistake is still present in documentation (forward method):
https://huggingface.co/transformers/model_doc/bart.html#bartforconditionalgeneration
https://huggingface.co/transformers/model_doc/t5.html#t5forconditionalgeneration


HI @shyrma 

for BART and mBART, this is actually correct. BART can be used for seq classification for these tasks it just uses the `input_ids` as `decoder_input_ids`. So the doc-string is right when it says `input_ids`.

Also, for T5 you are looking at the stable version doc, the changes are on master right now, and will be reflected in stable in next release. https://huggingface.co/transformers/master/model_doc/t5.html#t5forconditionalgeneration 

I consider only BartForConditionalGeneration and T5ForConditionalGeneration.
> Also, for T5 you are looking at the stable version doc, the changes are on master right now, and will be reflected in stable in next release

Great! And what about BartForConditionalGeneration?

as I said above BART can use `input_ids` to create `decoder_input_ids` when `labels` are not present. So the docstring for BART is correct.

Currently one can find following explanation of the parameter "decoder_input_ids" of BartForConditionalGeneration forward method:
`decoder_input_ids - ... If no decoder_input_ids is provided, the model will create this tensor by shifting the input_ids to the right for denoising pretraining following the paper.`
Do I understand correctly that you argue this is correct explanation ?

Yes, that's the correct explanation and that's true for tasks like sequence classification and question answering as well, for these tasks BART uses the same `input_ids` as `decoder_input_ids`.

Hmm, I'm not sure. And corresponding code tells that it is not true:

```
 if labels is not None:
            if decoder_input_ids is None:
                decoder_input_ids = shift_tokens_right(
                    labels, self.config.pad_token_id, self.config.decoder_start_token_id
                )
```

That's correct, that code prepares `decoder_input_ids` from `lables`, when `labels` are not `None, but when they are `None`, `input_ids` are used.

https://github.com/huggingface/transformers/blob/8d43c71a1ca3ad322cc45008eb66a5611f1e017e/src/transformers/models/bart/modeling_bart.py#L1147-L1152

I'm sorry I meant this piece of code (dealing with BartForConditionalGeneration, not with BartModel)
https://github.com/huggingface/transformers/blob/8d43c71a1ca3ad322cc45008eb66a5611f1e017e/src/transformers/models/bart/modeling_bart.py#L1283-L1287
And looks like explanation in docs should be following:
`decoder_input_ids - ... If no decoder_input_ids is provided, the model will create this tensor by shifting the labels to the right for denoising pretraining following the paper.`
that is replace "inputs_ids" by "labels"