DPR
This model was released on 2020-04-10 and added to Hugging Face Transformers on 2020-11-16.
Overview
Section titled “Overview”Dense Passage Retrieval (DPR) is a set of tools and models for state-of-the-art open-domain Q&A research. It was introduced in Dense Passage Retrieval for Open-Domain Question Answering by Vladimir Karpukhin, Barlas Oğuz, Sewon Min, Patrick Lewis, Ledell Wu, Sergey Edunov, Danqi Chen, Wen-tau Yih.
The abstract from the paper is the following:
Open-domain question answering relies on efficient passage retrieval to select candidate contexts, where traditional sparse vector space models, such as TF-IDF or BM25, are the de facto method. In this work, we show that retrieval can be practically implemented using dense representations alone, where embeddings are learned from a small number of questions and passages by a simple dual-encoder framework. When evaluated on a wide range of open-domain QA datasets, our dense retriever outperforms a strong Lucene-BM25 system largely by 9%-19% absolute in terms of top-20 passage retrieval accuracy, and helps our end-to-end QA system establish new state-of-the-art on multiple open-domain QA benchmarks.
This model was contributed by lhoestq. The original code can be found here.
Usage tips
Section titled “Usage tips”-
DPR consists in three models:
- Question encoder: encode questions as vectors
- Context encoder: encode contexts as vectors
- Reader: extract the answer of the questions inside retrieved contexts, along with a relevance score (high if the inferred span actually answers the question).
DPRConfig
Section titled “DPRConfig”[[autodoc]] DPRConfig
DPRContextEncoderTokenizer
Section titled “DPRContextEncoderTokenizer”[[autodoc]] DPRContextEncoderTokenizer
DPRContextEncoderTokenizerFast
Section titled “DPRContextEncoderTokenizerFast”[[autodoc]] DPRContextEncoderTokenizerFast
DPRQuestionEncoderTokenizer
Section titled “DPRQuestionEncoderTokenizer”[[autodoc]] DPRQuestionEncoderTokenizer
DPRQuestionEncoderTokenizerFast
Section titled “DPRQuestionEncoderTokenizerFast”[[autodoc]] DPRQuestionEncoderTokenizerFast
DPRReaderTokenizer
Section titled “DPRReaderTokenizer”[[autodoc]] DPRReaderTokenizer
DPRReaderTokenizerFast
Section titled “DPRReaderTokenizerFast”[[autodoc]] DPRReaderTokenizerFast
DPR specific outputs
Section titled “DPR specific outputs”[[autodoc]] models.dpr.modeling_dpr.DPRContextEncoderOutput
[[autodoc]] models.dpr.modeling_dpr.DPRQuestionEncoderOutput
[[autodoc]] models.dpr.modeling_dpr.DPRReaderOutput
DPRContextEncoder
Section titled “DPRContextEncoder”[[autodoc]] DPRContextEncoder - forward
DPRQuestionEncoder
Section titled “DPRQuestionEncoder”[[autodoc]] DPRQuestionEncoder - forward
DPRReader
Section titled “DPRReader”[[autodoc]] DPRReader - forward