/hyde

HyDE: Precise Zero-Shot Dense Retrieval without Relevance Labels

Primary LanguageJupyter Notebook

HyDE: Precise Zero-Shot Dense Retrieval without Relevance Labels

This is code repository for the paper: HyDE: Precise Zero-Shot Dense Retrieval without Relevance Labels.

HyDE zero-shot instructs GPT3 to generate a fictional document and re-encodes it with unsupervised retriever Contriever to search in its embedding space. HyDE significantly outperforms Contriever across tasks and languages and it does not require any human labeled relevance judgement.

approach

Steps to run the code

  1. Install pyserini by following the guide. We use pyserini to conduct dense retrieval and evaluation.

  2. Download the prebuilt Contrever faiss index

wget  https://www.dropbox.com/s/dytqaqngaupp884/contriever_msmarco_index.tar.gz
tar -xvf contriever_msmarco_index.tar.gz
  1. Setup GPT3 API key
export OPENAI = <your key>
  1. Run hyde-dl19.ipynb, it will run the experiment on the TREC DL19 dataset. Run hyde-demo.ipynb, it will go through HyDE pipeline with an example query.

Citation

@article{hyde,
  title = {Precise Zero-Shot Dense Retrieval without Relevance Labels},
  author = {Luyu Gao and Xueguang Ma and Jimmy Lin and Jamie Callan},
  journal={arXiv preprint arXiv:2212.10496},
  year = {2022}
}