Some weights of GPT2DoubleHeadsModel were not initialized from the model checkpoint at gpt2 and are newly initialized
Author: ZorrowHu
Pull request: no

# ❓ Questions & Help
Hi, I'm new to gpt2 and also this project! I was trying to run an example in the tutorials **https://huggingface.co/transformers/model_doc/gpt2.html** as follows:
```
import torch
from transformers import GPT2Tokenizer, GPT2DoubleHeadsModel

tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
model = GPT2DoubleHeadsModel.from_pretrained('gpt2', return_dict=True)

# Add a [CLS] to the vocabulary (we should train it also!)
num_added_tokens = tokenizer.add_special_tokens({'cls_token': '[CLS]'})

embedding_layer = model.resize_token_embeddings(len(tokenizer))  # Update the model embeddings with the new vocabulary size

choices = ["Hello, my dog is cute [CLS]", "Hello, my cat is cute [CLS]"]
encoded_choices = [tokenizer.encode(s) for s in choices]
cls_token_location = [tokens.index(tokenizer.cls_token_id) for tokens in encoded_choices]

input_ids = torch.tensor(encoded_choices).unsqueeze(0)  # Batch size: 1, number of choices: 2
mc_token_ids = torch.tensor([cls_token_location])  # Batch size: 1

outputs = model(input_ids, mc_token_ids=mc_token_ids)
lm_logits = outputs.logits
mc_logits = outputs.mc_logits
```
Then I got errors as below:

> Some weights of GPT2DoubleHeadsModel were not initialized from the model checkpoint at gpt2 and are newly initialized: ['h.0.attn.masked_bias', 'h.1.attn.masked_bias', 'h.2.attn.masked_bias', 'h.3.attn.masked_bias', 'h.4.attn.masked_bias', 'h.5.attn.masked_bias', 'h.6.attn.masked_bias', 'h.7.attn.masked_bias', 'h.8.attn.masked_bias', 'h.9.attn.masked_bias', 'h.10.attn.masked_bias', 'h.11.attn.masked_bias', 'lm_head.weight', 'multiple_choice_head.summary.weight', 'multiple_choice_head.summary.bias']
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.

**https://github.com/huggingface/transformers/issues/6667**
I've looked it up and find somebody with the same question as me. But I still got confused about what and how I can do to " fine-tune my model on a multiple-choice task". Maybe it's a dumb question though, but I still want to know how to make it work!


Comments:
Hello! I recommend you read [this doc](https://huggingface.co/transformers/task_summary.html) first to get an understanding of different tasks.

What the warning you got means:

- The model checkpoint (`"gpt2"`) was trained on a specific task (here, causal language modelling, or CLM)
- You're loading that checkpoint in an architecture that has an additional head on top of it. This means there are a few more layers on top of the existing model.
- The warning tells you: The base model (the GPT-2 architecture) is correctly initialized from the checkpoint. The additional head **is not**.
- It cannot be initialized from that checkpoint as the multiple-choice head requires to be trained on a multiple-choice task. The CLM task mentioned earlier doesn't require this head and doesn't train it.
- If you want to leverage that checkpoint with multiple-choice, it means that you should train these few layers on a multiple-choice task. Similarly to sequence classification or token classification, there are multiple different multiple-choice tasks, so you should find/create a dataset close to your use-case. You can find an example script showcasing that [here](https://github.com/huggingface/transformers/tree/master/examples/multiple-choice).

I hope I helped answer your queries. Feel free to re-open if you have additional questions.