a2a-migration / README.md
123pyLeo's picture
Add files using upload-large-folder tool
e917a55 verified
|
Raw History Blame Contribute Delete
4.93 kB
# 迁移包 — 下载后怎么还原
打包于 2026-08-30。总计 6.4 GB。
完整的背景、结论、坑清单在同目录的 **`MIGRATION_TO_NEW_SERVER.md`** —— 先读那个。
---
## 包里有什么
| 文件 | 体积 | 内容 | 必要性 |
|---|---|---|---|
| `code/A2A_Flow_Matching_code.tgz` | 99 MB | A2A 仓库代码,**含我们的 9 处上游 bug 修复 + `ours` 策略** | **必须** |
| `code/TurboVLA_code.tgz` | 20 MB | TurboVLA 代码 + 全部工具脚本 | **必须** |
| `data/stack_cube_zarr_100demo.tgz` | 671 MB | stack_cube 100 条演示的训练数据 | 建议(重建约 3 分钟) |
| `data/takeitback_1k_npz.tgz` | 2.0 GB | TakeItBack 自采 1000 集原始数据 | 可选(重采约 1 小时) |
| `data/tib_1k_lerobot.tgz` | 90 MB | 上面那批转成评测用格式 | 可选 |
| `data/tib_oracle_7dof.tgz` | 34 MB | **7 维动作的 TakeItBack oracle**(官方发布的是 8 维,VLA 环境用不了) | 可选(重训 11 分钟) |
| `data/tib_eval_states_375.tgz` | 280 KB | 375 个评测状态 + 真种子表 | 可选(重算约 15 分钟) |
| `ckpt/stack_cube_200ep_{fm_unet,vita,a2a,ours}.ckpt` | 3.5 GB | 四条臂 200 轮训好的模型 | **建议**(重训 2h40m) |
| `CHECKSUMS.md5` | — | 下载后核对用(校验加密后的文件) |
**⚠️ 全部 `.tgz` / `.ckpt` 都已用 AES-256 加密, 文件名带 `.enc`。密码单独给。两份 `.md` 未加密。**
**只想最快跑起来**:下 `code/` + `ckpt/` + `data/stack_cube_zarr_100demo.tgz`,约 4.3 GB,
其余 TakeItBack 相关的都可以先不下。
---
## 还原步骤
### 第 0 步 — 先解密(所有 .tgz / .ckpt 都是加密的)
```bash
md5sum -c CHECKSUMS.md5 # 先核对下载完整性(校验的是加密后的文件)
# 密码通过其它渠道单独给你, 不在这个仓库里
find . -name '*.enc' | while read f; do
openssl enc -d -aes-256-cbc -pbkdf2 -iter 200000 -in "$f" -out "${f%.enc}" && rm "$f"
done
```
⚠️ `-pbkdf2 -iter 200000` 必须原样照抄, 少一个参数就解不开。
加密端用的是 OpenSSL 1.1.1f, 新机器上的 3.x 可以正常解。
```bash
# 1. 代码(假设放到 $ROOT)
ROOT=/your/path
mkdir -p $ROOT && cd $ROOT
tar xzf /path/to/code/A2A_Flow_Matching_code.tgz
tar xzf /path/to/code/TurboVLA_code.tgz
# 2. MIKASA-Robo(没打包, 直接 clone; 我们对它零改动)
cd $ROOT && git clone https://github.com/CognitiveAISystems/MIKASA-Robo.git
cd MIKASA-Robo && git checkout 509b875 # 我们用的那个 commit
# 3. stack_cube 训练数据
mkdir -p $ROOT/A2A_Flow_Matching/data_policy
tar xzf /path/to/data/stack_cube_zarr_100demo.tgz -C $ROOT/A2A_Flow_Matching/data_policy
# 4. 四条臂的 checkpoint
for p in fm_unet vita a2a ours; do
mkdir -p $ROOT/A2A_Flow_Matching/il_outputs/$p/stack_cube/checkpoints
cp /path/to/ckpt/stack_cube_200ep_$p.ckpt \
$ROOT/A2A_Flow_Matching/il_outputs/$p/stack_cube/checkpoints/200.ckpt
done
# 5.(可选)TakeItBack 相关
mkdir -p $ROOT/mikasa_data/collected
tar xzf /path/to/data/takeitback_1k_npz.tgz -C $ROOT/mikasa_data/collected
tar xzf /path/to/data/tib_1k_lerobot.tgz -C $ROOT/mikasa_data
tar xzf /path/to/data/tib_oracle_7dof.tgz -C $ROOT/mikasa_data
mkdir -p $ROOT/A2A_Flow_Matching/experiments/latent_action_vae_v2/outputs
tar xzf /path/to/data/tib_eval_states_375.tgz \
-C $ROOT/A2A_Flow_Matching/experiments/latent_action_vae_v2/outputs
# 6. RoboVerse 的机器人/物体资产(没打包, 首次运行会自动从 HuggingFace 下载)
# 如果新机器连 huggingface.co 慢, 用镜像:
export HF_ENDPOINT=https://hf-mirror.com
```
### ⚠️ 脚本里的绝对路径要改
打包里的实验脚本(`run_*.sh`)写死了 `/ai/data/lintao/...`。批量替换:
```bash
cd $ROOT
grep -rl "/ai/data/lintao" --include='*.sh' --include='*.py' . \
| xargs sed -i "s|/ai/data/lintao|$ROOT|g"
```
### ⚠️ 虚拟环境不要搬,必须重建
旧机器是 glibc 2.31,新机器是 2.35+,二进制不兼容。
按 `A2A_Flow_Matching/ENV_RECIPE_ROBOVERSE.md` 重建,**其中 mujoco/dm_control 那个版本坑
一定要按文档里的做法(让 pip 自己解),手工指定版本会一直错开,在旧机器上花了一小时**。
### 还原后先做冒烟测试
见 `MIGRATION_TO_NEW_SERVER.md` 的 §2 步骤 4,三步,每步有"不过就停"的判据。
最关键的一步是 **扰动等级 1 能不能跑起来** —— 那是这次迁移的全部理由。
---
## 没有打包的东西(在新机器上重新获取)
| 内容 | 怎么拿 |
|---|---|
| MIKASA-Robo 仓库 | GitHub clone(见上,commit `509b875`) |
| DINOv3 / BERT 预训练权重 | HuggingFace 下载(`facebook/dinov3-vitb16` / `bert-base-uncased`),原目录 4.1 GB |
| RoboVerse 资产与轨迹 | 首次运行自动下载,约 64 MB |
| IsaacSim / Isaac Lab | `pip install isaacsim[all] --extra-index-url https://pypi.nvidia.com` |
| 旧的 700 GB 中间产物 | **故意不搬**,结论已沉淀在 `MIGRATION_TO_NEW_SERVER.md` |