soheeyang commited on
Commit
ea44f1d
1 Parent(s): a5dec59

Add readme

Browse files
Files changed (1) hide show
  1. README.md +41 -0
README.md ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # rdr-question_encoder-single-trivia-base
2
+
3
+ Reader-Distilled Retriever (`RDR`)
4
+
5
+ Sohee Yang and Minjoon Seo, [Is Retriever Merely an Approximator of Reader?](https://arxiv.org/abs/2010.10999), arXiv 2020
6
+
7
+ The paper proposes to distill the reader into the retriever so that the retriever absorbs the strength of the reader while keeping its own benefit. The model is a DPR retriever further finetuned using knowledge distillation from the DPR reader. Using this approach, the answer recall rate increases by a large margin, especially at a small number of top-k.
8
+
9
+ This model is the question encoder of RDR trained solely on TriviaQA (single-trivia). This model is trained by the authors and is the official checkpoint of RDR.
10
+
11
+ ## Performance
12
+
13
+ The following is the answer recall rate measured using PyTorch 1.4.0 and transformers 4.5.0.
14
+
15
+ For the values of DPR, those in parentheses are directly taken from the paper. The values without parentheses are reported using the reproduction of DPR that consists of [this question encoder](https://huggingface.co/soheeyang/dpr-question_encoder-single-trivia-base) and [this queston encoder](https://huggingface.co/soheeyang/dpr-question_encoder-single-trivia-base).
16
+
17
+ | | Top-K passages | 1 | 5 | 20 | 50 | 100 |
18
+ |-------------|------------------|-----------|-----------|-----------|-----------|-----------|
19
+ |TriviaQA Dev | DPR | 54.27 | 71.11 | 79.53 | 82.72 | 85.07 |
20
+ | | RDR (This Model) | **61.84** | **75.93** | **82.56** | **85.35** | **87.00** |
21
+ |-------------|------------------|-----------|-----------|-----------|-----------|-----------|
22
+ |TriviaQA Test| DPR | 54.41 | 70.99 | 79.31 (79.4) | 82.90 | 84.99 (85.0) |
23
+ | | RDR (This Model) | **62.56** | **75.92** | **82.52** | **85.64** | **87.26** |
24
+
25
+ ## How to Use
26
+
27
+ RDR shares the same architecture with DPR. Therefore, It uses `DPRQuestionEncoder` as the model class.
28
+
29
+ Using `AutoModel` does not properly detect whether the checkpoint is for `DPRContextEncoder` or `DPRQuestionEncoder`.
30
+
31
+ Therefore, please specify the exact class to use the model.
32
+
33
+ ```python
34
+ from transformers import DPRQuestionEncoder, AutoTokenizer
35
+
36
+ tokenizer = AutoTokenizer.from_pretrained("soheeyang/rdr-question_encoder-single-trivia-base")
37
+ question_encoder = DPRQuestionEncoder.from_pretrained("soheeyang/rdr-question_encoder-single-trivia-base")
38
+
39
+ data = tokenizer("question comes here", return_tensors="pt")
40
+ question_embedding = question_encoder(**data).pooler_output # embedding vector for question
41
+ ```