sskj-h3/vbench-base/VBENCH_SCORING_ADAPTATIONS.md

65 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VBench 评分环境与兼容适配
## 目标
将视频生成和评分解耦:保留已生成的 944 个 MP4只建立独立评分环境并重复执行 VBench 评分。旧 `sglang``deploy``vbench` 环境不修改。
## 独立环境
- Conda prefix`/root/.miniconda3/envs/vbench-score`
- Python3.12.13
- PyTorch2.11.0+cu130
- Transformers4.36.2
- Tokenizers0.15.2
- NumPy1.26.4
- `timm==0.9.12`
- CUDA capabilitySM 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 显存均已释放。