Qwen2.5 32B Haem Myeloid Parser v3 Atomic Adapter
This is a PEFT/LoRA adapter trained for haem.io atomic myeloid genetics and cytogenetics parser tasks. It is intended to be loaded with the base model Qwen/Qwen2.5-32B-Instruct or the locally mirrored equivalent used during testing (/root/hf-models/Qwen2.5-32B-Instruct).
Intended Use
The adapter extracts atomic structured evidence for the haem.io parser, especially:
- AML recurrent genetic abnormality flags
- MDS mutation flags
- MDS cytogenetic flags
- TP53 evidence decomposition
- CEBPA evidence decomposition
- raw karyotype extraction
Morphology and blast percentages are intentionally out of scope; those are expected to be entered manually in the GUI.
This adapter should be used with the deterministic haem.io parser guardrails. It should not be treated as an unguarded raw drop-in replacement.
Training Run
- Base model: Qwen2.5-32B-Instruct
- Method: QLoRA / PEFT adapter
- Adapter output:
adapter-final
- Training output dir on RunPod:
/root/qwen32b-parser-v3-atomic
- Final eval loss from training: see
training/eval_metrics.json
Eval Summary
Parser Adapter Eval Results
| Eval |
Total |
Valid JSON |
Schema Valid |
Exact |
Max Tokens |
| qwen32b-parser-v3-atomic/eval-heldout |
72 |
72/72 (100.0%) |
72/72 (100.0%) |
61/72 (84.7%) |
1024 |
| qwen32b-parser-v3-atomic/eval-report-1024 |
42 |
41/42 (97.6%) |
41/42 (97.6%) |
30/42 (71.4%) |
1024 |
| qwen32b-parser-v3-atomic/eval-report-row33-2048 |
1 |
1/1 (100.0%) |
1/1 (100.0%) |
0/1 (0.0%) |
2048 |
| qwen32b-parser-v3-atomic/eval-adversarial-report-2048 |
72 |
72/72 (100.0%) |
72/72 (100.0%) |
62/72 (86.1%) |
2048 |
| qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 |
10 |
10/10 (100.0%) |
10/10 (100.0%) |
0/10 (0.0%) |
2048 |
| qwen32b-parser-v3-atomic/eval-runx1-fusion-prompt-v2-2048 |
1 |
1/1 (100.0%) |
1/1 (100.0%) |
1/1 (100.0%) |
2048 |
By Task
qwen32b-parser-v3-atomic/eval-heldout
| Task |
Total |
Valid JSON |
Schema Valid |
Exact |
| aml_recurrent_flags |
14 |
14 |
14 |
14 |
| cebpa_evidence |
7 |
7 |
7 |
3 |
| karyotype_extraction |
11 |
11 |
11 |
11 |
| mds_cytogenetics_flags |
12 |
12 |
12 |
7 |
| mds_mutation_flags |
16 |
16 |
16 |
16 |
| tp53_evidence |
12 |
12 |
12 |
10 |
qwen32b-parser-v3-atomic/eval-report-1024
| Task |
Total |
Valid JSON |
Schema Valid |
Exact |
| aml_recurrent_flags |
7 |
7 |
7 |
3 |
| cebpa_evidence |
7 |
7 |
7 |
6 |
| karyotype_extraction |
7 |
7 |
7 |
7 |
| mds_cytogenetics_flags |
7 |
6 |
6 |
5 |
| mds_mutation_flags |
7 |
7 |
7 |
3 |
| tp53_evidence |
7 |
7 |
7 |
6 |
qwen32b-parser-v3-atomic/eval-report-row33-2048
| Task |
Total |
Valid JSON |
Schema Valid |
Exact |
| mds_cytogenetics_flags |
1 |
1 |
1 |
0 |
qwen32b-parser-v3-atomic/eval-adversarial-report-2048
| Task |
Total |
Valid JSON |
Schema Valid |
Exact |
| aml_recurrent_flags |
12 |
12 |
12 |
11 |
| cebpa_evidence |
12 |
12 |
12 |
11 |
| karyotype_extraction |
12 |
12 |
12 |
12 |
| mds_cytogenetics_flags |
12 |
12 |
12 |
7 |
| mds_mutation_flags |
12 |
12 |
12 |
11 |
| tp53_evidence |
12 |
12 |
12 |
10 |
qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048
| Task |
Total |
Valid JSON |
Schema Valid |
Exact |
| aml_recurrent_flags |
1 |
1 |
1 |
0 |
| cebpa_evidence |
1 |
1 |
1 |
0 |
| mds_cytogenetics_flags |
5 |
5 |
5 |
0 |
| mds_mutation_flags |
1 |
1 |
1 |
0 |
| tp53_evidence |
2 |
2 |
2 |
0 |
qwen32b-parser-v3-atomic/eval-runx1-fusion-prompt-v2-2048
| Task |
Total |
Valid JSON |
Schema Valid |
Exact |
| mds_mutation_flags |
1 |
1 |
1 |
1 |
Failure Digest
- qwen32b-parser-v3-atomic/eval-heldout row 7
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 18
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 21
cebpa_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 30
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 33
cebpa_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 41
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 44
cebpa_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 52
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 55
cebpa_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 64
tp53_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-heldout row 70
tp53_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 1
aml_recurrent_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 5
cebpa_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 7
aml_recurrent_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 13
aml_recurrent_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 19
aml_recurrent_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 20
mds_mutation_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 26
mds_mutation_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 27
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 32
mds_mutation_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 33
mds_cytogenetics_flags: valid_json=False schema_valid=False error=JSONDecodeError: Unterminated string starting at: line 1 column 1875 (char 1874)
- qwen32b-parser-v3-atomic/eval-report-1024 row 34
tp53_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-1024 row 38
mds_mutation_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-report-row33-2048 row 1
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 3
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 9
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 28
tp53_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 40
tp53_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 47
cebpa_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 49
aml_recurrent_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 50
mds_mutation_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 51
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 57
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-report-2048 row 63
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 1
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 2
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 3
tp53_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 4
tp53_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 5
cebpa_evidence: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 6
aml_recurrent_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 7
mds_mutation_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 8
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 9
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
- qwen32b-parser-v3-atomic/eval-adversarial-focused-prompt-examples-2048 row 10
mds_cytogenetics_flags: valid_json=True schema_valid=True error=None
Notes
See SEMANTIC_EVAL_NOTES.md for interpretation of exact-match failures versus clinically meaningful field behavior. Raw generations and summaries are stored under evals/.