最新提交
历史
7 次提交7 次提交文件夹和文件
| 名称 | 名称 | 最后提交信息 | 最后提交日期 |
|---|---|---|---|
| .github/workflows | .github/workflows | ||
| assets | assets | ||
| 数据合成 | 数据合成 | ||
| 评测 | 评测 | ||
| verl | verl | ||
| .gitignore | .gitignore | ||
| LEGAL.md | LEGAL.md | ||
| LICENSE | LICENSE | ||
| README.md | README.md | ||
仓库文件导航
无需缩放的缩放 v2(ZwZ2)📃 论文 | 🏠 项目 | 🤗 ZwZ2-RL-VQA 🤗 ZwZ2-4B | 🤗 ZwZ2-9B | 🤗 ZwZ2-27B
✨ 简介
无需缩放的缩放 v2 跨区域连接细粒度视觉证据。 我们训练 ZwZ2-4B/9B/27B ,在 20.4K 条经过验证的多区域 VQA 样本上使用强化学习。训练使用完整图像;推理无需任何缩放工具。 这些模型可迁移到感知、空间推理、长上下文理解和多模态智能体任务。
⚙️ 方法
EvidenceConnect 将来自 3–7 个图像区域的证据转化为可验证的监督信号:
- 发现有依据的区域,并合成能够连接其证据的问题。
- 通过跨模型一致性和自适应区域消融测试来验证答案。
- 在完整图像视图上使用 GRPO 训练,无需监督微调。
📊 性能
结果基于 六大领域的 25 个基准测试 (准确率,%)。
🤗 模型与数据
| 模型 | 基础模型 |
|---|---|
| ZwZ2-4B | Qwen3.5-4B |
| ZwZ2-9B | Qwen3.5-9B |
| ZwZ2-27B | Qwen3.6-27B |
三个规模均使用相同的 20.4K 条训练样本,由 SA-1B 图像合成,并经跨模型验证。特权裁剪仅在数据构建期间使用;策略从完整图像视图中学习。
🚀 快速开始
| 组件 | 目录 |
|---|---|
| 数据合成 | data_synthesis/ |
| 训练 | verl/ |
| 评测 | eval/ |
1. 数据合成(data_synthesis/)
安装配置
cd data_synthesis cp configs/local_env.sh.example configs/local_env.sh # then edit keys/model names pip install openai httpx pillow pyarrow pytest
在以下文件中设置你的 API URL、密钥和模型名称: configs/local_env.sh (已加入 gitignore)。
运行
唯一的输入是一个图像文件夹:
# 1) Stage 01 — scan the image folder, build a manifest, and drop
# low-content images (resolution / entropy / edge density / std-dev):
python scripts/01_filter_manifest.py \
--image_folder /path/to/images \
--output_jsonl data/filtered_manifest.jsonl
# 2) Continuous synthesis over the filtered manifest:
bash run_pipeline_continuous.sh [TARGET_VALID] [BATCH_SIZE] [MAX_BATCHES] [MANIFEST]
# MANIFEST defaults to data/filtered_manifest.jsonl (the stage-01 output)
导出训练数据
合成记录会导出为 verl 可直接使用的 parquet 文件,用于强化学习训练:
python scripts/05_export_dataset.py \
--validated_jsonl data/all_valid.jsonl \
--output_parquet mcq_train.parquet \
--format mcq
--format mcq 是下方训练启动器所使用的多项选择格式。任何 verl 格式的验证 parquet 都可以用作评估集。
测试
pytest -q tests/
2. 训练(verl/)
使用 verl进行 GRPO 训练。 根据你的基础模型选择启动器:
| 模型 | 脚本 |
|---|---|
| Qwen3.5-4B | verl/train_zwz2_qwen3_5_4b.sh |
| Qwen3.5-9B | verl/train_zwz2_qwen3_5_9b.sh |
| Qwen3.6-27B | verl/train_zwz2_qwen3_6_27b.sh |
安装配置
pip install -e ./verl # install the vendored verl framework
运行
设置模型和数据集路径:
cd verl MODEL_PATH=/path/to/Qwen3.5-9B \ TRAIN_FILE=/path/to/mcq_train.parquet \ TEST_FILE=/path/to/val.parquet \ bash train_zwz2_qwen3_5_9b.sh
其他规模以相同方式运行;检查点、日志和 rollout 转储会写入 outputs/<experiment-name>/ 下(可通过 EXPERIMENT_ROOT).
🧪 3. 模型评测(eval/)
cd eval python -m pip install -e '.[api,data]'
1. 配置
python -m zwz_eval init --directory local/my-eval --bench hr4k,hr8k
编辑 local/my-eval/model.json ,填入你的模型/评判路径、身份标识、GPU 设置
和输出目录。在
local/my-eval/datasets.json中设置已下载的标注/图像路径和输入格式。运行前请替换所有示例值。
2. 准备数据
下载并解压基准测试,然后进行准备:
bash scripts/prepare_benchmarks.sh local/my-eval
这会写入 local/my-eval/ready.json ,且不会修改原始下载内容。
3. 评估
bash scripts/evaluate.sh local/my-eval
该命令会依次评估已配置的基准测试,管理模型启动、推理、所需的评判以及服务清理。要选择子集,请追加 ID,例如 hr4k,hr8k.
基准数据格式
MMStar、BabyVision、VStar、HR-4K、HR-8K、MME-RealWorld-en/cn、ZoomBench、Perception-Bench、TreeBench、O3-Bench 和 CountQA 需要 JSONL 或 JSON 数组,并包含 images, query 以及 response 字段:
{
"images": ["/path/to/images/image.png"],
"query": "<image>Original question and answer choices",
"response": "Reference answer"
}
使用 format: normalized 这些基准测试;保持原始问题、答案、图像顺序和可选字段不变。其他基准测试使用其下载的格式。参见 eval/README.md 有关基准测试 ID 表、下载说明、数据格式和可选 API 设置,请参阅 eval/README.md。AgentVista 使用相同的工作流程,并且额外需要互联网访问以使用搜索/访问工具。
🙏 致谢
本项目基于以下工作构建:
- 用于基础模型的 Qwen3.5 和 Qwen3.6。
- 用于强化学习训练框架。 用于强化学习训练框架。
📮 联系方式
如有问题或合作意向,请联系:
- 赖伟: waltonfuture@sjtu.edu.cn
- Yatai Li: zenith-knecht@sjtu.edu.cn
- 梁波何: liangbo.hlb@antgroup.com
- Jun Lan: 蓝军:
- 张卓生: 张卓生:zhangzs@sjtu.edu.cn
- 黄炜然: weiran.huang@sjtu.edu.cn
如果您在数据集路径或评估设置方面遇到问题,请分享您的反馈或贡献。感谢您的支持!
📄 许可证
Apache 许可证 2.0。参见 许可证.
