Metadata-Version: 2.5
Name: experimaestro-ir
Version: 1.5.0
Summary: Experimaestro common module for IR experiments
Project-URL: homepage, https://github.com/bpiwowar/experimaestro-ir
Project-URL: documentation, https://experimaestro-ir.readthedocs.io/en/latest/
Project-URL: repository, https://github.com/bpiwowar/experimaestro-ir
Author-email: Benjamin Piwowarski <benjamin@piwowarski.fr>
License: GPL-3
License-File: LICENSE
Keywords: experiments,information retrieval,neural information retrieval
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <3.15,>=3.11
Requires-Dist: attrs
Requires-Dist: datamaestro-ir>=0.5.0
Requires-Dist: datamaestro>=0.2.3
Requires-Dist: docstring-parser
Requires-Dist: experimaestro>=2.4.0
Requires-Dist: impact-index>=1.7.0
Requires-Dist: ir-measures>=0.3.3
Requires-Dist: omegaconf>=2.2
Requires-Dist: pandas
Requires-Dist: pillow>=12.1.0
Requires-Dist: pytest>=9.0.2
Requires-Dist: python-dotenv>=1.2.1
Requires-Dist: pytorch-lightning
Requires-Dist: toma
Requires-Dist: transformers>=5.8.1
Requires-Dist: xpm-torch>=0.3.0
Provides-Extra: anserini
Requires-Dist: pyserini>=0.20.0; extra == 'anserini'
Provides-Extra: fast-plaid
Requires-Dist: fast-plaid; extra == 'fast-plaid'
Provides-Extra: neural
Requires-Dist: sentence-transformers>=6.0.0; extra == 'neural'
Requires-Dist: tensorboard; extra == 'neural'
Requires-Dist: torch>=2.10; extra == 'neural'
Requires-Dist: transformers; extra == 'neural'
Description-Content-Type: text/markdown

[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![Documentation Status](https://readthedocs.org/projects/experimaestro-ir/badge/?version=latest)](https://experimaestro-ir.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/experimaestro-ir.svg)](https://badge.fury.io/py/experimaestro-ir)

# Information Retrieval for experimaestro

Information Retrieval module for [experimaestro](https://experimaestro-python.readthedocs.io/), based on [xpm-torch](https://github.com/experimaestro/xpm-torch)

The full documentation can be read at [IR@experimaestro](https://experimaestro-ir.readthedocs.io/).

You can find experiments built on top of XPMIR on the [xpmir github workspace](https://github.com/orgs/xpmir/repositories).

Finally, you can find the [roadmap](https://github.com/experimaestro/experimaestro-ir/issues/9).

## Install

Base experimaestro-IR can be installed with `pip install xpmir`.
Functionalities can be added by installing optional dependencies:

- `pip install xpmir[neural]` to install neural-IR packages (torch, etc.)
- `pip install xpmir[anserini]` to install Anserini related packages

For the development version, you can:

- If you just want the development version: install with `pip install git+https://github.com/experimaestro/experimaestro-ir.git`
- If you want to edit the code: clone and then do a `pip install -e .` within the directory

## What's inside?

- Collection management (using datamaestro)
    - Splitting IR datasets
    - Shuffling training triplets
- Representation
    - Word Embeddings
    - HuggingFace transformers
- Indices
    - dense: [FAISS](https://github.com/facebookresearch/faiss) interface
    - sparse: [xpmir-rust library](https://github.com/experimaestro/experimaestro-ir-rust)
- Standard Indexing and Retrieval
    - Anserini
- Learning to Rank
    - Pointwise
    - Pairwise
    - Distillation
- Neural IR
    - Cross-Encoder
    - Splade
    - DRMM
    - ColBERT
- Paper reproduction:
    - *MonoBERT* (Passage Re-ranking with BERT. Rodrigo Nogueira and Kyunghyun Cho. 2019)
    - (alpha) *DuoBERT* (Multi-Stage Document Ranking with BERT. Rodrigo Nogueira, Wei Yang, Kyunghyun Cho, Jimmy Lin. 2019)
    - (beta) *Splade v2* (SPLADE v2: Sparse Lexical and Expansion Model for Information Retrieval, Thibault Formal, Carlos Lassance, Benjamin Piwowarski, and Stéphane Clinchant. SIGIR 2021)
    - (planned) ANCE
- Pre-trained models
    - [HuggingFace](https://huggingface.co) [integration](https://experimaestro-ir.readthedocs.io/en/latest/pretrained.html) (direct, through the Sentence Transformers library)

## Thanks

Some parts of the code have been adapted from [OpenNIR](https://github.com/Georgetown-IR-Lab/OpenNIR)
