ar-mine commited on
Commit
a37cbbf
·
verified ·
1 Parent(s): 91ddf7c

Add files using upload-large-folder tool

Browse files
DATA_SETUP.md CHANGED
@@ -6,7 +6,7 @@
6
  `robometer/processed_datasets` repository; it is not an upstream release name.
7
  The official trajectory `.npz` files are deliberately not duplicated here.
8
 
9
- This private repository stores only assets that the official download cannot
10
  recreate by itself:
11
 
12
  - the frozen 2,689-row Phase 2.1A pair manifest;
 
6
  `robometer/processed_datasets` repository; it is not an upstream release name.
7
  The official trajectory `.npz` files are deliberately not duplicated here.
8
 
9
+ This repository stores assets that the official download cannot
10
  recreate by itself:
11
 
12
  - the frozen 2,689-row Phase 2.1A pair manifest;
OFFLINE_UV_DEPLOYMENT.md ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Phase 2.1A 纯 uv 离线部署
2
+
3
+ 本仓库提供不依赖 Conda、也不要求训练服务器访问 PyPI/PyTorch index 的离线环境包。
4
+
5
+ ## 已发布环境包
6
+
7
+ | 项目 | 值 |
8
+ |---|---|
9
+ | 文件 | `offline_env/phase21a-uv-linux-x86_64-cu128-20260828.tar.zst` |
10
+ | 大小 | 3,940,678,637 bytes(约 3.67 GiB) |
11
+ | SHA256 | `070f52ae3e778128508f12d6eecdba1dddfc37e613dd0be25cca1ce9e38c37a4` |
12
+ | 平台 | Linux x86_64 |
13
+ | uv / Python | uv 0.11.3 / CPython 3.10.12 |
14
+ | PyTorch | 2.8.0+cu128 |
15
+ | FlashAttention | 2.8.3.post1,本机预构建 wheel 已进入 cache |
16
+
17
+ 归档包含 uv 可执行文件、uv-managed Python、项目专用 uv cache、`pyproject.toml`、
18
+ `uv.lock`、环境 doctor、manifest 和离线安装脚本。它不包含 Conda,也不包含从当前
19
+ 机器复制的 `.venv`。
20
+
21
+ 构建验证包括:在全新空目录中使用 `--offline --no-python-downloads --frozen` 安装
22
+ 50 个包、`uv pip check`、关键包 CPU import,以及第二次 frozen dry-run 无变更。
23
+
24
+ ## 在有网络的机器下载
25
+
26
+ 训练服务器网络受限时,不要在服务器上执行以下下载;应在能访问 Hugging Face 的机器
27
+ 下载后,通过云平台文件上传或对象存储传入服务器。
28
+
29
+ ```bash
30
+ hf download ar-mine/cosmos-robometer-private-code \
31
+ offline_env/phase21a-uv-linux-x86_64-cu128-20260828.tar.zst \
32
+ offline_env/SHA256SUMS \
33
+ --local-dir /path/to/phase21a-transfer
34
+
35
+ cd /path/to/phase21a-transfer/offline_env
36
+ sha256sum --check SHA256SUMS
37
+ ```
38
+
39
+ 代码本体也应在有网络的机器下载,并固定到经过验证的 commit:
40
+
41
+ ```bash
42
+ hf download ar-mine/cosmos-robometer-private-code \
43
+ --revision <PINNED_KIT_COMMIT> \
44
+ --exclude 'offline_env/*.tar.zst' \
45
+ --local-dir /path/to/cosmos-robometer-private-code
46
+ ```
47
+
48
+ ## 在无网络服务器安装
49
+
50
+ ```bash
51
+ mkdir -p /srv/phase21a-offline
52
+ tar --zstd -xf phase21a-uv-linux-x86_64-cu128-20260828.tar.zst \
53
+ -C /srv/phase21a-offline
54
+
55
+ /srv/phase21a-offline/phase21a_uv_linux_x86_64/install_offline.sh \
56
+ /srv/cosmos-robometer-private-code
57
+ ```
58
+
59
+ 安装脚本只使用归档中的 Python 与 cache,目标环境为:
60
+
61
+ ```text
62
+ /srv/cosmos-robometer-private-code/environment/phase21a_robometer/.venv
63
+ ```
64
+
65
+ 然后在训练节点执行完整 GPU 门禁:
66
+
67
+ ```bash
68
+ /srv/cosmos-robometer-private-code/environment/phase21a_robometer/.venv/bin/python \
69
+ /srv/cosmos-robometer-private-code/environment/phase21a_robometer/doctor.py
70
+ ```
71
+
72
+ 必须通过 CUDA 12.8、BF16 和 FlashAttention CUDA probe 才能开始 smoke test。
73
+
74
+ ## 必须单独准备的内容
75
+
76
+ uv 只复刻 Python 用户态环境。下面的输入不在离线环境归档中:
77
+
78
+ | 内容 | 是否为 Phase 2.1A 训练必需 | 准备方式 |
79
+ |---|---:|---|
80
+ | Linux x86_64 主机与 NVIDIA 驱动 | 是 | 云端镜像提供;驱动必须兼容 CUDA 12.8 |
81
+ | Qwen3-VL-4B base snapshot | 是 | 下载 `unsloth/Qwen3-VL-4B-Instruct` 固定 revision `252d592b59b0233b226875a44ac135cfa1d3f755` |
82
+ | `stage2_core_v1` 官方轨迹 | 是 | 用 `scripts/download_stage2_core_v1.py` 从 `robometer/processed_datasets@1a8eb2d279c70964fadeaf8019a77c490c3abe02` 下载 |
83
+ | 冻结 pair manifest | 是 | 已在本仓库 `manifests/phase2_remediation_pairs_v1.jsonl` |
84
+ | action sidecars | 当前 reward 训练否;后续 action 实验需要 | 已在本仓库 `derived/action_sidecars_stage2_action_sidecar_v1.tar` |
85
+ | RBM-EVAL-OOD | 正式训练否;最终固定评估可选 | 6 个 archive、1,627,443,200 bytes、571 trajectories;不得用于 checkpoint/超参数选择 |
86
+ | 训练输出盘 | 是 | 独立可写目录,保存 checkpoint、best model、progress 与 ID-dev 日志 |
87
+ | Hugging Face token | 只在受限/私有下载时需要 | 单独注入服务器 secret;不得写入环境包或代码仓库 |
88
+
89
+ ### 1. Base model
90
+
91
+ 在联网机器下载固定 revision:
92
+
93
+ ```bash
94
+ hf download unsloth/Qwen3-VL-4B-Instruct \
95
+ --revision 252d592b59b0233b226875a44ac135cfa1d3f755 \
96
+ --local-dir /path/to/qwen3-vl-4b-instruct-252d592
97
+ ```
98
+
99
+ 把完整目录传到云端,并在训练配置中使用本地 snapshot 路径。不要在受限服务器上使用
100
+ 浮动的 `main`。
101
+
102
+ ### 2. Public-Proxy `stage2_core_v1`
103
+
104
+ 在联网且至少有 230 GiB 可用空间的机器运行:
105
+
106
+ ```bash
107
+ cd /path/to/cosmos-robometer-private-code
108
+ environment/phase21a_robometer/.venv/bin/python \
109
+ scripts/download_stage2_core_v1.py \
110
+ --output-dir /path/to/stage2_core_v1/archives
111
+
112
+ environment/phase21a_robometer/.venv/bin/python \
113
+ scripts/extract_stage2_core_v1.py \
114
+ --archive-root /path/to/stage2_core_v1/archives \
115
+ --extract-root /path/to/stage2_core_v1/processed_datasets \
116
+ --output /path/to/stage2_core_v1/extraction_report.json
117
+ ```
118
+
119
+ 活动 profile 为约 106.9 GiB 压缩数据,共 14 个物理 archive。不要使用 Robometer
120
+ 未修改的全量下载脚本,因为它会下载浮动 revision 的多 TB 数据。
121
+
122
+ ### 3. Action sidecar
123
+
124
+ Phase 2.1A 的 Robometer-Low-LoRA/Robometer-Low reward 训练不读取 action sidecar。
125
+ 后续 action-conditioned Cosmos 实验需要时再解压:
126
+
127
+ ```bash
128
+ mkdir -p /path/to/stage2_core_v1/derived
129
+ tar -xf derived/action_sidecars_stage2_action_sidecar_v1.tar \
130
+ -C /path/to/stage2_core_v1/derived
131
+ sha256sum --check derived/action_sidecars_stage2_action_sidecar_v1.tar.sha256
132
+ ```
133
+
134
+ ### 4. OOD 数据
135
+
136
+ RBM-EVAL-OOD 可以完全不传入训练节点。只有模型、分析代码和选择结果冻结后,才在独立
137
+ 评估阶段使用;它不能进入训练 loop、early stopping 或 checkpoint selection。
138
+
139
+ ## 容量提示
140
+
141
+ - 离线归档:约 3.67 GiB;
142
+ - 解压后的 uv 素材:约 8.1 GiB cache + 0.13 GiB uv/Python;
143
+ - 创建出的 `.venv`:约 7.7 GiB;
144
+ - 环境部署建议至少预留 20 GiB;
145
+ - 数据和模型空间需另行计算。
146
+
README.md CHANGED
@@ -5,12 +5,12 @@ tags:
5
  - reward-modeling
6
  - qwen3-vl
7
  - peft
8
- - private-training-code
9
  ---
10
 
11
  # Cosmos–Robometer Phase 2.1A training code
12
 
13
- Private, portable training kit for the approved `Public-Proxy stage2_core_v1`
14
  experiments:
15
 
16
  - `Robometer-Low-LoRA`: implemented formal trainer with frozen ID-dev evaluation,
@@ -18,9 +18,11 @@ experiments:
18
  - `Robometer-Low`: full language-decoder smoke test. Formal training remains
19
  intentionally blocked until suitable multi-GPU/server memory is available.
20
 
21
- No dataset files, model weights, checkpoints, Hugging Face cache, local virtual
22
- environment, credentials, OOD evaluation data, or machine-specific run logs are
23
- included.
 
 
24
 
25
  ## Recreate the environment
26
 
@@ -34,6 +36,11 @@ uv run --project environment/phase21a_robometer \
34
  The environment is locked for PyTorch 2.8.0/CUDA 12.8. The reference smoke
35
  hardware was one RTX 5090 with 32,607 MiB VRAM.
36
 
 
 
 
 
 
37
  ## External inputs
38
 
39
  - Base model: `unsloth/Qwen3-VL-4B-Instruct` at revision
@@ -43,10 +50,9 @@ hardware was one RTX 5090 with 32,607 MiB VRAM.
43
  `1a8eb2d279c70964fadeaf8019a77c490c3abe02`.
44
  - Frozen Phase 2.1A subset: 2,689 pair rows referencing 4,323 trajectory files.
45
 
46
- The planned dataset repository is
47
- `ar-mine/cosmos-robometer-public-dataset`.
48
- Until it is available, the subset can be reconstructed from the pinned official
49
- Robometer processed-data repository and the frozen dataset manifest.
50
 
51
  ## Training
52
 
@@ -66,6 +72,7 @@ formal `Robometer-Low` comparison.
66
 
67
  ## Redistribution
68
 
69
- This private repository contains experiment code and metadata only. It does not
70
- grant redistribution rights for upstream datasets or model weights. Review the
71
- terms of each upstream source before making any derived dataset public.
 
 
5
  - reward-modeling
6
  - qwen3-vl
7
  - peft
8
+ - offline-training
9
  ---
10
 
11
  # Cosmos–Robometer Phase 2.1A training code
12
 
13
+ Portable training kit for the approved `Public-Proxy stage2_core_v1`
14
  experiments:
15
 
16
  - `Robometer-Low-LoRA`: implemented formal trainer with frozen ID-dev evaluation,
 
18
  - `Robometer-Low`: full language-decoder smoke test. Formal training remains
19
  intentionally blocked until suitable multi-GPU/server memory is available.
20
 
21
+ The repository does not duplicate the official Robometer trajectory archives,
22
+ model weights, checkpoints, credentials, OOD evaluation archives, or
23
+ machine-specific run logs. It does contain derived action sidecars and their
24
+ manifests: 20,620 sidecar files are packaged in a 455,188,480-byte tar archive.
25
+ These sidecars are not consumed by the Phase 2.1A reward-model training loop.
26
 
27
  ## Recreate the environment
28
 
 
36
  The environment is locked for PyTorch 2.8.0/CUDA 12.8. The reference smoke
37
  hardware was one RTX 5090 with 32,607 MiB VRAM.
38
 
39
+ For a server with restricted or no network access, download the validated pure
40
+ uv offline archive under `offline_env/`. It includes uv 0.11.3, CPython 3.10.12,
41
+ all 50 locked packages, CUDA 12.8 Python wheels, and the locally built
42
+ FlashAttention wheel. See [OFFLINE_UV_DEPLOYMENT.md](OFFLINE_UV_DEPLOYMENT.md).
43
+
44
  ## External inputs
45
 
46
  - Base model: `unsloth/Qwen3-VL-4B-Instruct` at revision
 
50
  `1a8eb2d279c70964fadeaf8019a77c490c3abe02`.
51
  - Frozen Phase 2.1A subset: 2,689 pair rows referencing 4,323 trajectory files.
52
 
53
+ There is no separate `ar-mine/cosmos-robometer-public-dataset` repository. The
54
+ subset is reconstructed from the pinned official Robometer processed-data
55
+ repository and the frozen dataset manifest in this repository.
 
56
 
57
  ## Training
58
 
 
72
 
73
  ## Redistribution
74
 
75
+ This public repository includes experiment code, metadata, and recovered action
76
+ sidecars, but does not grant redistribution rights for upstream datasets or
77
+ model weights. Review the terms of each upstream source before reusing or
78
+ redistributing derived assets.
TRAINING_MANUAL.md CHANGED
@@ -1,6 +1,6 @@
1
  # Phase 2.1A 训练手册
2
 
3
- 日期:2026-08-27
4
  对象:`Robometer-Low-LoRA` 与 `Robometer-Low`
5
  数据:`Public-Proxy stage2_core_v1` 的冻结 5% pair manifest
6
 
@@ -23,7 +23,7 @@
23
  | 分支 | 状态 | 可以做什么 |
24
  |---|---|---|
25
  | Robometer-Low-LoRA v1 | 已按用户要求停止 | 日志到 step 246;最新完整 checkpoint 为 step 4 |
26
- | Robometer-Low-LoRA v2 | 已配置,未正式启动 | 3,000-step cap、在线 ID-dev、早停和最佳 checkpoint 恢复 |
27
  | Robometer-Low | 等待服务器资源和正式 runner | 单卡容量 smoke;不能把当前 smoke 当正式训练入口 |
28
 
29
  LoRA v1 已停止且不再续训。v2 使用全新 output root;禁止拿 v1 的 step-4 checkpoint 恢复到 v2,
@@ -47,7 +47,8 @@ LoRA v1 已停止且不再续训。v2 使用全新 output root;禁止拿 v1
47
  | qwen-vl-utils | 0.0.14 |
48
  | NumPy / Pillow | 1.26.4 / 11.3.0 |
49
 
50
- 可部署环境固定在 `environment/phase21a_robometer/pyproject.toml` 和 `uv.lock`,不复制 `.venv`:
 
51
 
52
  ```bash
53
  cd /srv/phase21a-kit
@@ -60,6 +61,17 @@ uv run --project environment/phase21a_robometer \
60
  如果上传包内保存了相同 `pyproject.toml` 和 `uv.lock`,仍要在目标 CUDA/driver 上重新创建环境。
61
  不要为上传工具升级训练 venv;`hf` CLI 可使用单独小环境。
62
 
 
 
 
 
 
 
 
 
 
 
 
63
  ## 4. 下载并固定输入
64
 
65
  以下使用示例变量;按服务器目录修改:
@@ -71,17 +83,21 @@ PHASE21A_MODEL=/srv/models/qwen3-vl-4b-instruct-252d592
71
  PHASE21A_RUNS=/srv/phase21a-runs
72
  ```
73
 
74
- 下载 training kit 和 dataset:
 
75
 
76
  ```bash
77
  hf download ar-mine/cosmos-robometer-private-code \
78
  --revision <KIT_COMMIT> \
79
  --local-dir "$PHASE21A_KIT"
80
 
81
- hf download ar-mine/cosmos-robometer-public-dataset \
82
- --repo-type dataset \
83
- --revision <DATA_COMMIT> \
84
- --local-dir "$PHASE21A_DATA"
 
 
 
85
  ```
86
 
87
  下载精确基础模型;不要使用浮动 `main`:
@@ -98,7 +114,7 @@ hf download unsloth/Qwen3-VL-4B-Instruct \
98
 
99
  ```bash
100
  cd "$PHASE21A_DATA"
101
- sha256sum --check SHA256SUMS
102
  ```
103
 
104
  再运行 dataset bundle 工具的 dry-run,把 `--output-dir` 指向任意不会执行复制的路径:
@@ -106,7 +122,7 @@ sha256sum --check SHA256SUMS
106
  ```bash
107
  cd "$PHASE21A_KIT"
108
  uv run --project environment/phase21a_robometer python scripts/build_phase21a_hf_dataset_bundle.py \
109
- --manifest "$PHASE21A_DATA/manifests/phase2_remediation_pairs_v1.jsonl" \
110
  --processed-root "$PHASE21A_DATA/processed_datasets" \
111
  --output-dir /tmp/phase21a-dry-run
112
  ```
@@ -174,7 +190,7 @@ uv run --project environment/phase21a_robometer \
174
  cd "$PHASE21A_KIT"
175
  uv run --project environment/phase21a_robometer python scripts/smoke_phase21a_robometer_low.py \
176
  --snapshot "$PHASE21A_MODEL" \
177
- --manifest "$PHASE21A_DATA/manifests/phase2_remediation_pairs_v1.jsonl" \
178
  --processed-root "$PHASE21A_DATA/processed_datasets" \
179
  --micro-batch-pairs 32 \
180
  --gradient-accumulation 2 \
@@ -203,7 +219,7 @@ portable runner 已支持显式模型、manifest 和数据路径:
203
  cd "$PHASE21A_KIT"
204
  uv run --project environment/phase21a_robometer python scripts/run_phase21a_robometer_low_lora_seeds.py \
205
  --snapshot "$PHASE21A_MODEL" \
206
- --manifest "$PHASE21A_DATA/manifests/phase2_remediation_pairs_v1.jsonl" \
207
  --processed-root "$PHASE21A_DATA/processed_datasets" \
208
  --output-root "$PHASE21A_RUNS/robometer-low-lora-v2" \
209
  --seeds 7 17 27 \
 
1
  # Phase 2.1A 训练手册
2
 
3
+ 日期:2026-08-28
4
  对象:`Robometer-Low-LoRA` 与 `Robometer-Low`
5
  数据:`Public-Proxy stage2_core_v1` 的冻结 5% pair manifest
6
 
 
23
  | 分支 | 状态 | 可以做什么 |
24
  |---|---|---|
25
  | Robometer-Low-LoRA v1 | 已按用户要求停止 | 日志到 step 246;最新完整 checkpoint 为 step 4 |
26
+ | Robometer-Low-LoRA v2 | 正式训练运行中 | 3,000-step cap、在线 ID-dev、早停和最佳 checkpoint 恢复 |
27
  | Robometer-Low | 等待服务器资源和正式 runner | 单卡容量 smoke;不能把当前 smoke 当正式训练入口 |
28
 
29
  LoRA v1 已停止且不再续训。v2 使用全新 output root;禁止拿 v1 的 step-4 checkpoint 恢复到 v2,
 
47
  | qwen-vl-utils | 0.0.14 |
48
  | NumPy / Pillow | 1.26.4 / 11.3.0 |
49
 
50
+ 可部署环境固定在 `environment/phase21a_robometer/pyproject.toml` 和 `uv.lock`,不复制 `.venv`。
51
+ 网络正常时可直接重建:
52
 
53
  ```bash
54
  cd /srv/phase21a-kit
 
61
  如果上传包内保存了相同 `pyproject.toml` 和 `uv.lock`,仍要在目标 CUDA/driver 上重新创建环境。
62
  不要为上传工具升级训练 venv;`hf` CLI 可使用单独小环境。
63
 
64
+ 服务器网络受限时,使用仓库中的纯 uv 离线归档,不需要 Conda:
65
+
66
+ ```bash
67
+ tar --zstd -xf offline_env/phase21a-uv-linux-x86_64-cu128-20260828.tar.zst \
68
+ -C /srv/phase21a-offline
69
+ /srv/phase21a-offline/phase21a_uv_linux_x86_64/install_offline.sh \
70
+ /srv/phase21a-kit
71
+ ```
72
+
73
+ 完整说明与必须单独准备的 model/data/driver/OOD 清单见 `OFFLINE_UV_DEPLOYMENT.md`。
74
+
75
  ## 4. 下载并固定输入
76
 
77
  以下使用示例变量;按服务器目录修改:
 
83
  PHASE21A_RUNS=/srv/phase21a-runs
84
  ```
85
 
86
+ 下载 training kit。当前不存在单独的 `ar-mine/cosmos-robometer-public-dataset`
87
+ 仓库;官方轨迹按 `DATA_SETUP.md` 从固定 Robometer revision 重建:
88
 
89
  ```bash
90
  hf download ar-mine/cosmos-robometer-private-code \
91
  --revision <KIT_COMMIT> \
92
  --local-dir "$PHASE21A_KIT"
93
 
94
+ cd "$PHASE21A_KIT"
95
+ environment/phase21a_robometer/.venv/bin/python scripts/download_stage2_core_v1.py \
96
+ --output-dir "$PHASE21A_DATA/archives"
97
+ environment/phase21a_robometer/.venv/bin/python scripts/extract_stage2_core_v1.py \
98
+ --archive-root "$PHASE21A_DATA/archives" \
99
+ --extract-root "$PHASE21A_DATA/processed_datasets" \
100
+ --output "$PHASE21A_DATA/extraction_report.json"
101
  ```
102
 
103
  下载精确基础模型;不要使用浮动 `main`:
 
114
 
115
  ```bash
116
  cd "$PHASE21A_DATA"
117
+ sha256sum --check "$PHASE21A_KIT/manifests/stage2_subset_SHA256SUMS"
118
  ```
119
 
120
  再运行 dataset bundle 工具的 dry-run,把 `--output-dir` 指向任意不会执行复制的路径:
 
122
  ```bash
123
  cd "$PHASE21A_KIT"
124
  uv run --project environment/phase21a_robometer python scripts/build_phase21a_hf_dataset_bundle.py \
125
+ --manifest "$PHASE21A_KIT/manifests/phase2_remediation_pairs_v1.jsonl" \
126
  --processed-root "$PHASE21A_DATA/processed_datasets" \
127
  --output-dir /tmp/phase21a-dry-run
128
  ```
 
190
  cd "$PHASE21A_KIT"
191
  uv run --project environment/phase21a_robometer python scripts/smoke_phase21a_robometer_low.py \
192
  --snapshot "$PHASE21A_MODEL" \
193
+ --manifest "$PHASE21A_KIT/manifests/phase2_remediation_pairs_v1.jsonl" \
194
  --processed-root "$PHASE21A_DATA/processed_datasets" \
195
  --micro-batch-pairs 32 \
196
  --gradient-accumulation 2 \
 
219
  cd "$PHASE21A_KIT"
220
  uv run --project environment/phase21a_robometer python scripts/run_phase21a_robometer_low_lora_seeds.py \
221
  --snapshot "$PHASE21A_MODEL" \
222
+ --manifest "$PHASE21A_KIT/manifests/phase2_remediation_pairs_v1.jsonl" \
223
  --processed-root "$PHASE21A_DATA/processed_datasets" \
224
  --output-root "$PHASE21A_RUNS/robometer-low-lora-v2" \
225
  --seeds 7 17 27 \
offline_env/README.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ # Offline uv environment artifact
2
+
3
+ Download `phase21a-uv-linux-x86_64-cu128-20260828.tar.zst` on a connected
4
+ machine, verify it with `SHA256SUMS`, then transfer it to the restricted training
5
+ server. Full instructions and the external-artifact checklist are in
6
+ [`../OFFLINE_UV_DEPLOYMENT.md`](../OFFLINE_UV_DEPLOYMENT.md).
7
+
8
+ This archive is for Linux x86_64 only. It contains no credentials, model
9
+ weights, Robometer trajectory archives, OOD data, checkpoints, or Conda files.
10
+
offline_env/SHA256SUMS ADDED
@@ -0,0 +1 @@
 
 
1
+ 070f52ae3e778128508f12d6eecdba1dddfc37e613dd0be25cca1ce9e38c37a4 phase21a-uv-linux-x86_64-cu128-20260828.tar.zst
offline_env/phase21a-uv-linux-x86_64-cu128-20260828.tar.zst ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:070f52ae3e778128508f12d6eecdba1dddfc37e613dd0be25cca1ce9e38c37a4
3
+ size 3940678637
reports/PHASE21A_TRAINING_MANUAL.md CHANGED
@@ -1,6 +1,6 @@
1
  # Phase 2.1A 训练手册
2
 
3
- 日期:2026-08-27
4
  对象:`Robometer-Low-LoRA` 与 `Robometer-Low`
5
  数据:`Public-Proxy stage2_core_v1` 的冻结 5% pair manifest
6
 
@@ -23,7 +23,7 @@
23
  | 分支 | 状态 | 可以做什么 |
24
  |---|---|---|
25
  | Robometer-Low-LoRA v1 | 已按用户要求停止 | 日志到 step 246;最新完整 checkpoint 为 step 4 |
26
- | Robometer-Low-LoRA v2 | 已配置,未正式启动 | 3,000-step cap、在线 ID-dev、早停和最佳 checkpoint 恢复 |
27
  | Robometer-Low | 等待服务器资源和正式 runner | 单卡容量 smoke;不能把当前 smoke 当正式训练入口 |
28
 
29
  LoRA v1 已停止且不再续训。v2 使用全新 output root;禁止拿 v1 的 step-4 checkpoint 恢复到 v2,
@@ -47,7 +47,8 @@ LoRA v1 已停止且不再续训。v2 使用全新 output root;禁止拿 v1
47
  | qwen-vl-utils | 0.0.14 |
48
  | NumPy / Pillow | 1.26.4 / 11.3.0 |
49
 
50
- 可部署环境固定在 `environment/phase21a_robometer/pyproject.toml` 和 `uv.lock`,不复制 `.venv`:
 
51
 
52
  ```bash
53
  cd /srv/phase21a-kit
@@ -60,6 +61,17 @@ uv run --project environment/phase21a_robometer \
60
  如果上传包内保存了相同 `pyproject.toml` 和 `uv.lock`,仍要在目标 CUDA/driver 上重新创建环境。
61
  不要为上传工具升级训练 venv;`hf` CLI 可使用单独小环境。
62
 
 
 
 
 
 
 
 
 
 
 
 
63
  ## 4. 下载并固定输入
64
 
65
  以下使用示例变量;按服务器目录修改:
@@ -71,17 +83,21 @@ PHASE21A_MODEL=/srv/models/qwen3-vl-4b-instruct-252d592
71
  PHASE21A_RUNS=/srv/phase21a-runs
72
  ```
73
 
74
- 下载 training kit 和 dataset:
 
75
 
76
  ```bash
77
  hf download ar-mine/cosmos-robometer-private-code \
78
  --revision <KIT_COMMIT> \
79
  --local-dir "$PHASE21A_KIT"
80
 
81
- hf download ar-mine/cosmos-robometer-public-dataset \
82
- --repo-type dataset \
83
- --revision <DATA_COMMIT> \
84
- --local-dir "$PHASE21A_DATA"
 
 
 
85
  ```
86
 
87
  下载精确基础模型;不要使用浮动 `main`:
@@ -98,7 +114,7 @@ hf download unsloth/Qwen3-VL-4B-Instruct \
98
 
99
  ```bash
100
  cd "$PHASE21A_DATA"
101
- sha256sum --check SHA256SUMS
102
  ```
103
 
104
  再运行 dataset bundle 工具的 dry-run,把 `--output-dir` 指向任意不会执行复制的路径:
@@ -106,7 +122,7 @@ sha256sum --check SHA256SUMS
106
  ```bash
107
  cd "$PHASE21A_KIT"
108
  uv run --project environment/phase21a_robometer python scripts/build_phase21a_hf_dataset_bundle.py \
109
- --manifest "$PHASE21A_DATA/manifests/phase2_remediation_pairs_v1.jsonl" \
110
  --processed-root "$PHASE21A_DATA/processed_datasets" \
111
  --output-dir /tmp/phase21a-dry-run
112
  ```
@@ -174,7 +190,7 @@ uv run --project environment/phase21a_robometer \
174
  cd "$PHASE21A_KIT"
175
  uv run --project environment/phase21a_robometer python scripts/smoke_phase21a_robometer_low.py \
176
  --snapshot "$PHASE21A_MODEL" \
177
- --manifest "$PHASE21A_DATA/manifests/phase2_remediation_pairs_v1.jsonl" \
178
  --processed-root "$PHASE21A_DATA/processed_datasets" \
179
  --micro-batch-pairs 32 \
180
  --gradient-accumulation 2 \
@@ -203,7 +219,7 @@ portable runner 已支持显式模型、manifest 和数据路径:
203
  cd "$PHASE21A_KIT"
204
  uv run --project environment/phase21a_robometer python scripts/run_phase21a_robometer_low_lora_seeds.py \
205
  --snapshot "$PHASE21A_MODEL" \
206
- --manifest "$PHASE21A_DATA/manifests/phase2_remediation_pairs_v1.jsonl" \
207
  --processed-root "$PHASE21A_DATA/processed_datasets" \
208
  --output-root "$PHASE21A_RUNS/robometer-low-lora-v2" \
209
  --seeds 7 17 27 \
 
1
  # Phase 2.1A 训练手册
2
 
3
+ 日期:2026-08-28
4
  对象:`Robometer-Low-LoRA` 与 `Robometer-Low`
5
  数据:`Public-Proxy stage2_core_v1` 的冻结 5% pair manifest
6
 
 
23
  | 分支 | 状态 | 可以做什么 |
24
  |---|---|---|
25
  | Robometer-Low-LoRA v1 | 已按用户要求停止 | 日志到 step 246;最新完整 checkpoint 为 step 4 |
26
+ | Robometer-Low-LoRA v2 | 正式训练运行中 | 3,000-step cap、在线 ID-dev、早停和最佳 checkpoint 恢复 |
27
  | Robometer-Low | 等待服务器资源和正式 runner | 单卡容量 smoke;不能把当前 smoke 当正式训练入口 |
28
 
29
  LoRA v1 已停止且不再续训。v2 使用全新 output root;禁止拿 v1 的 step-4 checkpoint 恢复到 v2,
 
47
  | qwen-vl-utils | 0.0.14 |
48
  | NumPy / Pillow | 1.26.4 / 11.3.0 |
49
 
50
+ 可部署环境固定在 `environment/phase21a_robometer/pyproject.toml` 和 `uv.lock`,不复制 `.venv`。
51
+ 网络正常时可直接重建:
52
 
53
  ```bash
54
  cd /srv/phase21a-kit
 
61
  如果上传包内保存了相同 `pyproject.toml` 和 `uv.lock`,仍要在目标 CUDA/driver 上重新创建环境。
62
  不要为上传工具升级训练 venv;`hf` CLI 可使用单独小环境。
63
 
64
+ 服务器网络受限时,使用仓库中的纯 uv 离线归档,不需要 Conda:
65
+
66
+ ```bash
67
+ tar --zstd -xf offline_env/phase21a-uv-linux-x86_64-cu128-20260828.tar.zst \
68
+ -C /srv/phase21a-offline
69
+ /srv/phase21a-offline/phase21a_uv_linux_x86_64/install_offline.sh \
70
+ /srv/phase21a-kit
71
+ ```
72
+
73
+ 完整说明与必须单独准备的 model/data/driver/OOD 清单见 `OFFLINE_UV_DEPLOYMENT.md`。
74
+
75
  ## 4. 下载并固定输入
76
 
77
  以下使用示例变量;按服务器目录修改:
 
83
  PHASE21A_RUNS=/srv/phase21a-runs
84
  ```
85
 
86
+ 下载 training kit。当前不存在单独的 `ar-mine/cosmos-robometer-public-dataset`
87
+ 仓库;官方轨迹按 `DATA_SETUP.md` 从固定 Robometer revision 重建:
88
 
89
  ```bash
90
  hf download ar-mine/cosmos-robometer-private-code \
91
  --revision <KIT_COMMIT> \
92
  --local-dir "$PHASE21A_KIT"
93
 
94
+ cd "$PHASE21A_KIT"
95
+ environment/phase21a_robometer/.venv/bin/python scripts/download_stage2_core_v1.py \
96
+ --output-dir "$PHASE21A_DATA/archives"
97
+ environment/phase21a_robometer/.venv/bin/python scripts/extract_stage2_core_v1.py \
98
+ --archive-root "$PHASE21A_DATA/archives" \
99
+ --extract-root "$PHASE21A_DATA/processed_datasets" \
100
+ --output "$PHASE21A_DATA/extraction_report.json"
101
  ```
102
 
103
  下载精确基础模型;不要使用浮动 `main`:
 
114
 
115
  ```bash
116
  cd "$PHASE21A_DATA"
117
+ sha256sum --check "$PHASE21A_KIT/manifests/stage2_subset_SHA256SUMS"
118
  ```
119
 
120
  再运行 dataset bundle 工具的 dry-run,把 `--output-dir` 指向任意不会执行复制的路径:
 
122
  ```bash
123
  cd "$PHASE21A_KIT"
124
  uv run --project environment/phase21a_robometer python scripts/build_phase21a_hf_dataset_bundle.py \
125
+ --manifest "$PHASE21A_KIT/manifests/phase2_remediation_pairs_v1.jsonl" \
126
  --processed-root "$PHASE21A_DATA/processed_datasets" \
127
  --output-dir /tmp/phase21a-dry-run
128
  ```
 
190
  cd "$PHASE21A_KIT"
191
  uv run --project environment/phase21a_robometer python scripts/smoke_phase21a_robometer_low.py \
192
  --snapshot "$PHASE21A_MODEL" \
193
+ --manifest "$PHASE21A_KIT/manifests/phase2_remediation_pairs_v1.jsonl" \
194
  --processed-root "$PHASE21A_DATA/processed_datasets" \
195
  --micro-batch-pairs 32 \
196
  --gradient-accumulation 2 \
 
219
  cd "$PHASE21A_KIT"
220
  uv run --project environment/phase21a_robometer python scripts/run_phase21a_robometer_low_lora_seeds.py \
221
  --snapshot "$PHASE21A_MODEL" \
222
+ --manifest "$PHASE21A_KIT/manifests/phase2_remediation_pairs_v1.jsonl" \
223
  --processed-root "$PHASE21A_DATA/processed_datasets" \
224
  --output-root "$PHASE21A_RUNS/robometer-low-lora-v2" \
225
  --seeds 7 17 27 \