Marian input decoding bug
# 🐛 Bug

## Information

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

Language I am using the model on (English, Chinese ...): English, German

The problem arises when using:
* [ ] the official example scripts: (give details below)
* [x] my own modified scripts: (give details below)

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

## To reproduce

I'm examining Marian models to translate text. I noticed `convert_tokens_to_string` method uses `spm_target` which can be problematic if we want to decode source text.

Here is my script:

```
from transformers import MarianTokenizer, MarianModel

tokenizer = MarianTokenizer.from_pretrained('Helsinki-NLP/opus-mt-en-de')
model = MarianModel.from_pretrained('Helsinki-NLP/opus-mt-en-de')

input_text = "I was eating lunch when he saw me"
target_text = "Ich aß gerade zu Mittag, als er mich sah"

input_tokenized = tokenizer(input_text, return_tensors='pt')
with tokenizer.as_target_tokenizer():
    target_tokenized = tokenizer(target_text, return_tensors='pt')

print(tokenizer.decode(input_tokenized.data['input_ids'][0]))
with tokenizer.as_target_tokenizer():
    print(tokenizer.decode(target_tokenized.data['input_ids'][0]))

```

stdout:

```
I was▁eating▁lunch▁when he▁saw me
Ich aß gerade zu Mittag, als er mich sah

```

As you can see the input text is not decoded correctly since `spm_target` is used. A potential fix is to use `current_spm` and let `as_target_tokenizer` context manager decide which spm should be used (similar to text encoding):

```
def convert_tokens_to_string(self, tokens: List[str]) -> str:
    return self.current_spm.DecodePieces(tokens)
```

I can PR the fix if needed.


<!-- 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.-->


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

## 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: master branch (f6e53e3c2bafb37c861db71a4b28c304403af92b)
- Python version: 3.7.4
- PyTorch version (GPU?): 1.7.1 (False)

Hey @Mehrad0711,

Thanks a lot for the very clean & easy to understand issue!
I can reproduce the error and would be super happy about a PR to fix it! Your fix to let the context manager handle the `spm_target` sounds like the correct solution to me!<|||||>Hi @patrickvonplaten!
Thank you for your feedback. I just submitted a PR fixing this issue.
Thanks ahead for reviewing.