Update #1Oct 5–11Pre-campaign
Continuation atlas: two fresh processes resume the same next step; a method proposal fails at format
After research parameters change and are saved, a restart reads every checked number back unchanged, and two restarts from the same save produce matching checked state and gradients after the next update. That is groundwork for testing whether a change can last, not proof the model solves problems better. The model's own method proposal was blocked by a format error. Real-model experiments have been paused since Oct 9 and the cloud GPU released; weekly updates continue.
Research version for this issueXiaomai True 1.2 research lineage · research weights revision 8 (formal research save, Oct 9)
W41 / CONTINUATION ATLAS
Save the state. Resume the same next step.
Six figures trace operations into research updates, show what matched after restarting and identify where method capability still failed.

Visual editorial supplement prepared on Oct 26 from the original weekly and its contemporary public sources. Research evidence still ends Oct 9; research was not rerun. Pause status, saves and open gates describe that historical week.
Make an update traceable through its operations
Oct 6–7: R13, R14 and R16 connected bounded operations before observing research updates.
Examples of connected operations
sigmoid · softplus · projection · grouped convolution · rsqrt · SiLU
Observations can be traced to specified operations. This CPU evidence does not cover the entire model.
Research parameters update; the 9B base stays frozen
Evidence boundaryOnly bounded operations are covered. Complete 9B Python forward, backward and update remain unfinished. A tensor contains many values; tensor counts are not scalar counts.
Separate tolerance agreement from cold-restore equality
Oct 7: update comparison and save reload each have their own denominator and criterion.
Native vs. trace-off: within tolerance
207 records · 3,108,566 compared values
Swipe horizontally for the full chart, or open the data table.
After saving: cold reload matched bit for bit
2,960,497 values per cold reload
This batch stopped at reload and did not execute the next update. Full CUDA RNG and all lazily loaded base values were outside its boundary.
Read the chart data
| Check | Records / values | Criterion and result |
|---|---|---|
| Native vs. trace-off | 207 / 3,108,566 | Within preset tolerance; 81 records not bit identical |
| Each cold reload | 181 / 2,960,497 | Bit identical; no next update |
Evidence boundaryDo not pool these batches into a pass rate. R17’s 207 records include one next-loss scalar; R19’s 206 cover typed state and gradients, with loss compared separately. The count difference does not establish identical states across batches.
Compare new operations on synthetic cases first
Oct 8: test calculations and continuation first; real-model updates using the new operations have a separate gate.
5 probability operations, plus reverse subtraction
exp · log · softmax · log_softmax · logsumexp
rsub · Reverse subtraction tested separately; not counted as a probability operation.
Maximum difference ≈ 1.2e-7
Approximation from the original weekly; trace on/off matched bit for bit.
Read the chart data
| Item | Value / result |
|---|---|
| Initializations | 3 |
| Parameter elements | 177 |
| Approximate maximum difference | 1.2e-7 |
| Fresh-process second steps | 6 · bit identical |
Evidence boundaryThis is not complete 9B execution or acceptance of real-model gradient/update equivalence for the new probability operations. Synthetic errors and the R17/R19 denominators are not interchangeable.
After a restart, can the same next step match?
Oct 9 R19-A100: start two independent fresh processes from the specified formal save.
Swipe horizontally for the full figure, or open the data table.
Read the chart data
| Compared item | Per fresh process |
|---|---|
| Post-update state records | 181 |
| Fresh-gradient records | 25 |
| Total typed records | 206 |
| Scalar values | 3,108,565 |
| Values differing between A / B | 0 |
Evidence boundaryThe 25 updated tensors and gradients use CPU FP32; saved state also contains BF16. Arbitrary outputs, text generation, complete model state and arbitrary multi-step continuation are outside scope. Matching state is not evidence of better problem solving.
After consistent saving, six gates remain
R15’s method proposal failed at format. R19’s consistent continuation does not replace capability tests.
FINITE_NUMBERS_REQUIRED · Passing safety and cost checks is not passing method capability. Two identical generations are not two independent method proposals.
- 1Complete trace on / off
Interrupted after 10,800 seconds, exit -15; cause unresolved.
Next: locate the stalled operation before a full comparison. - 2New probability operations on the real model
Gradient and update equivalence remain unverified.
Next: compare operations with fixed inputs and state. - 3Complete 9B Python path
Forward, backward and update remain unfinished.
Next: expand bounded sections; inventory is not execution. - 4GPU / BF16 boundaries
New sqrt GPU and BF16 probability operations lack full acceptance.
Next: test dtype, device and boundary cases separately. - 5Corrected own text generation
CPU precheck passed; GPU run had not started.
Next: compare GPU generation under frozen conditions. - 6Autonomous method formation and reuse
This format failure retained no usable method.
Next: pass format, then separately test execution, utility, persistence and new-task transfer.
Evidence boundaryThese are that week’s open gates and next-step plans, not newly executed experiments. Oct 26 adds visual curation only, without importing later weeks’ results.
Which open-source tools were actually used this week?
Full GitHub repository URLs are visible. Uses are limited to execution evidence from this historical week.
PyTorch
Run version not published in this weeklyThe executed R13 witness used native sigmoid/softplus comparisons and read typed FP32/BF16 tensor bytes. This usage is directly linked to that week's execution receipt.
BSD 3-Clause · multiple contributor notices · upstream license ↗NumPy
Run version not published in this weeklyThe same executed R13 witness converted typed tensors to NumPy and then bytes for saved observations and comparison.
BSD 3-Clause · upstream license ↗During Oct 26 curation, R13 source was matched to its execution receipt by hash. Source, full receipts and tensors remain private; this summary is not a complete reproduction package. Upstream licenses were checked on the curation date, not as historical installed-version evidence. This is not a complete SBOM.
Evidence boundaryThis list is limited to checkable W41 tool use. ORNITH-1.5-9B is the base model source, separate from this tool list. A dependency’s presence is not execution evidence for this week.
Continue to the original weekly for daily context and failures; check the contemporary pinned public progress source。
Oct 9 | Two restarts from one save, one more step each
One save
Restart A
3,108,565numbers
181 state + 25 gradient records
Restart B
3,108,565numbers
181 state + 25 gradient records
Numbers that differ: 0
What we got done
Xiaomai is built on the open-source ORNITH-1.5-9B model. For now the 9B base stays frozen, and only 25 sets of research parameters in a separate research branch change. Two things were confirmed this week:
- A save reads back with every checked number unchanged. After the research parameters changed and were saved, a freshly started program read them back; about 2.96 million checked numbers matched bit for bit (the technical record gives the exact scope).
- Two restarts, identical next step. Restarting twice from the same save and computing one more step gave the same 3.1 million numbers, bit for bit (figure above). This compares that one step only, not text generation or new problems.
What I want to test later is whether a change Xiaomai keeps is still there after a restart and still useful on a new problem. If the save itself were unreliable, none of those tests would mean anything, so this week went into making the save solid. More basic operations, such as softmax, log and sigmoid, were also rewritten so every step can be seen. So far they have only been checked against the originals in small CPU tests.
What didn't work
On October 7, letting the model propose its own research method failed on a format error. I asked the real model to write a research method it wanted to try, along with the numbers it expected to see. It did write one, but its second prediction came out as "-1.0", in quotation marks. The system only accepts numbers, so the whole proposal was rejected and no method was kept.
model 2nd value in predictions: "-1.0" (quoted, so it became text)system ✕ rejected FINITE_NUMBERS_REQUIRED (predictions must be numbers)Even with the format fixed, whether this method runs or helps has not been checked. This attempt stays a failure under the rule set in advance; the rule will not be relaxed after the fact.
Also still stuck:
- Running with full tracing is too slow. The latest run hit its 3-hour limit and was stopped; the cause is not yet known.
- The five newly rewritten probability operations have not been fully checked on the real model; most of the 9B model is not yet rewritten into a visible form.
- Xiaomai's own rewritten text generation has not run on a GPU yet.
What's next
When experiments resume, three things come first:
- Find out why tracing is so slow.
- Check this week's new operations on the real model.
- Deal with the format problem (the parsing rule stays as is, and replies are not edited for the model), then let the model propose a method again. This time the question is whether it can keep the method and still use it after a restart.
Where Xiaomai stands
The four research steps from the home page and where each stands this week.
Start from unknowns. Examine how inquiry works.
Not yet tested
Not yet tested formally. Exploratory trials in early October; the formal experiment is still being designed.
Check explanations against actual computation.
Partly done
Some operations are traceable step by step on the CPU; full real-model tracing and links to explanations are untested.
Turn new understanding into a change that runs.
Attempt failed
This attempt failed: the model's proposed method was rejected for its format.
Select and reuse the change after a restart.
Not yet tested
Saving and restarting have been checked; choosing and reusing a method after a restart or on new problems is untested.
Technical recordFull figures, scope limits and the daily log, for researchers to check
Daily log
- R13Sigmoid and softplus backward passes tracedPassed
- R14Joined the traceable learning loopPassed
- R15Real model proposes a method: rejectedDid not pass
- R16Projection, convolution and more tracedPassed
- R17Research update, save and reload on frozen 9B featuresPartly passed
- R18–R19Probability operations and rsub rewrittenPassed
- R19-A100Two restarts, bit-identical next stepPassed
- Real-model runs paused, pause-point backup completeRecord
- October progress and positioning publishedRecord
- Documents revised, citations addedRecord
Completed this week
- Version: the formal save since October 9 is research weights revision 8, retaining the research-line name True 1.2, tagged on September 22; the two newer saves were not promoted. A version label does not establish full-state equivalence; version changes need a formal entry, a stated cold-restore verification scope and release notes. The lineage records are private and available for academic review. Per-file fingerprints are missing for September 23–24 and September 30–October 1, so the entire lineage has not been verified bit for bit. The version label does not establish that all original model weights or runtime state are unchanged.
- October 6–7: R13, R14 and R16 connected the backward passes of sigmoid, softplus, projection, grouped convolution, rsqrt and SiLU to the Python Tape and AdamW on the CPU, with tracing. These were CPU checks limited to specific operators and sizes.
- October 7: In R15 the real model generated method proposals on the A100. Both arms produced 144 tokens and stopped naturally with identical raw output and token IDs: two generation executions, but only one distinct proposal. The second prediction was the string
"-1.0"; the original parser rejected it withFINITE_NUMBERS_REQUIREDand no method was saved. - October 7: R17 completed a research update, Python Tape backward pass, AdamW update and save using features computed by the frozen 9B model on the GPU. Twenty-five research parameter tensors changed; fresh processes read back and checked both saved checkpoints.
- October 8: R18–R19 joined exp, log, softmax, log_softmax, logsumexp and rsub on the same Python Tape, with synthetic CPU numerical checks, tracing on/off checks and a second step after saving.
- October 9 (R19-A100): Two independent fresh processes each took the next research update from the designated checkpoint, with bit-identical results. The two new checkpoints were not automatically promoted to the formal entry. A full pause-point backup was made the same day.
- October 10–11: October progress, research positioning and source corrections were published (5ad2e49, cb12b77). Publishing documents does not count as a new model experiment.
Validation and figures
- R17 native versus trace-off: 207 numerical records and 3,108,566 values were within the preset tolerance; 81 records were not bit-identical. Each of two cold restores matched 181 research-state records and 2,960,497 values bit for bit. This excluded full CUDA RNG state and all lazily loaded base values, and this batch did not run the next update.
- R18–R19: Three synthetic initializations with 177 parameter elements were compared against native autograd with the same AdamW, with a maximum difference of about 1.2e-7. Tracing on and off matched bit for bit, as did the second step computed by six fresh processes after loading the save. All were synthetic CPU tests.
- R19-A100: The two fresh processes matched 206 records with dtype and shape (181 saved-state records and 25 fresh-gradient records), 3,108,565 scalar values in total, bit for bit. This covers this research update only, not arbitrary outputs, text generation or full 9B backward equivalence. R17's count of 207 includes one additional next-step loss scalar. R19-A100's bitwise count of 206 covers typed and shaped state and gradient records; loss was also compared separately and is outside that count. This counting difference does not establish identical state between the two batches.
- Public summaries exclude model weights, checkpoints and complete raw records, so the full workflow cannot be reproduced from the public repository alone. They can be made available for academic review or collaboration.
Failures and unfinished work
- R15: Both real-model arms stopped naturally and passed cost and execution-safety review, but saving, independent execution and new-task comparison of a valid method were not completed. Passing execution safety is not passing method capability.
- The full tracing on/off check is unfinished. The latest trace-on diagnostic reached its 10,800-second limit, received SIGINT then SIGTERM, and exited with -15. The cause of the long runtime is undetermined.
- Gradient and update equivalence of the five new probability operators on the real model's research parameters has not been checked.
- Python forward, backward and updates for the 9B base are unfinished. An inventory of 799 parameter tensors exists; an inventory is not execution.
- GPU checks for the new sqrt candidate, BF16 probability operations and full boundary coverage are pending. The corrected text-generation candidate passed CPU pre-checks; its GPU run has not started.
Author and AI contributions
郭俊逸 directs the research, integrates the project, decides scope and criteria, and authorizes execution. AI tools assist with implementation, document drafting and cross-checking sources; this update was also drafted with AI help; the author is responsible for the public account and research criteria. Upstream model and code provenance and licensing are described in contributions and sources. This assistance does not mean the Xiaomai model conducted the research autonomously.
Next steps
- First prepare real-gradient and update comparisons for the five new operators, sqrt and precision boundaries, then break down tracing runtime. Every new run will fix its source, checkpoint, budget and criteria in advance; the same failed version will not be rerun.
- After text generation passes on the real model, test the revised R15 through method execution, saving, restart and new-task comparison. Rewriting the full 9B model follows a separate staged path and is not a prerequisite for R15.
- This issue is an advance record before fundraising and does not mean the campaign has succeeded or rewards have begun. The NT$300 "Support Xiaomai" tier plans weekly public updates and one consolidated results edition each month during a six-month development period, plus a plain-language summary by email each month, six in total. The provisional schedule is development from February to July 2027 and closeout in August, conditional on a successful campaign and funds and compute being available by the end of January 2027.