Instructions to use ar-mine/cosmos-robometer-private-code with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ar-mine/cosmos-robometer-private-code with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("ar-mine/cosmos-robometer-private-code", device_map="auto") - PEFT
How to use ar-mine/cosmos-robometer-private-code with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
Add files using upload-large-folder tool
Browse files- DATA_SETUP.md +1 -1
- OFFLINE_UV_DEPLOYMENT.md +146 -0
- README.md +19 -12
- TRAINING_MANUAL.md +28 -12
- offline_env/README.md +10 -0
- offline_env/SHA256SUMS +1 -0
- offline_env/phase21a-uv-linux-x86_64-cu128-20260828.tar.zst +3 -0
- reports/PHASE21A_TRAINING_MANUAL.md +28 -12
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
|
| 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 |
-
-
|
| 9 |
---
|
| 10 |
|
| 11 |
# Cosmos–Robometer Phase 2.1A training code
|
| 12 |
|
| 13 |
-
|
| 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 |
-
|
| 22 |
-
|
| 23 |
-
|
|
|
|
|
|
|
| 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 |
-
|
| 47 |
-
|
| 48 |
-
|
| 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
|
| 70 |
-
grant redistribution rights for upstream datasets or
|
| 71 |
-
terms of each upstream source before
|
|
|
|
|
|
| 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-
|
| 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 |
|
| 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
|
|
|
|
| 75 |
|
| 76 |
```bash
|
| 77 |
hf download ar-mine/cosmos-robometer-private-code \
|
| 78 |
--revision <KIT_COMMIT> \
|
| 79 |
--local-dir "$PHASE21A_KIT"
|
| 80 |
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
--
|
| 84 |
-
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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 "$
|
| 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 "$
|
| 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 "$
|
| 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-
|
| 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 |
|
| 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
|
|
|
|
| 75 |
|
| 76 |
```bash
|
| 77 |
hf download ar-mine/cosmos-robometer-private-code \
|
| 78 |
--revision <KIT_COMMIT> \
|
| 79 |
--local-dir "$PHASE21A_KIT"
|
| 80 |
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
--
|
| 84 |
-
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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 "$
|
| 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 "$
|
| 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 "$
|
| 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 \
|