CP-HRIC · Models
Our models, family by family.
Every CP-HRIC result on this site comes from one of our multi-task models, each answering several questions with one model. The cp-hric-mil family reads a patient’s whole set of cells and gives one answer for that patient. The System One family gives every single cell its own probability for every answer, then lets the most telling cells decide. None of them is a language model: they read images of blood cells.

The shared foundation
One cell encoder underneath.
Our cell encoder is a ResNet34 image network we trained ourselves on 220,960 labelled cells from five public datasets. It turns each cell photograph into a compact numeric description of what the cell looks like. Our published models are built on it.
The cp-hric-mil family
One answer per patient.
Patient-level reading. The model looks at all of a patient’s cells together and gives one answer for the patient, pointing to the cells that drove it.

CP-HRIC-MIL · multi-task model
The cp-hric-mil multi-task model: shared layers with one head per question, both answers from one model.
Shared per-cell layers with one head per question (genetic subtype, APL), trained together so both answers come from one model.
- Cell encoder
- our own encoder (v3e), its last two blocks fine-tuned together with the heads; the rest frozen
- Trained on
- the Munich patients plus DeepAPL's 82 Johns Hopkins training patients
The System One family
A probability for every cell.
Per-cell probability scoring. Instead of one label per patient, every cell gets its own calibrated probability for every possible answer, and the patient’s answer is built from the cells that score highest.

CP-HRIC-S1 · multi-task model
The cp-hric-s1 multi-task model: System One asked typed questions with fixed answer options, both answers from one model.
A System One model that scores each cell and is asked two typed questions with fixed answer options: the five-way genetic subtype and APL or another AML. One model, both answers.
- Cell encoder
- our own encoder (v3e), frozen
- Trained on
- the Munich patients plus DeepAPL's 82 Johns Hopkins training patients
How System One works
Every cell gets a probability for every answer.
- 01
Describe every cell
The frozen cell encoder turns each cell photograph into a 512-number description. System One does not retrain it.
- 02
Score every answer, cell by cell
A small learned scorer gives each cell a probability for each option of each question, for example: this cell looks like APL 0.91, like another AML 0.09.
- 03
Let the most telling cells decide
The patient’s answer comes from its highest-scoring cells, so a small number of abnormal cells among thousands still counts instead of being averaged away.
- 04
Calibrate the probabilities
The scores are tuned so that they mean what they say: across many cases, answers given at 0.9 are right about nine times in ten.
It learns from patient-level answers only. Nobody had to label individual cells for these questions: the model works out which cells carry the signal.
Why System One matters
It may be exactly the right tool for this job.
Blood-cell diagnosis comes down to one question asked over and over: how likely is it that this cell belongs to that class? System One answers that question directly, for every cell.
A probability for every cell
Other models give one label per patient and, at best, a hint of which cells mattered. System One gives each cell its own calibrated probability for each class, so cells can be ranked, counted and reviewed one by one.
It shows its evidence
Because the patient’s answer is built from its top-scoring cells, the model can show exactly which cells support which answer.
New questions without a new model
A question is a set of typed answer options. Adding one adds a few rows to the scorer rather than a new network; its multi-task model, CP-HRIC-S1, already answers two questions at once.
Small and efficient
The learned part is about 167,000 numbers on top of a frozen encoder, tiny next to the network under it, so it is cheap to train, test and extend.
What the probabilities mean today: until individual cells are tested molecularly, a genetic-subtype score means “this cell looks like cells from patients with that subtype”, not proof that this particular cell carries the mutation.
See how both families score against each published study on the CP-HRIC page.
