XIAOMAI LABIndependent research, open to collaboration

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.

Research evidence through Oct 9Oct 26 visual supplement · no research rerun
AI-generated concept illustration: one amber save branches into two transparent computation modules for comparison, not actual hardware, model internals or execution.
Concept art · AI generated · Not actual hardware, model internals or execution

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.

01

Make an update traceable through its operations

Oct 6–7: R13, R14 and R16 connected bounded operations before observing research updates.

Bounded CPU evidence
01Bounded CPU operatorsR13 · R14 · R16
02PythonTapeRecord forward/backward dependencies
03Traceable gradientsSpecified operations and sizes
04AdamWConnect to the research update path
R13 / R14 / R16

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.

ORNITH-1.5-9B

Research parameters update; the 9B base stays frozen

25research parameter tensors changedR17
799parameter tensors inventoriedInventory is not execution

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.

02

Separate tolerance agreement from cold-restore equality

Oct 7: update comparison and save reload each have their own denominator and criterion.

Two distinct checks
R17 · UPDATE COMPARISON

Native vs. trace-off: within tolerance

207 records · 3,108,566 compared values

Swipe horizontally for the full chart, or open the data table.

Within tolerance does not mean bit identicalAll 207 comparison records were within preset tolerance; 81 were not bit identical. The axis starts at 0 and ends at 207 records.Records not bit identical810103.5207Records; denominator is this comparison batch only
All were within preset tolerance. The non-bit-identical distinction is retained, without converting it to a capability score.
R17 · COLD RELOAD

After saving: cold reload matched bit for bit

2saves cold-reloaded separately
181CPU state records per reload

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
R17
CheckRecords / valuesCriterion and result
Native vs. trace-off207 / 3,108,566Within preset tolerance; 81 records not bit identical
Each cold reload181 / 2,960,497Bit 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.

03

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.

Synthetic CPU data
013 synthetic initializations177 parameter elements
02PythonTape ↔ nativeSame AdamW comparator
03Save → fresh-process second step6 fresh processes matched bit for bit
R18–R19 · CPU SYNTHETIC

5 probability operations, plus reverse subtraction

exp · log · softmax · log_softmax · logsumexp

rsub · Reverse subtraction tested separately; not counted as a probability operation.

COMPARISON RESULTS

Maximum difference ≈ 1.2e-7

Approximation from the original weekly; trace on/off matched bit for bit.

6fresh-process second steps matched
Read the chart data
R18–R19 CPU synthetic
ItemValue / result
Initializations3
Parameter elements177
Approximate maximum difference1.2e-7
Fresh-process second steps6 · 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.

04

After a restart, can the same next step match?

Oct 9 R19-A100: start two independent fresh processes from the specified formal save.

One specified step matched bit for bit

Swipe horizontally for the full figure, or open the data table.

One save, two fresh processes, the same specified next updateResearch revision 8 branches to two fresh processes, each taking 1 update step and comparing 3108565 values. 181 state and 25 gradient records; 0 differing values.Oct 9 formal research saveResearch weights revision 8Fresh process A3,108,565181 state + 25 gradients = 206 recordsSame specified update × 1 stepFresh process B3,108,565181 state + 25 gradients = 206 recordsSame specified update × 1 stepDiffering values: 0Checked typed records matched bit for bit
Comparison drawn from that week’s data, not a raw test screenshot. The two new saves were not automatically promoted to the formal entry point.
Read the chart data
R19-A100
Compared itemPer fresh process
Post-update state records181
Fresh-gradient records25
Total typed records206
Scalar values3,108,565
Values differing between A / B0

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.

05

After consistent saving, six gates remain

R15’s method proposal failed at format. R19’s consistent continuation does not replace capability tests.

Failures and open gates retained
012 generations144 output tokens each
021 distinct proposalReplies and token IDs identical
03Format rejectedReceived string "-1.0"
040 methods savedExecution, utility and restart not tested

FINITE_NUMBERS_REQUIRED · Passing safety and cost checks is not passing method capability. Two identical generations are not two independent method proposals.

  1. 1Complete trace on / off

    Interrupted after 10,800 seconds, exit -15; cause unresolved.

    Next: locate the stalled operation before a full comparison.
  2. 2New probability operations on the real model

    Gradient and update equivalence remain unverified.

    Next: compare operations with fixed inputs and state.
  3. 3Complete 9B Python path

    Forward, backward and update remain unfinished.

    Next: expand bounded sections; inventory is not execution.
  4. 4GPU / BF16 boundaries

    New sqrt GPU and BF16 probability operations lack full acceptance.

    Next: test dtype, device and boundary cases separately.
  5. 5Corrected own text generation

    CPU precheck passed; GPU run had not started.

    Next: compare GPU generation under frozen conditions.
  6. 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.

06

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.

2 upstream repositories
01PyTorchNative comparison, typed tensors
02NumPyConvert tensors to bytes
03Save and compareExecuted R13 witness receipt

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

Drawn from the public October summary, not a raw test screenshot. Two fresh processes resumed the specified update; the checked 181 post-update state and 25 fresh-gradient records matched bit for bit. The 25 updated parameter tensors and gradients used CPU FP32; saved state also includes BF16. This checks one step, not complete model-state saving or matching other outputs and text generation. Source: October progress and its six boundaries

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)
Excerpt: the model's actual second prediction. This value is not yet in the public October summary; the original record is available for academic review.

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.

  1. 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.

  2. 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.

  3. Turn new understanding into a change that runs.

    Attempt failed

    This attempt failed: the model's proposed method was rejected for its format.

  4. 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

  1. R13Sigmoid and softplus backward passes tracedPassed
  2. R14Joined the traceable learning loopPassed
  3. R15Real model proposes a method: rejectedDid not pass
  4. R16Projection, convolution and more tracedPassed
  5. R17Research update, save and reload on frozen 9B featuresPartly passed
  6. R18–R19Probability operations and rsub rewrittenPassed
  7. R19-A100Two restarts, bit-identical next stepPassed
  8. Real-model runs paused, pause-point backup completeRecord
  9. October progress and positioning publishedRecord
  10. 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 with FINITE_NUMBERS_REQUIRED and 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.

Check the sources

All research updates