《具身大模型理论》实验 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/cu121git 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 ..在本仓库根目录执行,并将 /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。
将 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以下命令在 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- Ubuntu 24.04 是本机可运行的等价环境,不应写成指导书原指定版本。
same_texture的第一步是未完成而非失败;第二步才满足完整成功判据。sweep_without_touching的失败来自实际仿真failure=True,不是 tokenizer 联网错误。- 单个固定种子案例不足以形成一般性能结论;进一步研究需增加种子、重复次数和消融实验。
本实验建立在 VIMA 与 VimaBench 官方项目之上。请同时遵守各上游仓库的许可证与引用要求。本仓库仅保存课程工作所需的脚本、覆盖文件和证据,不声称拥有上游实现。

