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.
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐ Ask for provider support