Skip to content

About

Reproducible VIMA and VimaBench experiment 2 with sanitized evidence and scripts

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

VIMA Experiment 2

《具身大模型理论》实验 2 的可复现课程仓库。项目基于 VIMA/VimaBench,包含课程脚本、运行时覆盖文件、环境记录、成功/失败案例及复现实验所需工具。

公开仓库不包含任务书、实验手册、报告模板或实验报告文件;日志中的本机账户和绝对目录已统一改为可移植占位符。

完成情况

任务 设置 结果
rotate placement_generalization, seed 42 第 1 步成功
interactive_letters other letter G, seed 7 连续 3 条指令均成功
same_texture novel_task_generalization, seed 19 第 2 步成功
sweep_without_touching novel_task_generalization, seed 31 第 1 步触发失败判据

实验中共记录 6 条任务/指令结果:5 条成功、1 条失败。这里的 success/failure 仅表示 VimaBench 本地任务判据,不代表模型在所有场景中的一般能力。

仓库结构

.
├── scripts/              # 课程提供/整理的原始实验脚本
├── overrides/            # 接入官方源码时需要覆盖的运行时文件
│   ├── scripts/
│   ├── vima/nn/prompt_encoder/
│   └── runtime_assets/t5-base/
├── tools/                # 下载、校验、证据合成和报告生成工具
├── evidence/             # 环境证据、完整日志和关键结果图
├── environment.yml       # 除 PyTorch 外的复现实验依赖
├── CHECKSUMS.md          # 固定版本、文件大小与 SHA-256
└── SOURCE_PROVENANCE.md  # 官方来源与本地文件来源说明

完整运行记录见 evidence/EXPERIMENT_RECORD.md。

固定上游版本

  • VIMA: 8449837aa453f8ec9ba229cb956e3bbef5c796ea
  • VimaBench: 97e0af11e126fd477c9d81eeabfb6c739021c680
  • VIMA 200M checkpoint: revision db745b2ba2f05d4f9ef6ecdbbe47b08244a04e3d

第三方完整源码和模型权重不重复提交。这样既避免仓库膨胀,也能清楚区分上游项目与本实验的修改。

环境

本次实测环境:

  • WSL2 Ubuntu 24.04(对指导书 Ubuntu 20.04/22.04 的功能等价实现)
  • Python 3.9.23
  • PyTorch 2.2.2+cu121
  • CUDA runtime 12.1
  • NVIDIA GeForce RTX 4060 Laptop GPU

创建依赖环境:

conda env create -f environment.yml
conda activate vima
pip install torch==2.2.2 --index-url https://download.pytorch.org/whl/cu121

复现步骤

1. 获取固定源码

git clone https://github.com/vimalabs/VIMA.git
cd VIMA
git checkout 8449837aa453f8ec9ba229cb956e3bbef5c796ea

git clone https://github.com/vimalabs/VimaBench.git
cd VimaBench
git checkout 97e0af11e126fd477c9d81eeabfb6c739021c680
cd ..

2. 应用本实验覆盖文件

在本仓库根目录执行,并将 /path/to/VIMA 换成实际路径:

cp overrides/scripts/vima_weighted_cli_demo.py /path/to/VIMA/scripts/
cp overrides/vima/nn/prompt_encoder/prompt_encoder.py /path/to/VIMA/vima/nn/prompt_encoder/
cp overrides/vima/nn/prompt_encoder/word_embd.py /path/to/VIMA/vima/nn/prompt_encoder/
mkdir -p /path/to/VIMA/runtime_assets/t5-base
cp overrides/runtime_assets/t5-base/* /path/to/VIMA/runtime_assets/t5-base/

覆盖内容包括:headless 证据保存、交互命令回显、本地 tokenizer 优先加载,以及从本地 T5 配置构建网络后严格加载 VIMA checkpoint。

3. 准备模型权重

将 200M.ckpt 放到 VIMA 根目录。该文件不在 GitHub 中,预期信息为:

size:   1,566,105,525 bytes
sha256: cca52c2d8cbe8baa6278f50383f05eac310017543ccd07687cfa645f82a711c3

可用以下命令验证:

sha256sum /path/to/VIMA/200M.ckpt
python tools/verify_checkpoint_load.py /path/to/VIMA/200M.ckpt --device cuda

4. 运行任务

以下命令在 VIMA 根目录执行:

python scripts/vima_weighted_cli_demo.py --help

python scripts/vima_weighted_cli_demo.py \
  --task rotate \
  --partition placement_generalization \
  --ckpt 200M.ckpt --device cuda --seed 42 \
  --headless --auto-run

python scripts/vima_weighted_cli_demo.py \
  --task interactive_letters --other-letter G \
  --partition placement_generalization \
  --ckpt 200M.ckpt --device cuda --seed 7 \
  --headless
# 依次输入:put a in the box / rotate g 90 / put g in the box

python scripts/vima_weighted_cli_demo.py \
  --task same_texture \
  --partition novel_task_generalization \
  --ckpt 200M.ckpt --device cuda --seed 19 \
  --headless --auto-run

python scripts/vima_weighted_cli_demo.py \
  --task sweep_without_touching \
  --partition novel_task_generalization \
  --ckpt 200M.ckpt --device cuda --seed 31 \
  --headless --auto-run

证据预览

连续三条交互指令成功

interactive letters

约束清扫失败案例

sweep failure

结果边界

  • Ubuntu 24.04 是本机可运行的等价环境,不应写成指导书原指定版本。
  • same_texture 的第一步是未完成而非失败;第二步才满足完整成功判据。
  • sweep_without_touching 的失败来自实际仿真 failure=True,不是 tokenizer 联网错误。
  • 单个固定种子案例不足以形成一般性能结论;进一步研究需增加种子、重复次数和消融实验。

上游项目与致谢

本实验建立在 VIMA 与 VimaBench 官方项目之上。请同时遵守各上游仓库的许可证与引用要求。本仓库仅保存课程工作所需的脚本、覆盖文件和证据,不声称拥有上游实现。

About

Reproducible VIMA and VimaBench experiment 2 with sanitized evidence and scripts

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages