Unwanted left shift of target tokens in `get_nll`
## Environment info
<!-- You can run the command `transformers-cli env` and copy-and-paste its output below.
     Don't forget to fill out the missing fields in that output! -->
     
- `transformers` version: 3.4
- Platform: ubuntu
- Python version: 3.8
- PyTorch version (GPU?): 1.6
- Tensorflow version (GPU?):
- Using GPU in script?: yes
- Using distributed or parallel set-up in script?:no

### Who can help
<!-- Your issue will be replied to more quickly if you can figure out the right person to tag with @
 If you know how to use git blame, that is the easiest way, otherwise, here is a rough guide of **who to tag**.
 Please tag fewer than 3 people.
 
 RAG: @patrickvonplaten, @lhoestq
 -->

## Information

Model I am using (Bert, XLNet ...):

The problem arises when using:
* [ ] the official example scripts: (give details below)
* [x ] my own modified scripts: (give details below)
I am training RAG on the FEVER dataset, trying to generate one token from `['[SUPPORTS]', '[REFUTES]', '[INCONCLUSIVE]'.  My loss function is always zero, I think because of the shift left that occurs in `RagTokenForGeneration.get_nll()`, which I think should only happen if special tokens are included.

The tasks I am working on is:
* [ ] an official GLUE/SQUaD task: (give the name)
* [x] my own task or dataset: (give details below)
Training RAG on FEVER dataset

## To reproduce

Steps to reproduce the behavior:

1. Simply train `RAGTokenForGeneration` on anything, using only one token with no special tokens.  Loss is zero

<!-- If you have code snippets, error messages, stack traces please provide them here as well.
     Important! Use code tags to correctly format your code. See https://help.github.com/en/github/writing-on-github/creating-and-highlighting-code-blocks#syntax-highlighting
     Do not use screenshots, as they are hard to read and (more importantly) don't allow others to copy-and-paste your code.-->

## Expected behavior

<!-- A clear and concise description of what you would expect to happen. -->

@patrickvonplaten or @lhoestq might have an idea.<|||||>Hey @JamesDeAntonis yes this is expected. The same behavior would occur for GPT2 if only one token is provided as the labels. You should at least add an EOS token at the end to `labels` (so that you have two labels tokens) to make sure the loss is not zero.

If you cannot do this you will have to fork the repo and manually change the `get_nll()` function.<|||||>This issue has been automatically marked as stale and been closed because it has not had recent activity. Thank you for your contributions.

If you think this still needs to be addressed please comment on this thread.