ForcedBOSTokenLogitsProcessor take input_ids.shape[-1] as number of generated tokens
### System Info

`ForcedBOSTokenLogitsProcessor` enforces the specified token as the first generated token.

In the code below, it takes `input_ids.shape[-1]` as the length of the generated tokens, but as I know, `input_ids.shape[-1]` equals to `prompt_length + generated_length`.
https://github.com/huggingface/transformers/blob/0db5d911fc94604f9568b4b212e005ec4600d157/src/transformers/generation/logits_process.py#L769

So, is this a bug, or there is something I've missing?

### Who can help?

@gante 

### Information

- [ ] The official example scripts
- [ ] My own modified scripts

### Tasks

- [ ] An officially supported task in the `examples` folder (such as GLUE/SQuAD, ...)
- [ ] My own task or dataset (give details below)

### Reproduction

None

### Expected behavior

None
Hey @Dounm 👋 

`ForcedBOSTokenLogitsProcessor` is normally used with encoder-decoder models. For those models, when the generation loop begins, it only contains one token per batch/beam by default -- `model.generation_config.decoder_start_token_id ` or `model.generation_config.bos_token_ids`. As such, `ForcedBOSTokenLogitsProcessor` forces an additional token at the beginning of the sequence in those cases.

I hope this makes it clearer 🤗 <|||||>Much thanks for your rely!