v1.0.0: BEIR is back with a brand new organization of its own moving forward, New sparse model releases, ColBERT evaluation and fixing breaking changes
This is a major release since the last version v0.2.3.
1. New BEIR Organization and moving forward will be part of a collaboration
The BEIR benchmark has been shifted from UKPLab to beir-cellar. Moving forward, the BEIR benchmark will be actively maintained and developed with the help of @UKPLab, @castorini, and @huggingface.
2. ColBERT model evaluation on the BEIR benchmark code released
The ColBERT model evaluation on the BEIR benchmark has been released. This code repository uses the original ColBERT repository for evaluation and training with a few tweaks.
Here is the repository for more details: https://github.com/NThakur20/beir-ColBERT
3. New Passage Expansion Model added: TILDE
Since DocT5query is compute-intensive and time-consuming to generate, we added a faster passage expansion model: TILDE (https://arxiv.org/abs/2108.08513) for expanding documents, by expanding on relevant keywords present within the BERT vocabulary. An easy example using TILDE can be shown here: passage_expansion_tilde.py
4. Upcoming New work for Easy evaluation of Neural Sparse Retrieval Models
We are currently developing a new repository for easy evaluation of neural sparse models including a inverted index implementation. This will help a unified evaluation of all diverse neural sparse retrieval models such as uniCOIL, SPLADE, SPARTA and DeepImpact.
An initial repository for this work and more details can be found here: https://github.com/NThakur20/sparse-retrieval.
5. Fixed breaking changes and reproducibility in Elasticsearch
#58 showed issues in ES lexical search reproducibility and downloading Elasticsearch client.
- Added a sleep_for parameter in the ES code with a default value of 2 seconds. This will forcefully sleep the ES index after index deletion, and indexing documents.
- During bulk indexing (https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html), there is a parameter refresh which I have set to wait_for instead of default kept at false. For more details, refer here: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-refresh.html.
- Freeze ES version in beir:
elasticsearch==7.9.1
which will help us avoid the latest issues occurring with ES policies.
6. Temporary Packages: Tensorflow
Tensorflow installation was causing issues while pip installing beir
. Only USE models were evaluated using TF, however, they are currently not the most popular choice in models. Hence, we decided to move forward with ['tensorflow>=2.2.0', 'tensorflow-text', 'tensorflow-hub']
made available as optional packages which can be installed separately in case a user wishes to evaluate the USE model or use TF for their own use-case: pip install beir[tf]
.
7. Fixed breaking changes in sparse search in SparseRetrieval
As notified in #62, we have updated our bug found in the sparse retrieval code for evaluating SPARTA on the beir benchmark,