Unexpected behavior encoding token_type_ids in GPT models
The issues #4922 and #1339 have been closed, but bug is still present in the `GPT2Model` code resulting in unexpected behaviour as described in #4922 .

I am trying to use token_type_ids to annotate different languages being input to a multilingual model. I am using my own tokenization code which outputs token_type_ids indicating the language of the tokens. I have run into unexpected behaviour where the embeddings for the first few tokens in my vocabulary are also being used for my token type embeddings. I am using version 3.0.2.

The issue was marked as closed since the GPT2 Tokenizer was no longer outputting token_type_ids, but the `GPT2Model` class still accepts token_type_ids in its forward method.

# Expected Behavior

Either:

1. addition of a separate `nn.Embedding` matrix for token_type_ids [here](https://github.com/huggingface/transformers/blob/3ae2e86baffc1fea8b8b93695fb5a10941fd63dc/src/transformers/modeling_gpt2.py#L352) (such as [in BERTModel](https://github.com/huggingface/transformers/blob/3ae2e86baffc1fea8b8b93695fb5a10941fd63dc/src/transformers/modeling_bert.py#L153))
2. discourage or throw a warning when `token_type_ids` are passed to GPTModel instances
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
