patch-policy-repro / RESULTS.md
mysciz's picture
Add official reproduction checkpoints and eval JSON
6bf385a verified
|
Raw History Blame Contribute Delete
3.79 kB
# 官方代码复现
代码:`../../patch_policy`([gaoyuezhou/patch_policy](https://github.com/gaoyuezhou/patch_policy))。
权重:<https://huggingface.co/mysciz/patch-policy-repro>(本目录 git 不含 `*.pt`)。
配置:`train_pusht_diffusion_1gpu`,550 epoch(约 5 万 step),训练中不做环境评估,结束时 100 ep。
## §3.5 编码器(Push-T × DP)
| 实验 | 编码器 | 本机 | 论文 Table 8 |
|------|--------|-----:|-------------:|
| webssl256 | WebSSL 256 × 1024 | **0.737±0.030** | 0.80±0.01 |
| dino256 | DINOv2 256 × 384 | **0.725±0.032** | 0.81±0.01 |
| vjepa2_patch | V-JEPA2 256 × 1024 | **0.696±0.031** | 0.72±0.04 |
| siglip2_patch | SigLIP2 196 × 768 | **0.560±0.039** | 0.64±0.02 |
排序与论文一致:**WebSSL ≈ DINOv2 > V-JEPA2 > SigLIP2**。DINOv3 未跑(gated)。
## §3.7 压缩(DINOv2 + DP)
| 实验 | tokens | final coverage |
|------|-------:|---------------:|
| dino256 | 256 | **0.725±0.032** |
| dino64 | 64 | **0.636±0.037** |
| dino16 | 16 | **0.490±0.041** |
| dino4 | 4 | **0.471±0.040** |
**256 > 64 > 16 ≈ 4**。dino16 不可与 patchpol 0.76 直接比。
## §3.6 推理速度(已训 checkpoint)
口径对齐官方 `resources_test.py`:`policy(obs, goal, None)`,每步 `cuda.synchronize`,不含 action chunking。GPU 是 **RTX 4080 SUPER**(论文 Table 3 是 H200)。原始数字:`inference/latency.json`。
对照论文 Table 3(有对应权重的三行):
| Method | 本机 total / trainable | 本机 policy ms | 论文 |
|--------|------------------------|---------------:|------|
| **Ours - DP (DINOv2)** | **40.43M / 9.19M** | 562 | 40.43M / 9.19M / 445.85 ms |
| **Ours - DP (WebSSL)** | 322.36M / **9.35M** | 578 | 303.66M / 9.35M / 451.68 ms |
| **Ours - VQ-BeT (WebSSL)** | **334.10M / 30.44M** | 5.16 | 334.00M / 30.34M / 21.43 ms |
参数量和论文几乎逐项对上。DP 延迟比 H200 高约 1.26×,但仍是去噪 100 步主导(DINOv2 562 vs WebSSL 578,编码器几乎不加时间)。VQ-BeT 本机 5.16 ms 快于论文 21.43 ms,因为 Cube `_1gpu` 的 obs window 是 **2** 不是 5。ResNet / OpenVLA / ACT / VQ-BeT DINOv2 没有本机权重,未测。
全部 10 个终局:
| 实验 | Hydra | policy ms | full ms |
|------|-------|----------:|--------:|
| pusht DP dino256 | `12-27-54` | 562 | 567 |
| pusht DP dino64 | `20-12-04` | 576 | 582 |
| pusht DP dino16 | `08-18-08` | 571 | 580 |
| pusht DP dino4 | `22-42-29` | 561 | 569 |
| pusht DP webssl256 | `15-24-12` | 578 | 584 |
| pusht DP siglip2 | `01-04-42` | 553 | 582 |
| pusht DP vjepa2 | `04-42-19` | 564 | 610 |
| cube VQ-BeT webssl_cls | `09-35-53` | 4.91 | 17.25 |
| cube VQ-BeT webssl_avgpool | `05-48-51` | 4.92 | 17.22 |
| cube VQ-BeT webssl_patch | `10-29-41` | 5.16 | 17.43 |
DP 压缩 256→4 **不降** 推理延迟。VQ-BeT 上 patch 相对 CLS 只多 0.25 ms;加上编码器后三者都是 ~17 ms。
## §3.3 Cube × VQ-BeT × WebSSL
`train_cube_1gpu`:obs window **2**(论文 5),batch 64。指标 `entered`(max 2)。± 为 100 episode SEM。
| 实验 | Hydra | 本机 entered | 论文 Table 1 |
|------|-------|-------------:|-------------:|
| **webssl_patch** | `10-29-41` | **1.68±0.068**(12 / 8 / 80) | 1.68±0.03 |
| webssl_cls | `09-35-53` | **0.14±0.035**(86 / 14 / 0) | 0.23±0.01 |
| webssl_avgpool | `05-48-51` | **0.13±0.037**(88 / 11 / 1) | 0.25±0.02 |
括号为 0 / 1 / 2 个方块放入目标的 episode 数。排序与论文一致:**patch ≫ CLS ≈ AvgPool**。patch 均值与 Table 1 相同;global 两条略低于论文,但仍接近 0。window=2 不能当 Table 1 同设定,但 §3.3 的拉开已经出现。
权重在 `outputs/cube/<日期>/<时刻>/`。损失曲线:[plots/](plots/)。