PyTerrier_t5
This is the PyTerrier plugin for the Mono and Duo T5 ranking approaches [Nogueira21].
Note that this package only supports scoring from a pretrained models (like this one).
Installation
This repostory can be installed using Pip.
pip install --upgrade git+https://github.com/terrierteam/pyterrier_t5.git
Building T5 pipelines
You can use MonoT5 just like any other text-based re-ranker. By default, it uses a MonoT5 model previously trained on MS MARCO passage ranking training queries.
import pyterrier as pt
from pyterrier_t5 import MonoT5ReRanker, DuoT5ReRanker
monoT5 = MonoT5ReRanker() # loads castorini/monot5-base-msmarco by default
duoT5 = DuoT5ReRanker() # loads castorini/duot5-base-msmarco by default
dataset = pt.get_dataset("irds:vaswani")
pt.Artifact.from_hf("pyterrier/vaswani.terrier").bm25()
mono_pipeline = bm25 >> pt.text.get_text(dataset, "text") >> monoT5
duo_pipeline = mono_pipeline % 5 >> duoT5 # apply a rank cutoff of 5 from monoT5 since duoT5 is too costly to run over the full result list
Note that both approaches require the document text to be included in the dataframe (see pt.text.get_text).
MonoT5ReRanker and DuoT5ReRanker have the following options:
model(default:'castorini/monot5-base-msmarco'for mono,'castorini/duot5-base-msmarco'for duo). HGF model name. Defaults to a version trained on MS MARCO passage ranking.tok_model(default:'t5-base'). HGF tokenizer name.batch_size(default:4). How many documents to process at the same time.text_field(default:text). The dataframe attribute in which the document text is stored.verbose(default:True). Show progress bar.
Examples
Checkout out the notebooks, even on Colab:
Implementation Details
We use a PyTerrier transformer to score documents using a T5 model.
Sequences longer than the model's maximum of 512 tokens are silently truncated. Consider splitting long texts into passages and aggregating the results (examples).
References
- Ronak Pradeep, Rodrigo Nogueira, and Jimmy Lin. The Expando-Mono-Duo Design Pattern for Text Ranking withPretrained Sequence-to-Sequence Models. https://arxiv.org/pdf/2101.05667.pdf
- Craig Macdonald, Nicola Tonellotto. Declarative Experimentation inInformation Retrieval using PyTerrier. Craig Macdonald and Nicola Tonellotto. In Proceedings of ICTIR 2020. https://arxiv.org/abs/2007.14271
Credits
- Sean MacAvaney, University of Glasgow
Metadata
Release files for pyterrier-t5 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pyterrier_t5-0.3.0.tar.gz | 13.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pyterrier_t5-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.2 kB
Release files / pyterrier_t5-0.3.0.tar.gz
| Download URL | pyterrier_t5-0.3.0.tar.gz |
|---|---|
| Size | 13.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03206d4254d21a71e933b9667374de51c6c1199e9d29ee14692d69f99454df95
|
|
BLAKE2b-256 checksum How to use checksums |
a59d43be5059a78fe050c78c3a28e66a489c0024ac152ce9d97e143dc1efd351
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|
Release files / pyterrier_t5-0.3.0-py3-none-any.whl
| Download URL | pyterrier_t5-0.3.0-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f642229df680d6b12e028ee1d22ddee851016d839e82b43931568cd02153e1c7
|
|
BLAKE2b-256 checksum How to use checksums |
3d85129ea5df19d62892c825519b43bab0c4a837ad3680827d4263bc1a373e41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.4
|