Comments (4)
That's great! Thanks for repoting this!
from retriv.
Hi, performance should be roughly the same for pyserini
and retriv
.
pyserini
is built on top of lucene
and retriv
's BM25
implementation is based on elasticsearch
, which is built on top of lucene
. The only difference could be the BM25
hyper-parameter setting. retriv
uses the same setting of elasticsearch
out-of-the-box. pyserini
probably uses that of lucene
. Text pre-processing could have some minor differences. In the end, you can make them behave the same and they should both performs similarly out-of-the-box.
I dunno about rank_bm25
. I never looked at its source code.
from retriv.
Hi, performance should be roughly the same for
pyserini
andretriv
.pyserini
is built on top oflucene
andretriv
'sBM25
implementation is based onelasticsearch
, which is built on top oflucene
. The only difference could be theBM25
hyper-parameter setting.retriv
uses the same setting ofelasticsearch
out-of-the-box.pyserini
probably uses that oflucene
. Text pre-processing could have some minor differences. In the end, you can make them behave the same and they should both performs similarly out-of-the-box. I dunno aboutrank_bm25
. I never looked at its source code.
I think it is really necessary to compare the performance through datasets. pyserini's authors said there are many weak BM25 implementation, leading to poor performances. https://arxiv.org/pdf/2104.05740.pdf
from retriv.
The main problem with BM25 baselines is that most of the people do not optimize its hyper-parameters when performing comparisons. That's one of the main motivation retriv
as a feature to allow you doing that very easily.
Regarding performances, as of now, retriv
out-of-the-box performs as follows:
MSMARCO Dev MRR@10: 0.185 Recall: 0.873
TREC DL 2019 NDCG@10: 0.479 Recall: 0.753
TREC DL 2020 NDCG@10: 0.496 Recall: 0.811
Pyserini
out-of-the-box performs as follows:
MSMARCO Dev MRR@10: 0.184 Recall: 0.853
TREC DL 2019 NDCG@10: 0.506 Recall: 0.750
TREC DL 2020 NDCG@10: 0.480 Recall: 0.786
The differences you see are mainly due to the the different default BM25's hyper-parameters setting of the two libraries and to a slightly different text pre-processing pipeline.
from retriv.
Related Issues (20)
- I would like to see `retriv` part of the Search Benchmark, the Game
- [Feature Request] Allow GPU for query embedding HOT 1
- Minimal example for Hybrid Search fails HOT 3
- Input file format HOT 2
- [Feature Request] Add documents to index after initializing? HOT 2
- Multiprocess error triggers while trying example code HOT 3
- [BUG] Corrupted log when using SearchEngine HOT 9
- Does Advanced Retrieve support semantic searching? HOT 1
- [Feature Request] build index on a sequence of json/jsonl files HOT 3
- HybridRetriever raise KeyError: -1 if the len of doc less than 1_000 HOT 1
- autotune Function Usage Example HOT 1
- ANN_Searcher not dealing with -1 returned by faiss_index.search()
- fsspec==2023.12.2 does not allow '**' in path
- HybridRetriever does not respect cutoff when calling sub-retrievers and the merger
- [BUG] Segmentation fault (core dumped) HOT 1
- Getting Out of Memory Error HOT 1
- using another ANN
- Pre-computed TF-IDF
- Unreachable code
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from retriv.