65 lines
2.7 KiB
Markdown
65 lines
2.7 KiB
Markdown
# VBench 评分环境与兼容适配
|
||
|
||
## 目标
|
||
|
||
将视频生成和评分解耦:保留已生成的 944 个 MP4,只建立独立评分环境并重复执行 VBench 评分。旧 `sglang`、`deploy` 和 `vbench` 环境不修改。
|
||
|
||
## 独立环境
|
||
|
||
- Conda prefix:`/root/.miniconda3/envs/vbench-score`
|
||
- Python:3.12.13
|
||
- PyTorch:2.11.0+cu130
|
||
- Transformers:4.36.2
|
||
- Tokenizers:0.15.2
|
||
- NumPy:1.26.4
|
||
- `timm==0.9.12`
|
||
- CUDA capability:SM 12.0
|
||
|
||
环境由 `scripts/rebuild_vbench_score_env.sh` 重建;`scripts/check_vbench_score_env.py` 验证 16 个评分模块、CUDA matmul、缓存权重和 DINO 本地加载。最终快照位于 `environment/vbench_score_setup_logs`。
|
||
|
||
## 适配记录
|
||
|
||
### 1. Matplotlib 依赖闭包不完整
|
||
|
||
旧评分环境在导入 `object_class` 时经 Matplotlib 报缺少 `pyparsing`。独立环境补齐 Matplotlib、Detectron2/GRIT 和 VBench 所需依赖,并用 `object_class` 8 卡真实评分验证。
|
||
|
||
### 2. Transformers/Tokenizers 与 Python 3.12
|
||
|
||
Transformers 4.33.2 依赖的 Tokenizers 0.13.x 没有 Python 3.12 wheel,服务器也没有 Rust 编译器。改为仍包含 VBench 所需 API 且提供 cp312 wheel 的 Transformers 4.36.2 + Tokenizers 0.15.2。
|
||
|
||
### 3. UMT human_action 与 timm
|
||
|
||
继承环境中的 timm 1.0.16 会由工厂向 VBench UMT 模型注入 `cache_dir`,触发:
|
||
|
||
```text
|
||
TypeError: VisionTransformer.__init__() got an unexpected keyword argument 'cache_dir'
|
||
```
|
||
|
||
VBench 自身约束为 `timm>=0.9,<=1.0.12`,最终锁定 `timm==0.9.12`。先做模型构造 RED/GREEN,再完成 `human_action` 单维度 8 卡真实评分,最后进入完整评分链。
|
||
|
||
### 4. 服务器缺少 zip 命令
|
||
|
||
16 维 JSON 已生成后,原脚本因系统没有 `zip` 命令而在收尾失败。编排脚本改用 Python 标准库 `zipfile`,不安装系统包、不重算任何维度,然后运行官方 `scripts/cal_final_score.py`。
|
||
|
||
## 只重跑评分
|
||
|
||
```bash
|
||
export HF_ENDPOINT=https://hf-mirror.com
|
||
export RUN_ID=h3-vbench-base-dense-tp2x4-20260826-run1
|
||
export ACTION=evaluate
|
||
export RUN_STATIC_FILTER=1
|
||
export VBENCH_REPO=/data/wxy/VBench
|
||
export VBENCH_PYTHON=/root/.miniconda3/envs/vbench-score/bin/python
|
||
bash scripts/run_h3_vbench_base_tp2x4.sh
|
||
```
|
||
|
||
完整评分先计算 15 个主维度,再用单 GPU 官方静态过滤,最后用 8 卡计算 temporal flickering 并合并成 16 维结果。日志里的 `-2/-3/-4.mp4` 缺失警告来自本次每 prompt 只生成一个样本,不是环境错误。
|
||
|
||
## 最终验收
|
||
|
||
- 944 个输入视频。
|
||
- 16/16 维存在且总分数值有限、位于 `[0,1]`。
|
||
- ZIP 只包含 `vbench_16_dimensions.json`,内容与磁盘 JSON 一致。
|
||
- 当前评分日志无 Traceback。
|
||
- 评分 tmux、Python 进程和 GPU 显存均已释放。
|