Skip to content

1.7.0

Choose a tag to compare

@clemsgrs clemsgrs released this 04 Jul 11:09

1.7.0

This release turns soma into a first-class foundation-model benchmarking package. The centerpiece is the benchmarking productization (PRD #210): benchmarks become registered, protocol-as-code citizens with a one-command reproduction path, a faceted leaderboard, and a unified curation schema. Alongside it, Paper-1's FM cell-detection benchmark gains three new dataset slices (MIDOG 2022, MONKEY) and a full decoder-complexity ladder.

Added

  • Benchmark registry + soma reproduce / soma list benchmarks — benchmarks are now registered protocol-as-code; soma reproduce <name> curates → runs → scores → checks per-row tolerance and exits non-zero on failure, with OCELOT as the first registered benchmark (#220).
  • EVA promoted into the registry as the eva/<dataset> family (bach, breakhis, crc, mhist, gleason_arvaniti, patch_camelyon); soma reproduce eva fans out over all members, eva/bach --encoder <name> narrows to one backbone (#221).
  • soma leaderboard — a leaderboard rendered as a pure faceted projection over self-describing run dirs (no stored index), with seed collapse, --vary/--fix/--like facets, and reference-row join in CSV/JSON/HTML (#222).
  • Unified Manifest schema + Protocol-typed curators — one CuratedManifest contract and single writer/validator across classification, segmentation, and detection curators (#218).
  • Packed single-vector feature cache — repeat multi-seed training over cached 1-D features is served from an in-memory packed matrix instead of one file per sample per epoch; numerically identical to the per-file path (#217).
  • MIDOG 2022 mitosis-detection slice — deterministic curator, native single-class F1 scorer (7.5 µm tolerance), and a fixed patient/domain-stratified local held-out split (#240).
  • MONKEY detection slice — curator, the FROC scorer (new to soma, at the challenge's operating points), and a patient-stratified local split (#242).
  • Decoder-complexity ladder — a heavy UPerNet/DPT-lite decoder, a multi-FM ensemble decoder, and a decoder-free attention-map rung, all preserving the d→D-projection fairness invariant (#241).
  • Natural-image control encoder and gpfm / mstar / genbio-pathfm become selectable by raising the slide2vec floor to >=5.3.0 (#243).
  • Non-gating external reference anchors — official/external benchmark numbers render as structured guidance in the leaderboard and docs without acting as the reproduction gate (#227).
  • Benchmarking guide + per-benchmark docs generated from the registry, so rendered numbers are the same bytes the registry scores against (#223).
  • Benchmarking domain glossary (CONTEXT.md) + ADRs 0001–0004 capturing the productization design decisions (#209).

Changed

  • OCELOT config YAMLs de-duplicated onto the packaged benchmark copies as the single source of truth (#224).

Fixed

  • soma reproduce --from-run-dir — resolves a null cache root to output_root/feature_cache (was silently broken for real OCELOT runs) and keys the reference row on the run's own recorded axes instead of defaults, so an encoder is no longer compared against the wrong reference (#225).