Commit History

mini-beatrix-3 is the default: its mission is complete (64.4B bytes, 245,674 steps) and its closing anneal taught the conversation frame, so the Space opens on its final checkpoint, which chats on its own. Crafts are listed newest first (3, 2s, 1); if the default fails to load, the next one serves. Fixes: the checkpoints after step 148,000, where the run detached its stage arms, were labelled 'before the stage arms'; they now read 'core alone (arms detached)', the panel says where the arms are, and the craft title reads '4 stage arms to step 148,000'. Step 148,000, the last checkpoint with all four arms, is now listed: it is no stage close, so the arithmetic arm sat on no listed checkpoint. The pre-chat warning shows only on the checkpoint saved just before the chat anneal, not on every earlier one. The descriptions say the mission is complete and link the mini-beatrix-3 package. Pins unchanged.
1fc6721
Running
verified

AbstractPhil commited on

ready for the arm-file conversion: amoe-lora pinned to 0.2.6 (5c934cf), whose load_anchor reads a block anchor in either format by content, so the mission's arm files may become real safetensors files at any time and this Space keeps serving them. Provenance is read per format: a real safetensors anchor through load_anchor, every other arm file (anchor, dispatch, relay-EMA, recurrent torch archives) as a torch archive. Tested on torch 2.13 with 0.2.6: the v3 arm gives bit-identical outputs from either format, a program with one member of each format mounts, and the 2s anchor, stack, routed, relay_ema and recurrent rows mount, write and detach bit-exact. Previous commit: fix: mini-beatrix-3's stage arm was downloaded at boot but never mounted. torch 2.13 (what this Space installs) reads any PATH ending in .safetensors as a safetensors file, and the mission's arm files are torch archives under that name, so reading their metadata failed and the provenance check refused the arm without a word. Every arm file is now read by content through an open handle (all six mount types retested on torch 2.13: the v3 program, and the 2s anchor, stack, routed, relay_ema and recurrent rows mount, write and detach bit-exact), a refused arm now says why in the log, and every arm file fetched and every mount is logged. Previous commit: mini-beatrix-3's stage arms: the arms the mission trains WITH the core ship beside every checkpoint, and the Space now serves each checkpoint's arms together as one program (arm_mount 'program': nested in stage order as the trainer attached them, all on by default, each switchable exactly; 'only' and 'without' rows appear once there are two). v3 decodes in fp32 in every row: measured on the 4090, bf16 changed greedy text between arm on and off where the arm's true effect is ~1e-9 nats/byte, fp32 did not (and fp32 is not slower here). After each run the stats line reads each live arm's activity on that text (KL of arm-off vs the program, fp32). Stage prompts in Completion, shown only for a program. Pins unchanged: the pinned model code is bit-identical to the mission's on the step-94,000 core, bare, armed, masked, detached and cached
0665cc0
verified

AbstractPhil commited on

fix: mini-beatrix-3's stage arm was downloaded at boot but never mounted. torch 2.13 (what this Space installs) reads any PATH ending in .safetensors as a safetensors file, and the mission's arm files are torch archives under that name, so reading their metadata failed and the provenance check refused the arm without a word. Every arm file is now read by content through an open handle (all six mount types retested on torch 2.13: the v3 program, and the 2s anchor, stack, routed, relay_ema and recurrent rows mount, write and detach bit-exact), a refused arm now says why in the log, and every arm file fetched and every mount is logged. Previous commit: mini-beatrix-3's stage arms: the arms the mission trains WITH the core ship beside every checkpoint, and the Space now serves each checkpoint's arms together as one program (arm_mount 'program': nested in stage order as the trainer attached them, all on by default, each switchable exactly; 'only' and 'without' rows appear once there are two). v3 decodes in fp32 in every row: measured on the 4090, bf16 changed greedy text between arm on and off where the arm's true effect is ~1e-9 nats/byte, fp32 did not (and fp32 is not slower here). After each run the stats line reads each live arm's activity on that text (KL of arm-off vs the program, fp32). Stage prompts in Completion, shown only for a program. Pins unchanged: the pinned model code is bit-identical to the mission's on the step-94,000 core, bare, armed, masked, detached and cached
83bddd9
verified

AbstractPhil commited on

mini-beatrix-3's stage arms: the arms the mission trains WITH the core ship beside every checkpoint, and the Space now serves each checkpoint's arms together as one program (arm_mount 'program': nested in stage order as the trainer attached them, all on by default, each switchable exactly; 'only' and 'without' rows appear once there are two). v3 decodes in fp32 in every row: measured on the 4090, bf16 changed greedy text between arm on and off where the arm's true effect is ~1e-9 nats/byte, fp32 did not (and fp32 is not slower here). After each run the stats line reads each live arm's activity on that text (KL of arm-off vs the program, fp32). Stage prompts in Completion, shown only for a program. Pins unchanged: the pinned model code is bit-identical to the mission's on the step-94,000 core, bare, armed, masked, detached and cached
8f2876d
verified

AbstractPhil commited on

Update README.md
fbbb7af
verified

AbstractPhil commited on

serve mini-beatrix-3, the mission running now (376M, 32 blocks, mid-pretraining: no conversation frame, no arms, Completion is the honest view). The craft was being skipped at boot because its manifest carries a fusion key this build’s AlephLMConfig does not know - a trainer newer than the pinned geolip - so model_config is now filtered to the fields this build understands, with the dropped ones named in the boot log
c39bec6
verified

AbstractPhil commited on

mini-beatrix-3 attaches to the GPU on first use instead of at import. Measured: three crafts packed at import never left APP_STARTING (40 min fp32, 15+ bf16) while two come up in 60s, and a build whose third craft raised BEFORE the GPU move - checkpoint already fetched and read - booted normally, so the limit is packing a third model, not the bytes. Served bf16, its checkpoints dtype
1f3bd74
verified

AbstractPhil commited on

mini-beatrix-3 served in bfloat16: built fp32 and cast, because the orthogonal init calls QR and there is no bfloat16 CPU kernel for it (measured on a 4090, which also says bf16 halves peak VRAM 1.60 -> 0.80 GB at the same 6 bytes/s, and changes greedy output on some prompts where the top two bytes are near-tied - the panel says so)
b1bc58e
verified

AbstractPhil commited on

serve mini-beatrix-3, the mission running now: 376M over 32 blocks, mid-pretraining, so no conversation frame and no arms and Completion is the honest view. Held in bfloat16, the dtype its checkpoints are saved in and built straight into it: the first attempt held all three crafts in fp32 and the replica never left APP_STARTING
5ccb8de
verified

AbstractPhil commited on

revert to the two-craft build: adding mini-beatrix-3 as a third import-time craft kept the replica in APP_STARTING and never took over from the running one. The v3 hookup returns with a smaller boot footprint
1261e24
verified

AbstractPhil commited on

serve mini-beatrix-3, the mission running now: 376M over 32 blocks, mid-pretraining with the curriculum and both anneals still ahead, so no conversation frame and no arms — Completion is the honest view and the status panel says so from the manifest. Checkpoints and progress are whatever the run had shipped when the Space last started, now stated with the manifest's own timestamp
c83e3bd
verified

AbstractPhil commited on

erratum on the staged chain arm: .867 was the loaded arm read BEFORE the staged stage (ledger pre_train_chain_read), not this arm solo; alone it reads .833, in the pair .853
f5eef78
verified

AbstractPhil commited on

catalog up to date (73 rows): the two minted-lexicon rule arms, the staged co-training pair and its stack, all certified after the 2026-09-16 build; rows that also ship in the packaged model AbstractPhil/mini-beatrix-2.5s are marked with a box, and the About text and card say how to take those thirteen home
a7c5399
verified

AbstractPhil commited on

serve the full 2s arm library (single, stacked, routed, gain, memory and recurrent arms) with the best-measured arm as default; text-frame arms get their own frame on the specials craft
9f4bf83
verified

AbstractPhil commited on

Stop button on both generating tabs: cancels the run in flight (chat submit, Send, Complete) while KEEPING the bytes already streamed — Clear remains the one that also wipes the transcript. Each callers finally: still logs the turn as completed=False, so a halted reply is recorded as halted
de15adb
verified

AbstractPhil commited on

tell the two final 2s cores apart: the mission ends in a before/after pair across the chat anneal (57,607 continues documents, 61,422 answers), but frame_trained was a CRAFT flag so the pre-chat core claimed a conversation frame it never saw. Chat capability is now per CHECKPOINT, derived from the manifest by counting back from the total (the boundary lands exactly on 57,607); both are labelled in the dropdown, the pre-chat baseline is always offered, and the chat-taught core stays the default
17763f8
verified

AbstractPhil commited on

max new bytes 512 -> 2048: the window, not an arbitrary cap, is now the limit (a short prompt on 2s gets the full 2048; v1 gets the rest of its 2048 window). The reply reserve in _room used to be capped at 256, so a long paste silently shrank a big request — it now tracks the ask up to half the window, and any context-forced shortfall is stated in the stats line
a425a82
verified

AbstractPhil commited on

byte-level repetition penalty: damps only what would CONTINUE a repeated 8-byte phrase in the reply window (a CTRL-style per-id penalty taxes ordinary English on a 256-value vocabulary); slider defaults 1.15, 1.0 = off, disclosed in the stats line
e337def
verified

AbstractPhil commited on

Clear now cancels the in-flight stream and starts a new conversation (ClearButton only wiped the display, so a streaming reply repainted the cleared history; the log keyed on session alone, running pre- and post-clear turns together); uncached generation RESPECTS the byte count — the silent max_new->96 clamp is replaced by a 95s budget that reports its shortfall
1e70419
verified

AbstractPhil commited on

default to mini-beatrix-2s (mission complete): its anneal taught the conversation frame, so the core chats with no arm — description rewritten (the still-pretraining caveat was stale prose; the code-side caveats had already self-suppressed on frame_trained), no-arms line now says none is needed; v1 stays one click away as the detach exhibit
5943e12
verified

AbstractPhil commited on

seed the decode sliders from the default arm (poly asks for greedy)
55ce365
verified

AbstractPhil commited on

v1 default arm -> day1/poly (single-turn Q&A, greedy on attach)
335d35d
verified

AbstractPhil commited on

v1 default -> step 88,508 + stopnl-s1600; Send button on the chat box; turn-end arms get their own status line
f6c1416
verified

AbstractPhil commited on

serve both crafts: mini-beatrix-2s (full splat, specials format) beside mini-beatrix-1 (arm library); geolip pin -> 0.8.1
43883b1
verified

AbstractPhil commited on

compact the status panel (228px -> ~2-3 lines): it sits above the tabs in a non-scrolling iframe, so every line pushed the controls further out of reach; all warnings and disclosures kept
92c2954
verified

AbstractPhil commited on

fix embedded scrolling: the Spaces iframe is scrolling=no and sized to reported height, so a tall page pushes tabs/controls out of reach when the resize lags — description + automation moved into closed accordions, 1-row textbox was flex-stretched to 373px (pinned), chatbot 420->360, and a DOM observer keeps the parent height in sync
d70f5ac
verified

AbstractPhil commited on

automate what an arm needs, toggle what is taste: decode follows the arm (task arms greedy — measured off-distribution punctuation collapse under sampling), examples come from the arm own training frames, empty replies explain themselves; toggles for auto-decode, family examples, and an off-by-default degenerate-run cut
2d0bbc5
verified

AbstractPhil commited on

fix: arm dropdown allow_custom_value — gradio validated submitted values against BOOT-TIME choices, so any arm from a non-default checkpoint was rejected server-side; this app validates paths itself (unknown/cross-core -> core-only)
6f5892c
verified

AbstractPhil commited on

per-arm TEMPLATE honored: an arm template IS its tokenizer on a byte-native model — chat transcript vs single-turn QA vs raw, and the turn-end bytes it was trained with (newline-pair arms were never being stopped; the refuted NUL arm is labeled)
26604c3
verified

AbstractPhil commited on

arm picker: every arm trained on the selected core is selectable and swappable (29 arms, index-driven); NO chat-arm default on checkpoints that have none; per-anchor adapter geometry (n_slots 16/32) read from tensors instead of assumed — a wide arm as boot template used to crash attach
c11e02b
verified

AbstractPhil commited on

checkpoint selection: dropdown of the newest shipped checkpoints (step, bytes, val bpb, arm availability), any of them runnable WITH or WITHOUT the arm. One model is built and ZeroGPU-packed at import; switching copies new values into those same tensors (no second model, no lazy .to(cuda)) and re-verifies anchor provenance on every arm switch — an arm is never attached to a core it was not trained on. Default stays the pre-anneal exhibit pair (51,882) where core-only still shows an unconditioned model; post-anneal checkpoints carry an honest note that their bare core already chats. Verified locally: 51882+arm chats, 51882 core-only gives base continuation, armless checkpoints fall back to core-only cleanly
2946dd9
verified

AbstractPhil commited on

Update app.py
bc1c4ce
verified

AbstractPhil commited on

Update app.py
570437f
verified

AbstractPhil commited on

stop gradio orphaning event loops (the Invalid file descriptor tracebacks): safe_get_lock/safe_get_stop_event build a throwaway loop per call just to construct a Lock/Event — measured 9 loops, 7 orphaned per boot on 6.23.1; each orphan raises ValueError -1 in BaseEventLoop.__del__ when its socketpair is freed first. Lock()/Event() bind lazily on py3.10+, so the factories are replaced with plain constructors across every module that binds the names. This REMOVES loop creation: no loop, thread, process or coroutine is created. Measured after: 1 loop, 0 orphans, boot log clean
7dcfe83
verified

AbstractPhil commited on

pin gradio 6.23.1: the un-awaited get_current_user coroutine is a 6.24.0 regression (measured — a hello-world app emits it on 6.24.0 and never on 6.23.1 or 5.50.0). 6.23.1 needs no code change since the Chatbot API matches; verified locally end to end: clean boot, 0 warnings, arm and core modes both answering
05c515b
verified

AbstractPhil commited on

remove the fork-unsafe lock + fix the /data probe. spaces runs @spaces.GPU bodies in a multiprocessing ForkProcess (verified in spaces/zero/wrappers.py), so the threading.Lock I held across yields was both useless (child has private memory) and hazardous (a lock held by any parent thread at fork time is inherited locked with no owner -> child blocks forever). Removed: zero threads, zero locks, zero asyncio, zero coroutines. Also: never mkdir /data itself (non-root -> PermissionError that reads like failure); only probe the mount and create the subdirectory
1d24229
verified

AbstractPhil commited on

Beatrix chat: locked mini-beatrix-1 core + provenance-matched chat arm, bit-exact arm/core switch, KV-cached decode, /data bucket logging (canonical ZeroGPU shape, no framework patching)
6a4253e
verified

AbstractPhil commited on

Beatrix chat: locked mini-beatrix-1 core + provenance-matched chat arm, bit-exact arm/core switch, KV-cached decode, /data bucket logging (canonical ZeroGPU shape, no framework patching)
ef359f0
verified

AbstractPhil commited on

Beatrix chat: locked mini-beatrix-1 core + provenance-matched chat arm, bit-exact arm/core switch, KV-cached decode, /data bucket logging (canonical ZeroGPU shape, no framework patching)
9fd0ec0
verified

AbstractPhil commited on

initial commit
938b3de
verified

AbstractPhil commited on