CIRAL

nDCG@20, Test Set B Hausa Somali Swahili Yoruba Avg
Command to generate run:
python -m pyserini.search.lucene \
  --language ha \
  --topics ciral-v1.0-ha-test-b-native \
  --index ciral-v1.0-ha \
  --output run.ciral.bm25-qt.ha.test-b.txt --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-ha-test-b \
  run.ciral.bm25-qt.ha.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --language so \
  --topics ciral-v1.0-so-test-b-native \
  --index ciral-v1.0-so \
  --output run.ciral.bm25-qt.so.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-so-test-b \
  run.ciral.bm25-qt.so.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --language sw \
  --topics ciral-v1.0-sw-test-b-native \
  --index ciral-v1.0-sw \
  --output run.ciral.bm25-qt.sw.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-sw-test-b \
  run.ciral.bm25-qt.sw.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --language yo \
  --topics ciral-v1.0-yo-test-b-native \
  --index ciral-v1.0-yo \
  --output run.ciral.bm25-qt.yo.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-yo-test-b \
  run.ciral.bm25-qt.yo.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-ha-test-b \
  --index ciral-v1.0-ha-en \
  --output run.ciral.bm25-dt.ha.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-ha-test-b \
  run.ciral.bm25-dt.ha.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-so-test-b \
  --index ciral-v1.0-so-en \
  --output run.ciral.bm25-dt.so.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-so-test-b \
  run.ciral.bm25-dt.so.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-sw-test-b \
  --index ciral-v1.0-sw-en \
  --output run.ciral.bm25-dt.sw.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-sw-test-b \
  run.ciral.bm25-dt.sw.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-yo-test-b \
  --index ciral-v1.0-yo-en \
  --output run.ciral.bm25-dt.yo.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-yo-test-b \
  run.ciral.bm25-dt.yo.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-ha-test-b \
  --index ciral-v1.0-ha-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.ha.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-ha-test-b \
  run.ciral.mdpr-tied-pft-msmarco.ha.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-so-test-b \
  --index ciral-v1.0-so-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.so.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-so-test-b \
  run.ciral.mdpr-tied-pft-msmarco.so.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-sw-test-b \
  --index ciral-v1.0-sw-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.sw.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-sw-test-b \
  run.ciral.mdpr-tied-pft-msmarco.sw.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-yo-test-b \
  --index ciral-v1.0-yo-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.yo.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-yo-test-b \
  run.ciral.mdpr-tied-pft-msmarco.yo.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-ha-test-b \
  --index ciral-v1.0-ha-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.ha.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-ha-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.ha.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-so-test-b \
  --index ciral-v1.0-so-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.so.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-so-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.so.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-sw-test-b \
  --index ciral-v1.0-sw-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.sw.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-sw-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.sw.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-yo-test-b \
  --index ciral-v1.0-yo-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.yo.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-yo-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.yo.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.ha.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.ha.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.ha.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-ha-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.ha.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.so.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.so.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.so.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-so-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.so.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.sw.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.sw.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.sw.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-sw-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.sw.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.yo.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.yo.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.yo.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m ndcg_cut.20 ciral-v1.0-yo-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.yo.test-b.txt
Recall@100, Test Set B Hausa Somali Swahili Yoruba Avg
Command to generate run:
python -m pyserini.search.lucene \
  --language ha \
  --topics ciral-v1.0-ha-test-b-native \
  --index ciral-v1.0-ha \
  --output run.ciral.bm25-qt.ha.test-b.txt --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-ha-test-b \
  run.ciral.bm25-qt.ha.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --language so \
  --topics ciral-v1.0-so-test-b-native \
  --index ciral-v1.0-so \
  --output run.ciral.bm25-qt.so.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-so-test-b \
  run.ciral.bm25-qt.so.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --language sw \
  --topics ciral-v1.0-sw-test-b-native \
  --index ciral-v1.0-sw \
  --output run.ciral.bm25-qt.sw.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-sw-test-b \
  run.ciral.bm25-qt.sw.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --language yo \
  --topics ciral-v1.0-yo-test-b-native \
  --index ciral-v1.0-yo \
  --output run.ciral.bm25-qt.yo.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-yo-test-b \
  run.ciral.bm25-qt.yo.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-ha-test-b \
  --index ciral-v1.0-ha-en \
  --output run.ciral.bm25-dt.ha.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-ha-test-b \
  run.ciral.bm25-dt.ha.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-so-test-b \
  --index ciral-v1.0-so-en \
  --output run.ciral.bm25-dt.so.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-so-test-b \
  run.ciral.bm25-dt.so.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-sw-test-b \
  --index ciral-v1.0-sw-en \
  --output run.ciral.bm25-dt.sw.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-sw-test-b \
  run.ciral.bm25-dt.sw.test-b.txt
Command to generate run:
python -m pyserini.search.lucene \
  --topics ciral-v1.0-yo-test-b \
  --index ciral-v1.0-yo-en \
  --output run.ciral.bm25-dt.yo.test-b.txt \
  --batch 128 --threads 16 --bm25 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-yo-test-b \
  run.ciral.bm25-dt.yo.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-ha-test-b \
  --index ciral-v1.0-ha-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.ha.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-ha-test-b \
  run.ciral.mdpr-tied-pft-msmarco.ha.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-so-test-b \
  --index ciral-v1.0-so-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.so.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-so-test-b \
  run.ciral.mdpr-tied-pft-msmarco.so.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-sw-test-b \
  --index ciral-v1.0-sw-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.sw.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-sw-test-b \
  run.ciral.mdpr-tied-pft-msmarco.sw.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/mdpr-tied-pft-msmarco \
  --topics ciral-v1.0-yo-test-b \
  --index ciral-v1.0-yo-mdpr-tied-pft-msmarco \
  --output run.ciral.mdpr-tied-pft-msmarco.yo.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-yo-test-b \
  run.ciral.mdpr-tied-pft-msmarco.yo.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-ha-test-b \
  --index ciral-v1.0-ha-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.ha.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-ha-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.ha.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-so-test-b \
  --index ciral-v1.0-so-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.so.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-so-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.so.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-sw-test-b \
  --index ciral-v1.0-sw-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.sw.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-sw-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.sw.test-b.txt
Command to generate run:
python -m pyserini.search.faiss \
  --encoder-class auto \
  --encoder castorini/afriberta-dpr-pft-msmarco-ft-latin-mrtydi \
  --topics ciral-v1.0-yo-test-b \
  --index ciral-v1.0-yo-afriberta-dpr-ptf-msmarco-ft-latin-mrtydi \
  --output run.ciral.afriberta-pft-msmarco-ft-mrtydi.yo.test-b.txt \
  --batch 128 --threads 16 --hits 1000
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-yo-test-b \
  run.ciral.afriberta-pft-msmarco-ft-mrtydi.yo.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.ha.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.ha.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.ha.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-ha-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.ha.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.so.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.so.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.so.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-so-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.so.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.sw.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.sw.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.sw.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-sw-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.sw.test-b.txt
Command to generate run:
python -m pyserini.fusion \
  --runs  run.ciral.bm25-dt.yo.test-b.txt run.ciral.afriberta-pft-msmarco-ft-mrtydi.yo.test-b.txt \
  --runtag  rrf-afridpr-bmdt --method rrf --rrf.k 60 \
  --output run.ciral.bm25-dt-afriberta-dpr-fusion.yo.test-b.txt
Evaluation commands:
python -m pyserini.eval.trec_eval \
  -c -m recall.100 ciral-v1.0-yo-test-b \
  run.ciral.bm25-dt-afriberta-dpr-fusion.yo.test-b.txt

Programmatic Execution

All experimental runs shown in the above table can be programmatically executed based on the instructions below. To list all the experimental conditions:

python -m pyserini.2cr.ciral --list-conditions

Run all languages for a specific condition and show commands:

python -m pyserini.2cr.ciral --condition bm25-qt --display-commands

Run a particular language for a specific condition and show commands:

python -m pyserini.2cr.ciral --condition bm25-qt --language somali --display-commands

Run all languages for all conditions and show commands:

python -m pyserini.2cr.ciral --all --display-commands

With the above commands, run files will be placed in the current directory. Use the option --directory runs to place the runs in a sub-directory.

For a specific condition, just show the commands and do not run:

python -m pyserini.2cr.ciral --condition bm25-qt --display-commands --dry-run

This will generate exactly the commands for a specific condition above (corresponding to a row in the table).

For a specific condition and language, just show the commands and do not run:

python -m pyserini.2cr.ciral --condition bm25-qt --language somali --display-commands --dry-run

For all conditions, just show the commands and do not run and skip evaluation:

python -m pyserini.2cr.ciral --all --display-commands --dry-run --skip-eval

Finally, to generate this page:

python -m pyserini.2cr.ciral --generate-report --output docs/2cr/ciral.html --display-split test-b

The output file ciral.html should be identical to this page.