m0rtyddd/clario-synthetic-diary
Clario Synthetic Symptom Diary 411 (diary, structured_entities) pairs distilled from Orphanet rare-disease ↔ phenotype annotations and the Human Phenotype Ontology (HPO) using gpt-oss:20b (Apache-2.0) as the teacher model. Each example pairs a short colloquial diary entry written in a patient's voice with the structured list of medical entities that should be extracted from it (HPO-canonical names + IDs). The dataset is the training corpus for m0rtyddd/clario-gemma4-e4b-lora-v2… See the full description on the dataset page: https://huggingface.co/datasets/m0rtyddd/clario-synthetic-diary.
Clario Synthetic Symptom Diary
411 (diary, structured_entities) pairs distilled from Orphanet rare-disease ↔ phenotype annotations and the Human Phenotype Ontology (HPO) using gpt-oss:20b (Apache-2.0) as the teacher model. Each example pairs a short colloquial diary entry written in a patient's voice with the structured list of medical entities that should be extracted from it (HPO-canonical names + IDs).
The dataset is the training corpus for `m0rtyddd/clario-gemma4-e4b-lora-v2`, a LoRA adapter on Gemma 4 E4B for diary → HPO-entity extraction.
Splits
The disease-held-out split matters: it tests whether a model trained on one set of diseases can extract phenotypes correctly when the same phenotypes appear in the context of a novel disease's narrative.
Schema (JSONL, one example per line)
{
"diary": "Morning was hot, and I woke up with a pins and needles feeling all over my left arm. The doctor mentioned a weird blood vessel network in my brain that might be causing headaches. I also feel pressure in my eyes and my vision is blurry sometimes, like my eyes are stuck in a fog.",
"target": {
"entities": [
{
"name_colloquial": "pins and needles feeling",
"name_canonical": "Paresthesia",
"hpo_id": "HP:0003401",
"type": "symptom"
},
{
"name_colloquial": "weird blood vessel network",
"name_canonical": "Arteriovenous malformation",
"hpo_id": "HP:0100026",
"type": "symptom"
},
{
"name_colloquial": "pressure in my eyes",
"name_canonical": "Glaucoma",
"hpo_id": "HP:0000501",
"type": "symptom"
}
]
},
"source_disease": "ORPHA:2875"
}Fields
- `diary` (string) — short English diary entry in patient voice. Roughly 2-5 sentences, colloquial register, may include mood / context.
- `target.entities` (list) — gold extraction target.
name_colloquial(string) — substring as it appears in the diary.name_canonical(string) — HPO canonical phenotype name.hpo_id(string) —HP:NNNNNNN. Resolvable in the HPO ontology; for downstream use, prefer deterministic lookup from `name_canonical` over consuming this field as-is.type(enum) — one ofsymptom,lab_marker,med,trigger,behavior.- `source_disease` (string) — Orphanet identifier of the disease that seeded this diary entry, e.g.
ORPHA:2875.
Statistics
How it was built
- Seed. Sample (disease, phenotype-set) tuples from Orphanet
en_product4.xml(2026-05-13 snapshot), one tuple per example. - Prompt the teacher.
gpt-oss:20b(Apache-2.0, via Ollama) is given the disease's HPO phenotype set and asked to write a short plausible diary entry in patient voice plus the corresponding structured extraction target. - Post-process. Canonical names are checked against the HPO synonym index built from
hp.obo. Entries that fail JSON validity or whose canonical names cannot resolve to an HPO ID are discarded. - Disease-held-out split. ~80 % / 20 % split by disease: every disease ID appears in exactly one of train or val.
Build scripts are in the upstream Clario repo (scripts/build_synth.py, scripts/eval.py).
Intended use
- Training and evaluating symptom-extraction models that map colloquial patient text to HPO-canonical entities.
- Building synonym-aware matchers and evaluation harnesses for clinical NLP.
- Educational use in NLP / clinical-informatics courses.
Limitations
- Synthetic, not clinical. Both diaries and extraction targets are produced by an LLM teacher seeded from public ontologies. A manual golden set on real patient diaries remains the right next measurement gate.
- English only.
- Coverage is partial. ~1.5k of the ~17k HPO terms appear in the data, biased toward Orphanet-listed rare-disease phenotypes. Common primary-care symptoms may be underrepresented.
- HPO ID quality. IDs were validated to resolve in the ontology at build time, but downstream consumers should re-derive IDs from
name_canonicalto be safe against teacher errors.
Licence and attribution
Released under CC-BY-4.0, propagating the licence chain of the upstream sources:
- HPO (Human Phenotype Ontology) — CC-BY-4.0. Köhler S. et al. (2021) The Human Phenotype Ontology in 2021. Nucleic Acids Research, 49(D1):D1207–D1217. <https://hpo.jax.org/>
- Orphanet rare-disease ↔ phenotype annotations (
en_product4.xml, 2026-05-13 snapshot) — free for academic and commercial use with attribution. Orphadata: Free access products on rare diseases and orphan drugs. INSERM 1978. <https://www.orphadata.com/> - Teacher:
gpt-oss:20b(Apache-2.0).
Cite as:
@misc{okulov2026clario_synthetic_diary,
title = {{Clario} Synthetic Symptom Diary},
author = {Okulov, Maksim},
year = {2026},
howpublished = {\url{https://huggingface.co/datasets/m0rtyddd/clario-synthetic-diary}}
}