Skip to content
Back to skills

Evaluation And Fusion

ASecurity

"Evaluate Pyserini run files, convert run formats, fuse retrieval

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
developmentpythonjavabash

Works with

  • cli

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill evaluation-and-fusion --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Evaluation And Fusion?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Evaluation And Fusion
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-evaluation-and-fusion/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-evaluation-and-fusion)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: evaluation-and-fusion
description: "Evaluate Pyserini run files, convert run formats, fuse retrieval
  runs, and use reproducibility matrices safely."
disable-model-invocation: true
metadata:
  disco-role: operating
license: Apache 2.0
---

# Evaluation And Fusion

Use this sub-skill when the task involves `trec_eval`, qrels, TREC/MS MARCO/KILT/DPR/QA retrieval evaluation, run-file validation, run conversion, reciprocal-rank fusion, interpolation, score normalization, or Pyserini two-click reproducibility matrices.

Do not use this sub-skill to generate search runs from an index. Route Lucene indexing/search/fetch workflows to `../index-search-fetch/SKILL.md`, dense encoding/Faiss/hybrid retrieval generation to `../dense-encoding/SKILL.md`, and Java/eval-jar/source-checkout build failures to `../install-and-runtime/SKILL.md` or `../repo-development/SKILL.md`.

## Quick Routing

- **TREC evaluation:** Validate a six-column TREC run and qrels, then run `python -m pyserini.eval.trec_eval` with explicit metrics.
- **MS MARCO evaluation:** Keep three-column MS MARCO runs for `msmarco_passage_eval`/`msmarco_doc_eval`, or convert to six-column TREC before `trec_eval`.
- **KILT, DPR, and QA retrieval:** Use the dedicated JSON/JSONL evaluators only after checking the expected schema and avoiding implicit annotation downloads.
- **Run filtering:** Use `pyserini.trectools.TrecRun` and `Qrels` to inspect topics, retain or discard judged documents, normalize scores, or write a clean TREC run.
- **Fusion:** Use `python -m pyserini.fusion` for `rrf`, `interpolation`, `average`, and `normalize` on valid TREC runs with compatible query/document identifiers.
- **Reproducibility matrices:** Prefer `--display-commands --dry-run` first; treat full two-click commands as opt-in because they may download indexes, models, topics, qrels, or runs.

## Default Safe Workflow

1. Validate the candidate run before evaluation or fusion:

   ```bash
   python scripts/validate_trec_run.py run.trec --qrels qrels.txt --strict-ranks --summary
   ```

2. If the run is MS MARCO format, convert it before using `trec_eval`:

   ```bash
   python -m pyserini.eval.convert_msmarco_run_to_trec_run --input run.msmarco.tsv --output run.trec
   ```

3. Evaluate with explicit metrics and a qrels key or qrels path:

   ```bash
   python -m pyserini.eval.trec_eval -c -m ndcg_cut.10 -m recall.100 qrels.txt run.trec
   ```

4. Build a fusion command without executing it:

   ```bash
   python scripts/fusion_recipe_builder.py --method rrf --runs bm25.trec dense.trec --output fused.trec --runtag demo --k 100 --depth 1000
   ```

5. Validate the fused run and evaluate it with the same qrels and metrics as the input runs.

## References

- `references/run-evaluation.md` covers TREC, MS MARCO, KILT, DPR, QA, `TrecRun`, `Qrels`, qrels aliases, and common metrics.
- `references/reproducibility.md` explains two-click reproduction modules, dry-run/display-command safety, nondeterminism, and matrix triage.
- `references/troubleshooting.md` maps malformed runs, run/qrels mismatches, missing eval jars, unjudged documents, and expensive reproduction failures to fixes.
- `scripts/validate_trec_run.py --help` validates TREC runs and qrels without importing Pyserini or starting Java.
- `scripts/fusion_recipe_builder.py --help` generates reproducible Pyserini fusion commands with method-specific checks.

## Acceptance Checklist

- Confirm whether the run is six-column TREC or three-column MS MARCO before choosing an evaluator.
- Keep query IDs and document IDs as strings; do not coerce them to integers unless a specific evaluator requires it.
- Use the same qrels/topic split and metric definitions for baseline, candidate, and fused runs.
- Validate every input run before fusion and validate the fused output before evaluation.
- Treat prebuilt-index reproduction and neural retrieval commands as network/model/cache-sensitive unless the user has explicitly approved them.

Files in this skill

  • SKILL.md3.9 KB
  • references/reproducibility.md5.1 KB
  • references/run-evaluation.md5.7 KB
  • references/troubleshooting.md5.1 KB
  • scripts/fusion_recipe_builder.py3.7 KB
  • scripts/validate_trec_run.py8.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.