Skip to content

fix(distill): retry label-file reads; ara-diac-tiny frozen snapshot - #29

Merged
ronaldtse merged 8 commits into
mainfrom
fix/ara-labels-resume
Aug 23, 2026
Merged

fix(distill): retry label-file reads; ara-diac-tiny frozen snapshot#29
ronaldtse merged 8 commits into
mainfrom
fix/ara-labels-resume

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

  • every ara-diac-tiny relaunch tore its resume-read of teacher_labels.jsonl to 3 visible lines (27,324 persisted and healthy when fetched cross-machine), so each ~40-min eviction cycle relaunched a full 11,790 relabel from zero — the run could never reach training
  • label-file reads (resume and Step-2) now retry 3x keeping the best parse; ara-diac-tiny points labels_file at a frozen labels_snapshot.jsonl uploaded from the verified-healthy local copy
  • follows PR fix(distill): train from in-memory labels; never re-read the just-written file #25 (in-memory training labels, regeneration on torn read)

Test plan

  • CI green
  • ara-diac-tiny logs 'resuming labels: ~10000 already done' and reaches training

Ronald Tse added 8 commits August 23, 2026 08:11
…pshot
Every relaunch's resume-read of teacher_labels.jsonl tore to 3 lines
(27,324 persisted), forcing a full relabel each ~40-min eviction cycle
— the run could never reach training. Reads now retry 3x keeping the
best parse, and ara-diac-tiny points labels_file at a frozen
labels_snapshot.jsonl uploaded from a verified-healthy local copy.
The volume snapshot tore on read exactly like the original file (3
visible srcs of 27,324, all three retries), and the retry loop's
early-break fired on the first non-empty parse. The verified-healthy
27,324-line snapshot now ships in the repo (6MB) and is read from the
image path — image files cannot tear. labels_file accepts absolute
in-image paths; the retry loop is best-of-3 without early break.
Probes settled it: the 69MB UTF-8 jsonl reads as 3 parseable srcs both
through the image COPY layer and modal volume put (double-encoded
bytes, 5.6M broken lines in the accumulated container-written file
too). Pure-ASCII transports are immune: the snapshot now ships
gz+base64 (~20MB) and is decoded to /tmp at run start; label appends
switch to ensure_ascii=True.
str.splitlines() fragments on U+0085/U+2028-class codepoints inside
Arabic label text, shredding healthy files into mid-JSON fragments —
the original '3 valid srcs' mystery. All label-file reads now split
on plain \n (verified locally: 11,793 srcs, 0 bad after the fix).
… GPU until labels are usable
The Step-2 label filter hard-rejected anything over 384 bytes — with
Arabic's 1450-byte windows that discarded essentially every label (8
of 11,793 survived). This, not volume replication, was the original
'2-6 valid pairs' disease. Cap is now 2x spec max_len. Regeneration
also ran after the teacher had been moved to CPU — the confirmation
step now precedes the free.
…ba commits
Both refs 404 (raw.githubusercontent) — the rababa commits are not on
any remote yet. Re-add once rababa is pushed; they cannot ride a
branch whose CI fetches them.
@ronaldtse
ronaldtse merged commit 38d517a into mainAug 23, 2026
10 checks passed
Sign up for freeto 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

@ronaldtse