# Learning from reasoning mistakes with 0.1% of the weights

An exploratory Qwen3 study of self-correction, sparse training, and the gap between solving a mistake and learning a skill.

Author: Yehoyada Shtinmetz
Date: 2026-10-18
Version: 1.0

## Abstract

This exploratory study follows a sequence of experiments with Qwen3-0.6B: feedback-only pilots on a Mac, sparse learning on a DGX Spark, a six-domain difficulty pilot, and training on eight accepted corrections. It separates answering correctly after seeing an answer, solving again with screened advice, and retaining useful behavior after weight updates. These are different outcomes, and success at one does not establish the next.

The Mac pilot solved 45 of 60 tasks initially and another seven after answer feedback, without changing weights. A later GPU pilot answered 100 of 144 questions initially; retrying 11 timed-out correction probes with a longer deadline and a revised advice screen produced eight accepted training targets. Training on those targets changed 596,049 of 596,049,920 parameters through 24 optimizer updates. Held-out validation moved from 11/24 to 12/24 correct, a 4.17 percentage-point increase with substantial uncertainty. A continuation stopped at 44 total updates before another validation pass. The record demonstrates an operational correction-to-training pipeline, but does not establish a reliable generalization advantage or sustained improvement from additional updates.

## Research question

Can a small reasoning model diagnose its own mistakes, turn successful fresh-context corrections into training data, and improve on held-out tasks by changing only 0.1% of its parameters without damaging other skills?

## Experiment setup

Scope and provenance. The record synthesizes all six research and operational conversations attached to the minimal_learning project, including the initial design review, GPU availability checks, experiment handoff, Spark experiments, launch attempts, and the later GPU pilot and continuation. Their research claims were checked against saved code, task manifests, model outputs, evaluation records, and recovered remote checkpoints. Conversation transcripts and private conversation links are not published. Early handoff statements that no weight updates had occurred are historical: the later saved GPU runs supersede them. No new model inference or training was performed to prepare this article.

Motivation and hypotheses. The initial proposal considered selecting weights using the difference between gradients for correct and incorrect reasoning. The implemented experiments instead adopted a fixed GEM-inspired mask and focused on whether model-written corrections provide useful targets. A correction can fail because the diagnosis is wrong, the advice leaks the answer, the fresh retry fails, or the accepted solution does not produce transferable learning. Dense, random-mask, verified-reference, and error-contrast comparisons were discussed, but the reported live learning runs used only gem_feedback. They do not isolate the value of self-diagnosis or parameter-selection method.

Model and sampling. The model was Qwen/Qwen3-0.6B at revision c1899de289a04d12100db370d81485cdf75e47ca. The revised protocol kept built-in thinking active and saved generated reasoning separately from final responses. Spark sampling used temperature 0.6, top-p 0.95, top-k 20, and seed 42, with 4,096-token generation and training-sequence limits. Mac pilots used PyTorch MPS with FP32 storage and run-specific output caps; some early trials disabled thinking and remain historical rather than pooled evidence. GPU records identify NVIDIA GB10, PyTorch 2.12.1+cu130, and CUDA 13.0; the saved profiling report records Transformers 4.57.6.

Feedback-only diagnosis. After an incorrect answer, the model received the unchanged question, previous wrong reasoning and conclusions, the verified answer, and a request to explain and correct its error. No human-written solution technique was supplied in the revised self-diagnosis protocol. A correct final answer ended the task even if the explanation remained wrong. Task completion and reasoning quality were recorded separately. Python-specific puzzles were excluded from the preferred curriculum after early trials; subsequent tasks emphasized explicit arithmetic, assignments, branches, loops, logic, and time calculations.

Fresh-context correction and training. For training candidates, the model wrote advice after diagnosis. The workflow screened that advice for answers, numeric values, and worked solutions, then started a fresh context containing the task, original failed response, and screened advice. The answer-bearing diagnosis was excluded. Only a complete retry with a verified correct final answer became a target. Training input contained the original question alone, with loss restricted to the successful generated reasoning and answer. The advice and failed response were excluded from training input. Numeric redaction was later introduced; a lexical screen cannot guarantee freedom from indirect semantic leakage.

Sparse update mechanism. For eligible query/value projection entries, the implementation scores absolute gradient divided by absolute weight plus epsilon 1e-8. It allocates a fixed global budget across matrices using score norm multiplied by score-distribution entropy, then selects entries within each matrix. This is a GEM-inspired adaptation, not a reproduction of published GEM results. The denominator is all 596,049,920 model parameters: floor(0.001 × total) = 596,049 eligible positions. Selected-entry AdamW uses learning rate 2e-5, weight decay 0.01, and gradient clipping norm 1.0. FP32 parameter storage and BF16 GPU computation preserve small updates. The computation still uses dense forward/backward passes.

Adaptive retests. A successful correction triggers an update and fresh, hint-free retests of the original question. Three consecutive complete correct answers must occur at unchanged weights. A failed retest resets the streak and triggers another update. The initial sparse runs capped each task at four updates. Passing a task is measured before training later tasks, so these streaks do not demonstrate simultaneous mastery of all tasks at the final checkpoint. The later continuation restored selected values, the exact mask, and optimizer state, removed the four-update and per-task time caps, and retained an operational deadline.

Datasets and difficulty. The original package contains 1,012 deterministic tasks: 256 arithmetic training candidates, 256 validation questions across four domains, 400 test questions across four domains, and 100 unfamiliar arithmetic instances. A later separate curriculum has 648 independently checked tasks: 288 training, 144 pilot, and 72 each in validation, test, and unfamiliar wording. Its six domains are arithmetic, integer program execution, ordered logic, time, conditional string counting, and unit conversion, with low/medium/high candidate levels. The pilot sought 35–85% initial accuracy and correctability on at least half the probed mistakes, but incomplete correction evidence did not yield a completed selection. Eight accepted pilot questions were explicitly repurposed for training, outside held-out evaluation.

Evaluation and time budgets. The earlier arithmetic-only learning run evaluated 32 validation and 40 test questions, using eight per domain. The later six-domain run used four medium-level questions per domain in each of three panels: 24 validation, 24 test, and 24 unfamiliar-wording questions. These panels were checked for overlap with training examples. Macro accuracy weights domains equally; with equal panel counts it equals pooled accuracy. For the later run, the pristine model was reconstructed after training and baseline/final generation used matched settings and seeds 142, 143, and 144 for the respective panels. The run trained first and evaluated afterward. Its training budget and the separate evaluation budgets should not be described as a single one-hour end-to-end run.

## Results

Feedback-only Mac pilot. Across 60 tasks with at most seven executed steps including initialization, 45/60 (75.0%) were correct initially and seven more became correct after feedback, yielding 52/60 (86.67%). By family, initial/additional correct counts were arithmetic 10/0, variables 8/1, conditions 5/2, loops 8/1, logic 10/0, and time 4/3, with ten questions per family. Active runtime was 6,812 seconds (113.5 minutes). Parser defects produced ten unnecessary feedback rounds on four already solved tasks; the original records were retained and those rounds excluded from outcomes. Interruptions, seed resets, and budget extensions make this an exploratory pilot. It performed no weight updates.

Fresh reruns of unresolved Mac tasks. Eight previously unresolved questions were rerun in batches of four using more explicit feedback wording. Four were correct initially, three after feedback, and one conditional task remained wrong after six reviews, answering 21 instead of 23. Runtime was approximately 26.1 minutes. Several correct final answers still had faulty intermediate reasoning. A separate fresh time-05 rerun was already correct initially and therefore did not test the revised correction request. These reruns are selected follow-ups, not independent estimates of population accuracy, and batching and sampling changes prevent attributing differences to prompt wording.

Diagnostic failure examples. In an early time task, the model correctly computed a 202-minute duration as three hours and 22 minutes, yet repeatedly added only the hours, returning 10:14 instead of 10:36 even after seeing the verified answer. It sometimes treated the supplied answer as the mistake. An early list-removal puzzle reached the correct final answer after six feedback rounds while retaining a wrong explanation; a shared-reference puzzle did not recover before token/time limits. Small Bash side trials also repeated failed scripts after observed execution feedback. These examples motivated clearer tasks and separate answer and explanation scoring. They are heterogeneous case studies, not evidence of the final training protocol succeeding.

Collection bottleneck on easy arithmetic. Spark run spark-20261015-03 processed 120 candidate tasks and accepted five corrected solutions, below its configured eight-example minimum. Collection reached its time budget and the run ended incomplete after roughly 28 minutes, before any learning updates. This gate was a workflow choice, not a requirement of GEM. Harder arithmetic and immediate online updates were subsequently introduced. Earlier launch attempts and the interrupted harder batch run have no measured post-training gain.

First online sparse learning run. Spark run spark-20261015-05 attempted five harder arithmetic tasks, accepted one corrected target, and made three updates using 7,923 target-token exposures. That task reached three consecutive correct hint-free retests. The wall time was 3,340 seconds (55.7 minutes), while recorded optimizer training time was about 2.01 seconds; correction, generation, and evaluation dominated. The learning phase hit its time limit, but final evaluation completed. Unselected and frozen parameter equality checks passed. Advice redaction had been prepared during this run but was not active in its running version.

First sparse run: held-out outcomes. In its 40-question test panel, arithmetic stayed 8/8, programs stayed 8/8, logic moved from 4/8 to 5/8, time from 8/8 to 7/8, and unfamiliar arithmetic stayed 8/8. Total correct remained 36/40. Validation was less favorable: arithmetic stayed 7/8, programs 8/8, logic declined from 5/8 to 4/8, and time from 7/8 to 4/8, moving total accuracy from 27/32 (84.38%) to 23/32 (71.88%). Opposite logic changes across panels and ceiling scores in arithmetic prevent a claim of reliable improvement. The configured five-percentage-point arithmetic improvement target was not reached.

Six-domain GPU difficulty pilot. All 144 initial questions completed, with 100 correct (69.44%). The run was resumed after an initial budget, preserving completed answers and resetting sampling for remaining work; its configuration also records an idle language-model server sharing GPU memory. Eleven completed correction probes all exhausted their original 90-second deadlines. Inspection showed that rejected advice consumed substantial time and a retry could be cut off before its final response. The original pilot was stopped with its records preserved. In the follow-up, the same 11 saved initial failures received 300 seconds each and an advice screen that allowed harmless operator notation after numeric redaction. Eight were accepted (72.73% of these 11 selected probes), one timed out, and two exhausted correction cycles. All weights remained unchanged during both pilots. Time allowance and screening changed together, so their individual effects are not identified.

Training on eight accepted corrections. The saved targets were independently rechecked against the curriculum and verified answers before training. Calibration used reference targets from these eight training tasks without updates; the mask was then fixed. The shuffled schedule completed 24 optimizer updates and 25,724 target-token exposures across all eight tasks. Four reached three consecutive correct retests: counting-low-0005 and time-high-0000 after one update each, program-high-0002 and logic-medium-0001 after three each. Units-medium-0001, logic-medium-0002, time-low-0000, and time-low-0002 reached the four-update cap. The saved freeze audit reports exactly 596,049 changed parameters with all unselected eligible entries and all frozen parameters unchanged.

The completed 24-update validation panel. Baseline was 11/24 (45.83%) and final accuracy 12/24 (50.0%), a 4.17 percentage-point increase. Domain counts were arithmetic 4→4, programs 2→2, logic 1→1, time 2→2, counting 0→1, and units 2→2, each out of four. Pairwise records show four gains and three losses: time gained one and lost one; counting gained one; units gained two and lost two. Net counts can conceal changed answers. The configured five-point improvement target was not met. The final test panel contains only a partial saved result and unfamiliar-wording evaluation did not complete before the continuation was prioritized; no final full-panel scores are reported for them.

Continuation and stopping. The next run restored the 24-update checkpoint and AdamW state, reused the same 596,049-position mask, and trained only the four unfinished questions without the old update/time caps. It stopped at user request after 20 additional updates, 44 in total. Time-low-0000 reached its streak after eight additional updates and 17 retests; units-medium-0001 after nine updates and 19 retests. The remaining three additional updates were on logic-medium-0002, which had not passed. Time-low-0002 had not yet been retrained. No post-continuation validation or completed terminal freeze audit exists. The checkpoint is preserved, but its per-task streaks do not establish generalization or final joint mastery.

Performance engineering. Warmed GPU microbenchmarks, using medians of three measurements, reported single-response generation 44.4→70.6 tokens/second and batch-eight aggregate generation 286.6→449.6 tokens/second after caching BF16 linear casts and reducing optimizer synchronization. Update timings were 79.7→67.1 ms at 256 tokens, 215.3→201.5 ms at 1,024 tokens, and 964.9→950.9 ms at 4,096 tokens. A separate distinct-question scheduling probe measured 73.8→289.0 aggregate tokens/second, 3.91× throughput. These 128-token probes did not measure completed corrections or end-to-end learning. Long-answer pilot throughput was substantially lower, around 49 aggregate tokens/second at one recorded point. Full-model parity checks reported identical fixed-seed probe output, loss, and eligible gradients for caching; batching did not have a corresponding live accuracy comparison.

## Discussion

What the record supports. The workflow can collect correct fresh-context solutions from some mistakes and apply real selected-entry updates while respecting the intended sparse budget. It also exposes practical bottlenecks: tasks can be too easy to supply mistakes, too difficult to correct within a deadline, or rejected by an overly broad advice filter. Updating a tiny parameter subset does not make the complete process fast when long generated reasoning dominates elapsed time.

What the record does not support. The one-question net validation gain after 24 updates is compatible with substantial sampling variation and does not identify a causal benefit of self-diagnosis. There is no matched no-training repeated-sampling control, no completed dense/random/reference comparison, and no seed replication. The earlier run had flat total test accuracy and declining validation accuracy. Removing the caps produced more task-specific streaks, but no later held-out measurement. Consequently, neither steady improvement with more updates nor a general failure of sparse learning follows from the continuation.

Answer correctness and reasoning. Some accepted answers have incorrect intermediate explanations, and a feedback diagnosis can simply incorporate a supplied answer. Keeping answer-bearing diagnosis out of a fresh retry helps separate these cases operationally, but screened advice may still convey indirect information. Training on a verified final answer is not equivalent to training on a fully verified reasoning trace. Likewise, three successes at a sampled checkpoint are an adaptive stopping event; at success probability p, a specified independent three-trial block succeeds with probability p³, and repeated opportunities increase the chance of observing a streak. The actual retests are not guaranteed independent.

A stronger next experiment would lock the curriculum, parser, and advice policy before comparing methods; train matched examples with GEM, a random mask with matching matrix budgets, and verified reference targets; include an unchanged-model repeated-evaluation control; and replicate across seeds. It would evaluate fixed checkpoints regardless of training-task streaks, retain previously correct held-out items, report paired gains and losses, and budget reasoning tokens as well as updates and wall time. Those are proposed follow-ups, not experiments completed in this record.

## Limitations

This is an evolving exploratory series, not a preregistered controlled comparison. Model prompts, parser behavior, sampling consumption, task difficulty, screening, time budgets, and training schedules changed. Outcomes from different protocols are reported separately and should not be pooled into one treatment effect.

Evaluation panels are small and synthetic: the primary later validation has only four questions per domain. For scale, a Wilson 95% interval for pooled 12/24 accuracy is approximately 31.4–68.6%, under an independent Bernoulli approximation. This is not an interval for the paired improvement or a justification for statistical significance; the domains and task instances need not satisfy that approximation. The record uses one nominal seed with documented restarts and no across-seed uncertainty estimate.

The unfamiliar-wording curriculum changes instruction wrappers on new instances; it is not evidence of transfer to longer reasoning chains, real-world tasks, or broad language capabilities. Synthetic domains share arithmetic and execution skills. Parameter equality outside a mask does not prevent behavioral forgetting. Several net-unchanged domains contained both gained and lost answers.

Only the 24-update run has the reported completed later validation and terminal freeze audit. Its remaining final panels were interrupted, and the 44-update continuation has no post-training validation or terminal freeze audit. Missing phases are not inferred from status summaries or incomplete predictions. Sparse checkpoints require the exact base model revision and are selected values plus indices and optimizer state, not full standalone models.

Reproducibility materials contain the current source snapshot, datasets and manifests, saved experiment configurations, model-generated research outputs, and final 3-, 24-, and 44-update sparse checkpoints. Current source includes later fixes and is not an immutable snapshot of every historical run. Model weights must be obtained separately at the pinned revision. Raw profiling operator traces referenced on older remote paths were not recovered and are not included; the measured reports and available summaries are included. No learning experiment was reproduced for this publication.

## Summary results

| Checkpoint | Macro accuracy (%) | Updates |
| --- | --- | --- |
| Baseline | 45.83 | 0 |
| After training | 50.00 | 24 |

The same 24 held-out medium-level questions, four per domain. Baseline: 11 correct; after training: 12 correct. Equal domain weighting gives 45.83% and 50.00% macro accuracy. The third column is optimizer updates, not task count. The 44-update continuation is excluded because its validation was not run.

## References

- [Kang et al. (2025): GEM — scale-aware and distribution-sensitive sparse fine-tuning](https://arxiv.org/abs/2508.16191v1)
- [Qwen3-0.6B: primary model documentation](https://huggingface.co/Qwen/Qwen3-0.6B)
- [Research record, datasets, configurations, and results in the source archive](/downloads/learning-from-reasoning-mistakes-with-sparse-updates/code.zip)

## Download instructions

The complete study uses a standard split ZIP to keep every hosted file below 20 MiB. Download both `complete-study.z01` and `complete-study.zip` into one folder and open the .zip with an archive application that supports split ZIP files. Alternatively, Info-ZIP can join it with `zip -s 0 complete-study.zip --out joined-study.zip`; then unzip joined-study.zip. Do not concatenate the parts directly. The source code archive and each checkpoint ZIP are independently usable downloads.

