Whalswp commited on
Commit
f2d3cb9
·
verified ·
1 Parent(s): 66657e7

Document Kuavo checkpoint layout and pinned runtime

Browse files
50_demos/HF_WATCHER.md ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Kuavo 50 demos HF watcher
2
+
3
+ User contract: all four policies at 5k, 10k, 15k and 20k updates (16 checkpoints).
4
+ Repository: private `RwH-Lab/Kuavo_ckpt`, authenticated account `Whalswp`, org write permission verified.
5
+
6
+ | Local native directory (unchanged) | HF directory |
7
+ | --- | --- |
8
+ | `/home/work/mntvol/RwH-Kuavo_ckpt/50_demos/<policy>/checkpoints/005000/` | `50_demos/<policy>/checkpoints/checkpoint-5K/` |
9
+ | `.../010000/` | `.../checkpoint-10K/` |
10
+ | `.../015000/` | `.../checkpoint-15K/` |
11
+ | `.../020000/` | `.../checkpoint-20K/` |
12
+
13
+ Policies: `smolvla`, `multi_task_dit`, `pi05`, `gr00t`.
14
+ Each directory contains the original `pretrained_model/` files plus a SHA256 manifest,
15
+ README and provenance (step proof, effective config, data manifest, pinned model assets,
16
+ policy YAMLs, inference compatibility source, training contract).
17
+ SmolVLA and Pi0.5 are LoRA adapters requiring their pinned base model. DiT and GR00T contain full policy weights.
18
+ Optimizer, scheduler and RNG files stay on KT. They are neither deleted nor uploaded.
19
+
20
+ ## Save and integrity gates
21
+
22
+ 1. Pin the current production run and its four result paths in `hf_watcher.json`.
23
+ 2. Require a numeric native `last` symlink at or after the requested step. The native trainer updates this **after** saving model, processors and complete trainer state.
24
+ 3. Require exact `training_step.json`, state20/action23, global64, seed42, 20k total and save interval5k. Require all processor state files and correct full/adapter weight files.
25
+ 4. Require at least60 seconds since the last file write. Validate every saved model/processor tensor is finite, with CPU only and two threads.
26
+ 5. At20k additionally require the runner's final tensor and offline inference checks to pass for that exact checkpoint. No simulator or real-robot success is claimed.
27
+ 6. Record every source size/mtime and content hash; abort if source changes before/during upload. Never rename native checkpoint directories or update trainer links.
28
+ 7. Publish one checkpoint in a single atomic HF commit. Resume missing files; reject existing extra or conflicting remote files without overwriting or deleting them.
29
+ 8. Verify paths, file count, bytes and content (LFS SHA256 or Git blob SHA1) at the returned commit. Repeating an already matching upload creates no commit.
30
+ 9. After all16, audit all trees at one current HF revision. Only `missing=0, extra=0, mismatch=0` marks complete and exits.
31
+
32
+ ## Runtime and recovery
33
+
34
+ Start `bash launch_hf_watcher.sh` after the KT bootstrap. The verified tmux session is
35
+ `rwh-50demos-hf-watcher`; the CPU process has an exclusive flock and polls every120 seconds.
36
+ Transient per-checkpoint errors back off up to30 minutes; another checkpoint can proceed.
37
+ The supervisor restarts a failed process after120 seconds; verified state survives restarts.
38
+ Do not run two independent uploaders. The watcher stops after the16-tree final audit passes.
39
+
40
+ Operational state: `/home/work/mntvol/RwH-Kuavo_ckpt/50_demos/_hf_upload/status.json`.
41
+ Logs: the same directory's `watcher.log`; small provenance/manifests: `payloads/`.
42
+ These are production upload evidence, not smoke/test outputs. No large model staging copies are made.
43
+ Stopping the watcher does not stop or modify training. A reclaimed KT container requires re-entering its new session and restarting this launcher against persistent files.
44
+
45
+ Read-only remote re-audit after completion: invoke `hf_watcher.py --config hf_watcher.json --once --audit-remote` under the same bootstrap. While the daemon holds its lock, inspect its state or pause/restart the watcher before running that command; do not touch training processes.
46
+
47
+ ## Verification performed
48
+
49
+ 12 CPU lifecycle regression tests cover all16 checkpoints, restart/idempotency, missing completion marker, earlier marker, stability delay, wrong step, final-runner gate, missing processor state, NaN tensors, changed source, extra remote files and same-size corrupt remote weights.
50
+ All test fixture directories use `TemporaryDirectory` and are removed immediately.
51
+ An actual SmolVLA5k production upload passed19-file path/size/hash comparison. Repeating it passed with no additional commit. Production checkpoints are retained; no HF test prefix/repository was created.
50_demos/runtime_versions.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "torch": "2.9.1",
3
+ "torchvision": "0.24.1",
4
+ "transformers": "5.3.0",
5
+ "peft": "0.20.0",
6
+ "accelerate": "1.14.0",
7
+ "diffusers": "0.35.1",
8
+ "draccus": "0.10.0",
9
+ "av": "15.1.0",
10
+ "torchcodec": "0.8.0",
11
+ "numpy": "2.2.6",
12
+ "num2words": "0.5.14",
13
+ "huggingface-hub": "1.28.0",
14
+ "safetensors": "0.8.0",
15
+ "code_commits": {
16
+ "LeTools": "6d2002613241ae2a32c5d8fd753f80caa1383fba",
17
+ "LeRobot": "a07f22e22ce88cddff1f6eddced9ea008fbfc37c"
18
+ },
19
+ "python": "3.12.13"
20
+ }
README.md ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - robotics
4
+ - kuavo
5
+ - imitation-learning
6
+ ---
7
+
8
+ # RwH Kuavo checkpoints
9
+
10
+ Kuavo 5W policies trained on the private RwH-Lab/kuavo-dataset-skill dataset.
11
+ This repository receives saved checkpoints as training progresses; the presence
12
+ of an early checkpoint does not imply the full 20k run has finished.
13
+
14
+ ## 50 demos
15
+
16
+ Four policies: SmolVLA (`smolvla`), MultiTask-DiT (`multi_task_dit`),
17
+ Pi0.5 (`pi05`), GR00T N1.5 (`gr00t`). Each policy publishes four checkpoints:
18
+
19
+ ```text
20
+ 50_demos/<policy>/checkpoints/
21
+ checkpoint-5K/
22
+ checkpoint-10K/
23
+ checkpoint-15K/
24
+ checkpoint-20K/
25
+ ```
26
+
27
+ Every published directory contains `pretrained_model/`, `checkpoint_manifest.json`,
28
+ a loading note and provenance. Manifests record the source step and each payload
29
+ file's size and SHA256. Publishing verifies remote paths and content hashes.
30
+ Optimizer/scheduler/RNG state is retained on the training server.
31
+
32
+ SmolVLA and Pi0.5 are **LoRA adapters**, not standalone base weights. Their original
33
+ HF base model IDs and pinned revisions are recorded in provenance/model_assets.json.
34
+ GR00T and DiT contain full policy weights. Original upstream access requirements apply.
35
+
36
+ Training contract: 50 original episodes, 7 tasks, 30→10Hz, current state20D,
37
+ action23D (future actual torso position4D, recorded arm/gripper commands16D,
38
+ recorded base velocity commands3D), global batch64 per policy, seed42,
39
+ 20k updates, no validation split. Samples do not cross task boundaries.
40
+
41
+ Use both saved processors and their normalization statistics when loading a checkpoint.
42
+ GR00T needs the included compatibility patch to preserve per-sample task text;
43
+ GR00T and DiT need aspect-preserving224×224 letterbox preprocessing. Follow each
44
+ checkpoint's provenance/CONTRACT.md and compat.py. Use runtime_versions.json to
45
+ identify the exact LeTools/LeRobot commits and package versions.
46
+
47
+ No simulator or real-robot task success is claimed by offline training checks.
48
+ See [watcher design](50_demos/HF_WATCHER.md) for save-completion and integrity gates.