diff --git a/openspec/changes/ts-as-modality/.comet/handoff/build-checkpoint.json b/openspec/changes/ts-as-modality/.comet/handoff/build-checkpoint.json index 177f9c2..146dc0a 100644 --- a/openspec/changes/ts-as-modality/.comet/handoff/build-checkpoint.json +++ b/openspec/changes/ts-as-modality/.comet/handoff/build-checkpoint.json @@ -1,21 +1,26 @@ { "change": "ts-as-modality", "phase": "build", - "checkpoint": "M2-complete", + "checkpoint": "M2-complete + M3-code-complete", "date": "2026-06-30", - "status": "in-progress", - "milestone": "M2 (model) complete; proceeding to M3 (training)", - "summary": "M2 done: TS Encoder + Projector + Multimodal splice + Wrapper (end-to-end, LoRA) + Collator. 91 tests passing. Stage ① fwd+bwd peak 2.34 GB (<5GB budget). Qwen2.5-0.5B-Instruct downloaded via socks proxy 10.66.66.4:1080 to ~/models/.", - "next_action": "T3.1 losses.py (lm_loss + contrastive_loss), T3.2 stage1 training script + smoke.", + "status": "paused-awaiting-user-decision", + "summary": "All M2 + M3 code written and smoke-verified. 100 tests passing. Remaining work (T3.3 onward) requires multi-hour GPU training of stage 1 (500k align samples), then M4 SFT (100k), then M5 eval.", + "next_action": "T3.3 TS-token effectiveness check — REQUIRES a trained stage 1 checkpoint (compute-heavy).", + "blocker": { + "reason": "T3.3+ need actual model training, not just code. Stage 1 design = 500k align.jsonl samples, ~10k steps. At ~3-5 it/s on RTX 3060 this is hours. Then M4 stage 2 (LoRA SFT, similar scale), then M5 full eval pipeline.", + "decision_pending": "User must decide training scope: (A) full design-scale training (generate 500k+100k data, train to completion, hours of GPU); (B) reduced-scale training (e.g. 50k samples, 2k steps — enough to produce a checkpoint and validate T3.3 effectiveness signal, defers full-quality); (C) write the remaining M4/M5 CODE now (stage2.py, eval modules) and smoke-verify, defer ALL training to user; (D) pause build.", + "recommendation": "C then B — finish all remaining code + smoke first (so everything is wired and verified), then do a reduced-scale stage1+stage2 training run to validate the end-to-end effectiveness signal, leaving full-scale training as a later user-initiated run." + }, "environment": { "venv": ".venv (CUDA torch 2.5.1+cu121, transformers 5.12.1, peft 0.19.1)", "llm": "/home/zhangzp/models/Qwen2.5-0.5B-Instruct (hidden=896, 494M, bf16)", - "gpu": "RTX 3060 12GB (freed: killed vLLM + ts-abnormal procs)", - "proxy": "socks5h://10.66.66.4:1080 (for any further HF downloads)" + "gpu": "RTX 3060 12GB (~11.6 GB free)", + "proxy": "socks5h://10.66.66.4:1080" }, "resume_instructions": { - "find_next_task": "grep -n '\\- \\[ \\]' openspec/changes/ts-as-modality/tasks.md | head -1 (expect T3.1)", + "find_next_task": "grep -n '\\- \\[ \\]' openspec/changes/ts-as-modality/tasks.md | head -1 (expect T3.3)", "venv": ".venv/bin/python", + "pythonpath": "export PYTHONPATH=src (needed for scripts; tests use pyproject pythonpath)", "branch": "feature/20260629/ts-as-modality", "build_mode": "executing-plans", "tdd_mode": "tdd", @@ -23,15 +28,8 @@ "isolation": "branch" }, "completed_milestones": ["M1", "M2"], - "completed_tasks": ["1.1-1.7", "2.1-2.6"], - "test_count": 91, - "spec_clarifications_recorded": [ - "n_patches = (T-P)//S+1 = 127 (design said 128)", - "channel-independent = shared per-channel patch embed + mean-pool → C-free output", - "encoder params ≈2.1M (design said ~4M)", - "multimodal splice appends answer+EOS for training", - "wrapper batch contract = {series, attributes, timestamps, events, question, answer}", - "encoder/projector fp32, output cast to LLM dtype (bf16)", - "build embedding layer with len(tokenizer) not vocab_size (special tokens)" - ] + "completed_tasks": ["1.1-1.7", "2.1-2.6", "3.1", "3.2"], + "test_count": 100, + "remaining_code_tasks": ["T4.1 stage2.py", "T5.1 parse_answer.py", "T5.2 ts_metrics.py", "T5.3 qa_judge.py", "T5.4 baselines.py", "T5.5 run_eval.sh"], + "remaining_compute_tasks": ["T3.3 effectiveness check (needs trained ckpt)", "T3.4 M3 exit", "T4.2 SFT instruction-following check", "M4 exit", "M5 exit"] }