--- license: cc-by-nc-4.0 language: en tags: - education - mathematics - misconceptions - deberta-v3 --- # Why did I get this wrong? Reads a student's own explanation of a multiple-choice maths answer and names the misconception behind it. Trained on MAP (Charting Student Math Misunderstandings, Kaggle 2025, by Eedi and The Learning Agency), licensed CC BY-NC 4.0. These weights carry the same licence: non-commercial use only, with attribution. No student rows are included here; `val_preds.csv` files hold row ids and labels only. ## Runs - `runs/pair-v1-fold0`: deberta-v3-base cross-encoder, (question + chosen answer + explanation, misconception description) scored listwise. Fold 0 of 5: MAP@3 0.9135, top-1 0.84, misconception recall 0.91. This is the served model. - `runs/pair-v1-newq`: same recipe with two questions held out entirely. MAP@3 0.646, misconception recall 0.06. It does not transfer: 32 of the 35 misconceptions in MAP occur on exactly one question, so there is nothing to transfer from. - `runs/pair-smoke`: a 1,500-row smoke test, ignore. Each run has `model.safetensors`, `tokenizer/`, `config.json` (classes, descriptions, questions, log) and `log.jsonl`. The model takes a text pair: the prompt (question, choices, chosen answer, whether it is right, explanation) and one misconception description from `config.json["descs"]`; the highest logit over the question's classes wins.