Skip to content

Commit 382ce54

Browse files
committed
chore(release): prepare v0.1.1
1 parent 1250d08 commit 382ce54

4 files changed

Lines changed: 21 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1010
### Added
1111

1212

13+
## [0.1.1] - 2026-07-21
14+
15+
### Changed
16+
17+
- Synchronized the repository documentation, model card, and citation metadata with the ECCV 2026 camera-ready paper.
18+
- Expanded the Notes from the Authors with discussions of generalization, case aggregation, benchmarking, and Stage 2 hyperparameters.
19+
- Updated the reported evaluation results and supporting analysis to cover all sixteen held-out tasks.
20+
21+
1322
## [0.1.0] - 2026-03-31
1423

1524
### Added

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ authors:
1616
repository-code: "https://github.com/AtlasAnalyticsLab/MOOZY"
1717
url: "https://github.com/AtlasAnalyticsLab/MOOZY"
1818
license: CC-BY-NC-SA-4.0
19-
version: 0.1.0
20-
date-released: 2026-03-31
19+
version: 0.1.1
20+
date-released: 2026-07-21
2121
keywords:
2222
- computational pathology
2323
- digital pathology

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
- [Notes from the Authors](#notes-from-the-authors)
3333
- [On using Linear vs non-Linear classifier](#on-using-linear-vs-non-linear-classifier)
3434
- [On the strength of Stage 1 alone](#on-the-strength-of-stage-1-alone)
35+
- [On Generalization](#on-generalization)
3536
- [On the multi-task training dynamics](#on-the-multi-task-training-dynamics)
3637
- [On the effect of scaling](#on-the-effect-of-scaling)
3738
- [On the limitations of slide encoders](#on-the-limitations-of-slide-encoders)
@@ -222,6 +223,14 @@ A related question we have heard is how much of MOOZY's gain comes from Stage 1
222223

223224
Stage 1 alone is competitive but is not the strongest encoder. It exceeds GigaPath by 0.008 weighted F1, 0.009 weighted ROC-AUC, and 0.013 balanced accuracy using about 5% of its parameters. It also slightly exceeds PRISM across the three macro metrics, while Madeleine and TITAN remain stronger. GigaPath puts almost all of its parameters into a 1.1B-parameter tile encoder, whereas MOOZY keeps a compact 21.67M ViT-S/8 patch encoder frozen and routes the remaining budget into slide-level modeling. This is the most direct evidence we have for a hypothesis we raise in the paper, that slide- and context-level modeling, not patch-level capacity, is the real bottleneck in computational pathology. Full MOOZY improves over Stage 1 by 3.50% weighted F1, 6.64% ROC-AUC, and 5.98% balanced accuracy.
224225

226+
### On Generalization
227+
228+
If we had to choose the most generalizable encoder we have seen, our personal pick would be TITAN. We mean that as our reading of the evidence in this paper, not as a claim that any benchmark can establish a universally best encoder. Under the MLP-probe, TITAN is the strongest conventional slide encoder on all three macro averages by 0.758 weighted F1, 0.768 weighted ROC-AUC, and 0.683 balanced accuracy. It is also the only baseline to exceed full MOOZY on a macro metric, with 0.768 versus 0.763 ROC-AUC. In Table 1 results, TITAN leads or ties the five conventional slide encoders on 27 of the 48 task-metric comparisons. Recomputing the macro averages from the linear-probe table gives TITAN approximately 0.689 weighted F1, 0.756 weighted ROC-AUC, and 0.627 balanced accuracy, the strongest values of every encoder evaluated, including MOOZY, while TITAN leads or ties the conventional slide encoders on 29 of 48 task-metric comparisons. That consistency across probe capacity, organs, and clinical endpoints is what makes TITAN stand out to us. We do not read this as evidence that TITAN understands cross-slide relationships, we read it as evidence that its individual slide representations are unusually transferable and remain useful even after a lossy patient-level reduction.
229+
230+
Our interpretation and intuition is that language is an *extremely rich* supervisory signal for learning such representations. TITAN combines slide-level pathology reports with fine-grained synthetic region captions, and our qualitative results point in the same direction as the probe results. However, PRISM is the counterexample. It is also language-supervised, and it was trained at large scale with clinical reports, yet in both MLP and linear probes, PRISM underperfoms compared to TITAN. Since both's training data are not publicly released, we cannot tell whether TITAN's advantage comes from the language objective itself, richer reports, better case diversity, the synthetic region captions, data curation, or some interaction among them.
231+
232+
Our experiments points that TITAN learns an exceptionally general slide representation and that language supervision is probably a major reason, but they cannot tell us why language supervision works so much better for TITAN than for PRISM.
233+
225234
### On the multi-task training dynamics
226235

227236
One thing we kept bumping into during Stage 2 is just how hard it is to make different heterogeneous tasks converge at the same time. Our current recipe averages losses equally across the active tasks in each batch, which is the simplest thing that works but treats a tiny lymph-node survival task with a handful of cases and a pan-cancer classification task orders of magnitude larger as if they carried the same weight, and in practice they do not. Tasks differ wildly in sample count, in difficulty, in whether the output is categorical or a discrete-hazard distribution over censored event times, and hence in the natural scale of their loss. Our sense is that different tasks pull the shared backbone in different directions, so their gradient updates partially cancel each other out under equal averaging, and no single training checkpoint ends up being the best one for every task at the same time. We see this as one of the clearest open problems in MOOZY, and investigating task sampling and loss weighting strategies feels like a promising future research direction.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "moozy"
7-
version = "0.1.0"
7+
version = "0.1.1"
88
description = "MOOZY: A Patient-First Foundation Model for Computational Pathology."
99
requires-python = ">=3.11"
1010
license = {file = "LICENSE"}

0 commit comments

Comments
 (0)