# 迁移包 — 下载后怎么还原 打包于 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` |