Weird assumptions in the PLM collator
Hi, I'm a researcher working with the HF codebase. I'm using the PLM collator, but some assumptions of that module confuse me and block my experiments. Can you explain?

The PLM collator assumes the input length is even so it can split it into two halves. The explanation starts [here](https://github.com/huggingface/transformers/blob/1c76a51615ccd5c8e60570771b29ef16a9c3bc17/src/transformers/data/data_collator.py#L1269). It says that we need to avoid leaking information so we can only permute half of the sequences if we assume half of the sequence is mems, if I understand correctly.

However, it confuses me:
1. The input sequence here contains only the new tokens, and the mems should be a separate variable. So why do we assume half of the sequence is going to be reused?
2. It points me to read the documentation of `mems`, while the documentation of `mems` is copied from other transformer models. It says that `mems` is used to speed up decoding by avoiding repeated computation, which doesn't fit the situation of XLNet, where mems are used to store history information. Is the documentation correct? If not, where can I find the correct version?

Thanks in advance!

@sgugger 
This is community contributed so you should ask the person that contributed it :-)<|||||>This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the [contributing guidelines](https://github.com/huggingface/transformers/blob/master/CONTRIBUTING.md) are likely to be ignored.