分支标签打开更多操作菜单

最新提交

 

历史

7 次提交7 次提交

文件夹和文件

名称名称最后提交信息最后提交日期
.github/workflows.github/workflows  
assetsassets  
数据合成数据合成  
评测评测  
verlverl  
.gitignore.gitignore  
LEGAL.mdLEGAL.md  
LICENSELICENSE  
README.mdREADME.md  

仓库文件导航

无需缩放的缩放 v2(ZwZ2)

📃 论文 | 🏠 项目 | 🤗 ZwZ2-RL-VQA 🤗 ZwZ2-4B | 🤗 ZwZ2-9B | 🤗 ZwZ2-27B

✨ 简介

无需缩放的缩放 v2 跨区域连接细粒度视觉证据。 我们训练 ZwZ2-4B/9B/27B ,在 20.4K 条经过验证的多区域 VQA 样本上使用强化学习。训练使用完整图像;推理无需任何缩放工具。 这些模型可迁移到感知、空间推理、长上下文理解和多模态智能体任务。

ZwZ-v2 benchmark results

⚙️ 方法

EvidenceConnect 将来自 3–7 个图像区域的证据转化为可验证的监督信号:

  1. 发现有依据的区域,并合成能够连接其证据的问题。
  2. 通过跨模型一致性和自适应区域消融测试来验证答案。
  3. 在完整图像视图上使用 GRPO 训练,无需监督微调。

EvidenceConnect data construction pipeline

📊 性能

结果基于 六大领域的 25 个基准测试 (准确率,%)。

Full results table for 25 benchmarks

🤗 模型与数据

模型 基础模型
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 使用相同的工作流程,并且额外需要互联网访问以使用搜索/访问工具。


🙏 致谢

本项目基于以下工作构建:

📮 联系方式

如有问题或合作意向,请联系:

如果您在数据集路径或评估设置方面遇到问题,请分享您的反馈或贡献。感谢您的支持!

📄 许可证

Apache 许可证 2.0。参见 许可证.

关于

未提供描述、网站或主题。

资源

自述文件Apache-2.0 许可证活动自定义属性

星标

1 星标

关注者

0 关注

分支

0 分支报告仓库

发布

包

贡献者

语言