SuiteEval

suiteeval is a lightweight framework for running reproducible IR evaluation suites over multiple datasets.

Getting Started

Install with pip
$ pip install suiteeval

Basic usage:

You should define a function which produces pyterrier pipelines, if you do not want to lookup an index, the DatasetContext object provides tempoary paths and a corpus iterator for indexing.

The function can either return one or more pipelines or yield pipelines in the case that more complex memory management is required. Here is an example where we only keep one neural re-ranker in memory at a time while evaluating the BEIR suite.

You can choose to either return named systems (useful for larger evaluation) or just return the systems!

Running a suite
from suiteeval import BEIR
from pyterrier_pisa import PisaIndex
from pyterrier_dr import ElectraScorer
from pyterrier_t5 import MonoT5ReRanker

def pipelines(context):
   index = PisaIndex(context.path + "/index.pisa")
   index.index(context.get_corpus_iter())
   bm25 = index.bm25()
   yield bm25 >> context.text_loader() >>  MonoT5ReRanker(), "BM25 >> monoT5"
   yield bm25 >> context.text_loader() >> ElectraScorer(), "BM25 >> monoELECTRA"

results = BEIR(pipelines)