Skip to content

0.3.3a0: block-order loop, sigmoid step size, general 32k tokenizer, task-neutral kernel - #56

Merged
FonaTech merged 1 commit into
devfrom
loop-block-0.3.3a0
Nov 11, 2026
Merged

FonaTech merged 1 commit into
devfrom
loop-block-0.3.3a0

Conversation

@FonaTech

Copy link
Copy Markdown
Owner

0.3.3a0

Release candidate for the 0.3.3a0 pre-release. The full text is in CHANGELOG.md under [0.3.3a0].

Loop kernel (Torch and MLX). recurrent_order="block", recurrent_later_topk, recurrent_later_groups, lambda_iteration_cluster, lookahead_teacher_scope, recurrent_dt_param="sigmoid" and recommended_dt_init(depth) = min(0.5, 2 / depth). Kernel defaults are unchanged, so existing configs and checkpoints behave as in 0.3.2a3. The planner now recommends block order, sigmoid and the horizon init for a looped plan, and ui/presets_v3.json is regenerated.

Physical mechanism. A shared block applied repeatedly adds nearly parallel vectors, so contributions add constructively (consecutive-call output cosine 0.92 to 0.985 at depth 8). Each iteration multiplies the residual by g = 1 + dt * lambda_eff with lambda_eff learned; depth R raises it to the power R - 1. dt alone is a gauge: g stayed 1.067-1.075 for dt 0.15-0.5 at depth 8 because the block rescales its output. A fixed horizon T = depth * dt = 2 replaces the cubic depth rule, which the depth-8 run refuted.

Fixes. The MLX gradient on dt_min and dt_max now equals Torch's clamp. MLX depth jitter is drawn once per optimizer step under gradient accumulation.

Auto-tune and Web UI. The probe trains on real dataset tokens; recurrent_order and recurrent_dt_init join the search space; new fields and four-language help.

Tokenizer and kernel neutrality. general_32k (32,768 tokens, task-neutral control ids, corpus licences in NOTICE) ships and is the planner default for new plans. The control-token relabel changed its fingerprint (169668b1… to 6d4b3b52…); the old value is kept under derived_from. Kernel text no longer names a translation task, and the translation sections moved to demos/translation.

Verified. Full suite 732 passed, 4 skipped (three need playwright, one needs the v2 reference checkpoint); three further runs under nice -n 19 also passed. ruff check . is clean (local 0.15.11; CI pins 0.17.4, not yet run locally).

Open, and stated in the CHANGELOG.

  • All loop measurements are one seed per arm at 15M parameters; the planner's recommendations are extrapolated to every size it plans.
  • Lazy serving of a block-order checkpoint is unmeasured.
  • The recurrent_later_groups=2 regression is explained only in part: the clamp collapsing the two active layers' dt accounts for most of it, but the sigmoid arm still trails the full block by 0.013-0.055.
  • The 4-6% step-time overhead of the new kernel is not attributed.
  • One run of the full suite failed once in test_worker_probes_checkpoint_after_validation_and_monitor_shows_it (preexec_fn error spawning the probe subprocess) and passed in 6 later runs and 450 isolated spawns; the cause is not found.

🤖 Generated with Claude Code

…task-neutral kernel

Loop (Torch and MLX): recurrent_order "block", recurrent_later_topk, recurrent_later_groups,
lambda_iteration_cluster, lookahead_teacher_scope, recurrent_dt_param "sigmoid", and
recommended_dt_init(depth) = min(0.5, 2 / depth) (fixed integration horizon T = depth * dt).
Kernel defaults are unchanged. The planner now recommends block order, sigmoid and the horizon
init for a looped plan; presets_v3.json is regenerated.

Fixes: the MLX clip gradient on dt_min/dt_max is now the Torch clamp gradient; the MLX depth
jitter is drawn once per optimizer step under gradient accumulation.

Auto-tune: the probe trains on real dataset tokens, and recurrent_order and recurrent_dt_init
join the search space. Web UI: new fields and four-language help.

Tokenizer: chronos/assets/tokenizers/general_32k (32768 tokens, task-neutral control ids,
licences in NOTICE) is the planner default for new plans.

Kernel text no longer names a translation task; the translation sections moved to
demos/translation. CHANGELOG records the physical mechanism, the measurements (one seed per
arm, 15M parameters) and the known limits.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@FonaTech
FonaTech merged commit 206a4a7 into dev Nov 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant