

TITLE
[BUG] Unexpected overflowing_tokens in tokenizer.encode_plus

COMMENTS
4

REACTIONS
+1: 0
-1: 0
laugh: 0
hooray: 0
heart: 0
rocket: 0
eyes: 0

BODY
### 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.0
- Platform: Linux
- Python version: 3.7
- PyTorch version (GPU?): 1.3.1
- Tensorflow version (GPU?):
- Using GPU in script?: True
- Using distributed or parallel set-up in script?:

### Who can help

tokenizers: @mfuntowicz 


## Information

When I am using BERT tokenizer, I get unexpected `overflowing_tokens`. Here is a example code to reproduce:

## To reproduce

```
import torch
import transformers
from transformers import AutoTokenizer
import pdb

tokenizer = AutoTokenizer.from_pretrained('bert-base-multilingual-cased')

subtoken_ids_sentence = [x for x in range(1000,1050)]

nr_sentence_parts += 1
encoded_inputs = tokenizer.encode_plus(subtoken_ids_sentence,
                                            max_length=40,
                                            stride=20,
                                            return_overflowing_tokens=True,
                                            truncation=True,
                                            )

print(encoded_inputs['overflowing_tokens'])
```

The output is: `[1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038]`

<!-- 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
The expected behavior I want is: 
`[1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049]`
The current output contains `[1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049]` and an additional reversed Tensor of `[1048, 1047, 1046, 1045, 1044, 1043, 1042, 1041, 1040, 1039, 1038]`, which I think is wrong.

When I dig into the code, I find that:
https://github.com/huggingface/transformers/blob/6b4c617666fd26646d44d54f0c45dfe1332b12ca/src/transformers/tokenization_utils_base.py#L2556-L2564

I wonder why there is a for loop in it and I think I need  `truncation_strategy = TruncationStrategy.ONLY_FIRST`. However, I failed to turn the truncation_stractegy to `only_first` because the code here turn the truncation strategy to `longest_first`.

https://github.com/huggingface/transformers/blob/6b4c617666fd26646d44d54f0c45dfe1332b12ca/src/transformers/tokenization_utils_base.py#L1750-L1759

Can you give me any help?
<!-- A clear and concise description of what you would expect to happen. -->
