Files
guillaumemeyer dfad1d55f1 feat: publishable benchmark harness — env-ready and runnable
Tracks the research/ arXiv-v1 paper kit (per PR #174's gitignore plan) and
closes the environment gaps needed to actually run the 3,500-cell study:

- detect_text_watermark.py / multilingual_gen.py: new --torch-dtype
  (auto|fp32|bf16). bf16 is ~8x faster for opt-1.3b CPU cached decode
  (0.5 vs 4 s/token on aarch64) and keeps same-config gen/detect
  consistent.
- run_experiments.py: --quality-python (defaults to repo .venv-quality,
  else MarkLLM venv with a warning); --seeds/--prompts now limit the
  generate loop instead of only the plan; workers force --torch-dtype
  bf16; the 'none' control attack is a passthrough (was 'unknown attack').
- evaluate_quality.py: BERTScore on roberta-large (deberta-xlarge-mnli
  crashes under transformers>=5 in set_truncation_and_padding;
  WATERMARKS_BERTSCORE_MODEL override).
- Makefile: research-check target (documented but missing).
- .env.example: MARKLLM_DIR naming (code reads MARKLLM_DIR, not
  WATERMARKS_MARKLLM_DIR).
- research/pins-quality.txt: pinned quality-venv freeze (protocol §7).
- tests: quality-python plumbing, CLI subset, bf16 worker flag, none
  attack, multilingual fake_load signature.

Validation: make research-check (78 tests) and make lint green; a
restricted end-to-end run (generate -> attack -> detect -> evaluate ->
report) passes with real metrics.
2026-08-19 15:17:24 -07:00
..