forked from castorini/anserini
-
Notifications
You must be signed in to change notification settings - Fork 0
/
beir-v1.0.0-scidocs-splade-distil-cocodenser-medium.template
84 lines (53 loc) · 3.72 KB
/
beir-v1.0.0-scidocs-splade-distil-cocodenser-medium.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Anserini Regressions: BEIR (v1.0.0) — SCIDOCS
**Model**: SPLADE-distil CoCodenser Medium
This page describes regression experiments, integrated into Anserini's regression testing framework, using SPLADE-distil CoCodenser Medium on [BEIR (v1.0.0) — SCIDOCS](http://beir.ai/).
SPLADE-distil CoCodenser Medium is an intermediate model version between [SPLADEv2](https://arxiv.org/abs/2109.10086) and [SPLADE++](https://arxiv.org/abs/2205.04733), where the model used distillation (as in SPLADEv2), but started with the CoCondenser pre-trained model.
See the [official SPLADE repo](https://github.com/naver/splade) for more details; the model itself can be download [here](http://download-de.europe.naverlabs.com/Splade_Release_Jan22/splade_distil_CoCodenser_medium.tar.gz).
The exact configurations for these regressions are stored in [this YAML file](${yaml}).
Note that this page is automatically generated from [this template](${template}) as part of Anserini's regression pipeline, so do not modify this page directly; modify the template instead and then run `bin/build.sh` to rebuild the documentation.
From one of our Waterloo servers (e.g., `orca`), the following command will perform the complete regression, end to end:
```
python src/main/python/run_regression.py --index --verify --search \
--regression ${test_name}
```
## Corpus
We make available a version of the BEIR-v1.0.0 scidocs corpus that has already been processed with SPLADE-distil CoCodenser Medium, i.e., gone through document expansion and term reweighting.
Thus, no neural inference is involved.
For details on how to train SPLADE-distil CoCodenser Medium and perform inference, please see [guide provided by Naver Labs Europe](https://github.com/naver/splade/tree/main/anserini_evaluation).
Download the corpus and unpack into `collections/`:
```
wget https://rgw.cs.uwaterloo.ca/JIMMYLIN-bucket0/data/beir-v1.0.0-splade_distil_cocodenser_medium-scidocs.tar -P collections/
tar xvf collections/beir-v1.0.0-splade_distil_cocodenser_medium-scidocs.tar -C collections/
```
To confirm, the tarball is 24 MB and has MD5 checksum `535c9dcb9698bec4345c07d96e5b1e75`.
With the corpus downloaded, the following command will perform the complete regression, end to end, on any machine:
```
python src/main/python/run_regression.py --index --verify --search \
--regression ${test_name} \
--corpus-path collections/beir-v1.0.0-splade_distil_cocodenser_medium-scidocs
```
Alternatively, you can simply copy/paste from the commands below and obtain the same results.
## Indexing
Sample indexing command:
```
${index_cmds}
```
The path `/path/to/${corpus}/` should point to the corpus downloaded above.
The important indexing options to note here are `-impact -pretokenized`: the first tells Anserini not to encode BM25 doclengths into Lucene's norms (which is the default) and the second option says not to apply any additional tokenization on the pre-encoded tokens.
Upon completion, we should have an index with 25,657 documents.
For additional details, see explanation of [common indexing options](${root_path}/docs/common-indexing-options.md).
## Retrieval
Topics and qrels are stored [here](https://github.com/castorini/anserini-tools/tree/master/topics-and-qrels), which is linked to the Anserini repo as a submodule.
After indexing has completed, you should be able to perform retrieval as follows:
```
${ranking_cmds}
```
Evaluation can be performed using `trec_eval`:
```
${eval_cmds}
```
## Effectiveness
With the above commands, you should be able to reproduce the following results:
${effectiveness}
## Reproduction Log[*](${root_path}/docs/reproducibility.md)
To add to this reproduction log, modify [this template](${template}) and run `bin/build.sh` to rebuild the documentation.