chancharikmitra/CHAI

GitHub: chancharikmitra/CHAI

CHAI 通过人机协同监督与结构化描述规范,提升开源视觉语言模型在视频描述生成、评估意见生成及奖励建模任务上的精度。

Stars: 139 | Forks: 19

CHAI Banner

CHAI Logo

**CVPR 2026 Highlight 论文的官方代码库:** *“通过人机协同监督构建精准的视频语言”*

Paper Project Page Dataset Model HF Paper

[Zhiqiu Lin](https://linzhiqiu.github.io/)¹, [Chancharik Mitra](https://chancharikmitra.github.io/)¹, [Siyuan Cen](https://sy77777en.github.io/)¹, [Isaac Li](https://www.linkedin.com/in/isaac-li-bb381b284/)¹, Yuhan Huang¹, [Yu Tong Tiffany Ling](https://www.yttldesign.com/)¹, [Hewei Wang](https://github.com/WangHewei16)¹, Irene Pi¹, Shihang Zhu¹, Ryan Rao¹, George Liu¹, Jiaxi Li¹, Ruojin Li¹, Yili Han¹, [Yilun Du](https://yilundu.github.io/)², [Deva Ramanan](https://www.cs.cmu.edu/~deva/)¹ ¹卡内基梅隆大学   ²哈佛大学 ### 更新 - **2026-05-13**:发布了评估代码,更新了测试集,并发布了 [CHAI SFT 8B 模型](https://huggingface.co/chancharikm/CHAI_SFT_model_8b)。 # CHAI (基于 Critique 的人机协同监督) ## 概述 我们发布了开源数据集、基准测试和训练方案,它们建立在涵盖**主体、场景、运动、空间布局和镜头动态**的结构化描述规范之上——这些规范基于与专业电影制作人共同开发的数百种视觉原语。由此产生的 critique 和偏好提供了丰富的监督信号,通过 SFT、DPO 和推理时扩展,在描述生成、奖励建模和 critique 生成这三项任务上改进开源 VLM (Qwen3-VL)。 ## 快速开始 ### 前置条件 - Python 3.10+ - Conda(推荐) - 用于模型推理的 GPU(已在 NVIDIA A6000 上测试) ### 安装 ``` # 克隆 repository git clone https://github.com/TODO/CHAI.git cd CHAI # 创建并激活 conda 环境 conda create -n chai python=3.10 -y conda activate chai # 安装 conda 依赖 conda install -c conda-forge ffmpeg=6.1.2 -y # 安装 package pip install --no-build-isolation -e . ``` ### 环境变量(可选) 如果你想使用 LLM judge 进行生成评估,请在项目根目录下创建一个 `.env` 文件: ``` OPENAI_API_KEY=your-openai-key ``` 默认的评估流水线不需要此文件,它使用的是 BLEU-4 和 ROUGE-L。 ### 下载评估数据和视频 评估数据和视频托管在 HuggingFace 上。有关每个文件包含的内容详情,请参阅下方的[评估数据](#evaluation-data)。 ``` # 下载完整数据集(视频 + evaluation JSONs) hf download chancharikm/CHAI_testset --repo-type dataset --local-dir ./eval_data ``` 这将会在 `eval_data/` 目录中填充测试集划分、特定任务的评估文件以及所有相应的视频。 ## 评估数据 所有评估文件都位于 `eval_data/` 目录下。我们提供了原始的测试集划分和三个针对特定任务重新格式化的版本。相应的视频以及所有测试集划分文件的副本托管在 HuggingFace 的 [chancharikm/CHAI_testset](https://huggingface.co/datasets/chancharikm/CHAI_testset) 上。 ### `test_split.json` 原始评估数据。每个条目包含一个视频路径、模型生成的 **pre-caption**(预描述)、人类撰写的 **critique**(评估意见)、修改后的 **final caption**(最终描述,即 post-caption)、一个 **pre-caption score**(预描述得分,1-5)、**caption type**(描述类型,例如:Subject, Scene, Motion, Spatial, Camera)以及相关的元数据。此文件是下方所有特定任务评估集的衍生基础。 ### `eval_caption_generation_test.json` 为**描述生成** (caption generation) 任务格式化。每个样本将一个视频与一个任务指令配对作为 user 轮次,并将最终 (post) 描述作为目标 assistant 的回复。用于评估模型直接从视频生成高质量描述的能力。 ### `eval_critique_generation_test.json` 为 **critique 生成** (critique generation) 任务格式化。每个样本提供一个视频、一个任务指令以及一个待进行 critique 的描述作为 user 轮次。目标 assistant 的回复是一条 critique。对于得分低于 5 的 pre-caption,会生成两个训练对:一个将 pre-caption 与其对应的人类 critique 配对,另一个将最终描述与一个“完美描述”的哨兵 critique (sentinel critique) 配对,以此教导模型既能识别错误,也能判断出何时描述不需要修改。 ### `eval_caption_yes_or_no_test.json` 为**奖励建模**(二元对齐打分)任务格式化。给定一个视频、一个任务指令和一个候选描述,模型必须通过回答 **"Yes"** 或 **"No"** 来判断该描述是否与视频相符。对于得分低于 5 的 pre-caption,会生成两个样本:将最终描述作为正例,将 pre-caption 作为负例,为学习描述质量提供均衡的监督信号。 ## 运行评估 评估流水线支持三项任务:**描述生成**、**critique 生成**和**奖励建模**(描述 yes/no 评分)。一个简单的 bash 脚本可以统筹管理各个模型 checkpoint 的生成和评估。该脚本还支持在每个 GPU 上启用多个并行 worker 以加快推理速度。 ### 快速开始 ``` # 使用默认设置运行完整 pipeline bash run_unified_evaluations.sh ``` ### 配置 编辑 `run_unified_evalurations.sh` 的顶部来配置你的运行参数: ``` # GPU 设置 GPUS="0,1,2,3,4,5,6,7" WORKERS_PER_GPU=2 # 数据 DATA_FILE="eval_data/test_split.json" VIDEO_DIR="eval_data/captioning_videos" # 待评估的模型(base 或 base;checkpoint) MODELS=( "qwen3-vl-8b" # base model "qwen3-vl-8b;chancharikm/CHAI_SFT_model_8b" # fine-tuned ) # 评分格式(通过 unified_eval.py 进行 sequential evaluation) SCORING_FORMATS=( "caption_yes_or_no" ) # 生成格式(parallel evaluation) GENERATION_FORMATS=( "caption_generation" "critique_generation" ) ``` ### 流水线步骤 对于每个模型,流水线会运行以下步骤: 1. **打分生成** — 使用 `caption_yes_or_no` 格式计算每个描述的 VQA 得分(P(Yes) 的概率) 2. **打分评估** — 根据生成的得分计算成对准确率 (pairwise accuracy) 3. **描述/critique 生成** — 为测试集视频生成描述和 critique 4. **生成评估** — 默认使用 BLEU-4 和 ROUGE-L 评估输出与真实结果的契合度,或者可选择使用 LLM judge 作为替代方案(需要在 `.env` 中配置 `OPENAI_API_KEY`,并在脚本中设置 `USE_LLM_JUDGE="true"`) ### 输出结构 ``` evaluation_outputs/ ├── inference/ │ ├── scoring__.json │ └── generation__.json └── evaluation/ ├── scoring_eval__.json └── generation_eval__.json ``` ### 项目结构 ``` CHAI/ ├── assets/ # Banner, logo ├── eval_code/ # Evaluation modules │ ├── __init__.py │ ├── constants.py # Task constants and format definitions │ ├── formats.py # Format conversion utilities │ ├── parallel_unified_eval.py # Multi-worker evaluation │ ├── parallel_unified_generation.py # Multi-GPU generation │ ├── unified_eval.py # Single-process evaluation │ ├── unified_generation.py # Single-process generation │ └── video_caption_api.py # Video captioning API ├── eval_data/ # Evaluation data and videos │ ├── test_split.json │ ├── eval_caption_generation_test.json │ ├── eval_critique_generation_test.json │ ├── eval_caption_yes_or_no_test.json │ └── captioning_videos/ ├── pyproject.toml ├── run_unified_evaluations.sh # Main evaluation entry point └── README.md ``` ## 引用 如果您觉得这项工作有帮助,请引用: ``` @inproceedings{chai2026, title = {Building a Precise Video Language with Human--AI Oversight}, author = {Zhiqiu Lin and Chancharik Mitra and Siyuan Cen and Isaac Li and Yuhan Huang and Yu Tong Tiffany Ling and Hewei Wang and Irene Pi and Shihang Zhu and Ryan Rao and George Liu and Jiaxi Li and Ruojin Li and Yili Han and Yilun Du and Deva Ramanan}, booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)}, year = {2026} } ``` ## 📢 合作与联系 我们正在积极利用更大规模的数据集和更强大的视频理解模型来推进 CHAI。我们欢迎与研究视频理解、描述生成以及面向专业级视频内容的多模态 agent 的研究人员和从业者进行合作与寻求资金支持。 如果您有兴趣获取改进后的数据或模型,请联系: - Zhiqiu Lin — [zhiqiulin98@gmail.com](mailto:zhiqiulin98@gmail.com) - Chancharik Mitra — [cmitra@andrew.cmu.edu](mailto:cmitra@andrew.cmu.edu) 或者[提交一个 GitHub Issue](../../issues)。 ## 致谢 This material is based upon work supported by the National Science Foundation Graduate Research Fellowship Program under Grant No. DGE2140739. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. ## 许可证
标签:逆向工具