Using the  latest DPR checkpoint available with HuggingFace DPR class
Hi,
There's a new DPR checkpoint available in [DPR Orignal repositary](https://github.com/facebookresearch/DPR#new-march-2021-retrieval-model), which shows nice improvements.  I did convert the DPR checkpoint using the conver_dpr.py (did a minor modification) and it is working fine.  

I have one question regarding the correct tokenizer that should use for the question_encder and context_enocder.  Since I can load the tokenizer from the following paths (AutoTokenizer.from_pretrained),  I assumed both of these tokenizers behave in the same way (PreTrainedTokenizerFast).
1.  **facebook/dpr-question_encoder-multiset-base** 
2.  **facebook/dpr-question_encoder-single-nq-base**

So, there won't be any problem if I use a tokenizer loaded from any of the above paths with the new checkpoint right (since DPR uses HuggingFace Tokenizers)?

@lhoestq 

Hi ! Yes you should be fined. Under the hood it's actually the same tokenizer as `bert-base-uncased`.

Also it would be nice to add the new DPR checkpoints on the Hub as well.

What changes did you have to do in the convert_dpr.py file ?<|||||>Perfect and thanks @lhoestq 

 Actually, it was a very minor change.  With the current transformer version, it gives an error [in this line](https://github.com/huggingface/transformers/blob/finalize_rag/src/transformers/convert_dpr_original_checkpoint_to_pytorch.py#L71), saying no positional_id key in the state_dict.  It simply worked with setting the **strict= False**.
 
 But for clarity I changed as follows (check newly added line :)):
 
```
 class DPRQuestionEncoderState(DPRState):
    def load_dpr_model(self):
        model = DPRQuestionEncoder(DPRConfig(**BertConfig.get_config_dict("bert-base-uncased")[0]))
        print("Loading DPR biencoder from {}".format(self.src_file))
        saved_state = load_states_from_checkpoint(self.src_file)
        encoder, prefix = model.question_encoder, "question_model."
        model_state_dict = encoder.state_dict()
        state_dict = {}

        for key, value in saved_state.model_dict.items():
            if key.startswith(prefix):
                key = key[len(prefix) :]
                if not key.startswith("encode_proj."):
                    key = "bert_model." + key
                state_dict[key] = value

       #newly added
        for k , v in model_state_dict.items():
            if not k in state_dict:
                print("warnning can't find key:",k)
                state_dict[k]=v

        #encoder.save_pretrained(save_directory='./', state_dict=state_dict) #no need to modify
        encoder.load_state_dict(state_dict)
        return model
```
