Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

License Worfklow Documentation Status PyPI version Code style: black


Capreolus is a toolkit for conducting end-to-end ad hoc retrieval experiments. Capreolus provides fine control over the entire experimental pipeline through the use of interchangeable and configurable modules.

Get started with a Notebook Open In Colab

Read the documentation for a detailed overview.

Quick Start

  1. Prerequisites: Python 3.7+ and Java 11. See the installation instructions
  2. Install the pip package: pip install capreolus
  3. Train a model: capreolus rerank.traineval with reranker.trainer.niters=2
  4. If the train command completed successfully, you've trained your first Capreolus reranker on NFCorpus! This command created several outputs, such as model checkpoints and TREC-format run files. To learn about these files, read about running experiments with Capreolus.
  5. To learn about different configuration options, try: capreolus rerank.print_config with
  6. To learn about different modules you can use, such as, try: capreolus modules
  7. Learn about running experiments via the Python API

Environment Variables

Capreolus uses environment variables to indicate where outputs should be stored and where document inputs can be found. Consult the table below to determine which variables should be set. Set them either on the fly before running Capreolus (export CAPREOLUS_RESULTS=...) or by editing your shell's initialization files (e.g., ~/.bashrc or ~/.zshrc).

Environment Variable Default Value Purpose
CAPREOLUS_RESULTS ~/.capreolus/results/ Directory where results will be stored
CAPREOLUS_CACHE ~/.capreolus/cache/ Directory used for cache files
CUDA_VISIBLE_DEVICES (unset) Indicates GPUs available to PyTorch, starting from 0. For example, set to '1' the system's 2nd GPU (as numbered by nvidia-smi). Set to '' (an empty string) to force CPU.