v0.1.2 — Progress visibility and heartbeats
Status: superseded by v0.1.3.
Version source: historical pyproject.toml state (version = "0.1.2").
What changed
Non-architectural ergonomics continuing the v0.1.1 observability thread. The motivating rule: any pipeline step that may run silently for more than about a minute needs a visible progress signal.
Heartbeatcontext manager. Added a daemon-thread helper that prints elapsed-time keep-alive messages viatqdm.writeevery 60 seconds, with an optionalstatus=callback for loop progress.- Dataset construction visibility.
PretrainDataset,SFTDataset, andDPODatasetwrap per-conversation tokenisation loops intqdm(..., mininterval=1.0). - Upsampling visibility. Weighted expansion is
tqdm-wrapped, andrandom.shuffle(train_texts)runs underHeartbeat. - Tokenizer and dataset pre-flight visibility. Corpus byte-size summing and
load_dataset_builder(...)metadata probes now show progress instead of silent loops. - Training loop visibility. Pretrain, SFT, and DPO loops use
tqdm(..., mininterval=1.0, miniters=1), first-batch timing, slow-batch logs, and an outerHeartbeatshowing batch / loss status. - Blocking setup and IO visibility.
copy.deepcopy(model),torch.save,torch.load, and redundant checkpoint copies are covered byHeartbeatortqdm. - Generation visibility.
generate()gained a token progress bar and aprogress=kwarg.
Documentation
README.mdwas rewritten with a concise project blurb and path map.docs/index.mdgained a progress-visibility note and removed the stale requirements drift known gap closed by v0.1.1.- The old 70B reference text was corrected to 32B to match
PRODUCTION_32B_CFG.