RSI-Qwen

wadeKeithMIT活跃维护

在官方 DocVQA 基准上让智能体自动迭代 Qwen3-VL 的训练代码,省去手工调参和实验设计,支持 NVIDIA 多卡与 Apple Silicon。

Autonomous Qwen3-VL training-code research on the official DocVQA benchmark. main: NVIDIA multi-GPU, mlx: Apple Silicon/MPS.

1.0.0发布于 2026-04-14 17:38 UTC212star34fork同步于 2026-11-12 00:01 UTC

怎么上手

由 README 提炼,执行前请确认
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
uv run python prepare.py
./run_experiment.sh | tee run.log
硬件要求按 README 说明

main 分支面向 NVIDIA/CUDA 多 GPU,使用 torchrun 并支持 DeepSpeed 配置;mlx 分支面向 Apple Silicon/MPS。README 未给出具体显存要求。

支持 Apple Silicon需要 CUDA多卡 / 张量并行
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

在 DocVQA 官方基准上让 agent 自动迭代 Qwen3-VL 训练代码的自主研究循环

在官方 DocVQA 基准上让智能体自动迭代 Qwen3-VL 的训练代码,省去手工调参和实验设计,支持 NVIDIA 多卡与 Apple Silicon。

核心能力

  • 固定基准与评估器,只允许 agent 修改 train.py
  • 每次训练后在完整 validation 上算 mean ANLS 并只保留真实提升
  • prepare.py 一键下载数据集与模型快照
  • main 分支用 torchrun 与 DeepSpeed 配置跑多卡
  • 提供盲测集导出与提交校验脚本

容易踩的坑

需先跑 prepare.py 下载数据集和模型快照,否则训练无法启动;main 与 mlx 分支入口不同,Mac 上要用 mlx 分支的 uv run python run_experiment.py;agent 只应改 train.py,改动 evaluate.py 或 src/ 会破坏基准契约。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

1 个版本1.0.0
  1. 1.0.0autoresearch-qwen最新正式版2026-04-14 · 2026-04-14 17:38 UTC

    这个版本没有写更新说明。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    RSI-Qwen

    Autonomous research loop for improving Qwen/Qwen3-VL-4B-Instruct on the official HuggingFaceM4/DocumentVQA benchmark.

    The repo is designed for agentic training research: the benchmark and evaluator stay fixed, while an agent iterates on train.py, runs training, measures the result on the full validation split, and keeps only real gains. The project is inspired by karpathy/autoresearch, but scoped to a concrete public VLM benchmark with a reproducible contract.

    If this project is useful for your research, evals, or agent workflows, please star the repo.

    Branches

    This repository now contains the two previously separate codebases as different branches:

    BranchTarget hardwareStatus
    mainNVIDIA / CUDA multi-GPUPrimary branch. Uses torchrun, supports DeepSpeed configs, and is the recommended branch for fast experiment cycles.
    mlxApple Silicon / MPSHistorical branch imported from the former autoresearch-qwen-mlx repository and preserved here as the Mac-focused variant.

    Use the README on each branch for branch-specific commands. On main the entrypoint is ./run_experiment.sh; on mlx it is uv run python run_experiment.py.

    Why This Repo Exists

    • Fixed benchmark: full official DocVQA train, validation, and test splits
    • Fixed evaluator: validation score is always computed by the repository evaluator
    • One mutable surface: agents are expected to edit train.py
    • Reproducible loop: prepare, train, evaluate, keep or discard, repeat
    • Public benchmark mindset: improvements should come from better training decisions, not from moving the goalposts

    Benchmark Contract

    ComponentContract
    Base modelQwen/Qwen3-VL-4B-Instruct
    DatasetHuggingFaceM4/DocumentVQA official splits
    Training splitFull train split
    Validation splitFull validation split
    Test splitFull blind test split
    MetricMean ANLS on the full validation split
    Mutable filetrain.py
    Fixed filesevaluate.py, src/, benchmark contract, submission tooling

    More benchmark details are documented in benchmarks/README.md.

    How The Loop Works

    prepare.py          Download dataset + model snapshot
          |
    train.py            Mutable training code (the agent edits this)
          |
    evaluate.py         Fixed validation evaluator / blind test exporter
          |
    run_experiment.sh   One full train -> eval iteration on main
    

    The only objective is to maximize val_score, defined as mean ANLS on the full official validation split.

    Quick Start (main)

    curl -LsSf https://astral.sh/uv/install.sh | sh
    uv sync
    uv run python prepare.py
    uv run autoresearch-qwen doctor
    uv run python evaluate.py --base-only --split validation
    ./run_experiment.sh | tee run.log
    

    Useful follow-up commands:

    uv run python analysis.py
    uv run python submit_test.py
    

    Repository Layout

    train.py                            Mutable training code
    evaluate.py                         Fixed evaluator
    run_experiment.sh                   One-command train -> eval pipeline on main
    analysis.py                         Result visualization
    prepare.py                          Dataset + model downloader
    submit_test.py                      Blind test export + submission packaging
    check_submission.py                 Submission validator
    program.md                          Full agent protocol
    benchmarks/README.md                Benchmark definition
    configs/                            DeepSpeed configs for multi-GPU runs
    src/autoresearch_qwen/              Fixed library code
    

    Running An Agent

    The full experiment protocol lives in program.md. A practical starting prompt is:

    Read the entire repository, especially README.md and program.md. You may read all files for context, but only edit train.py. Run `uv run autoresearch-qwen doctor --json`, record a `--base-only` validation baseline, then start the autoresearch loop. Parse `artifacts/last_result.json` after each run and keep only changes that improve val_score.
    

    Results, Analysis, and Submission

    • artifacts/last_result.json stores the latest train/eval result payload
    • analysis.py plots experiment progress from accumulated results
    • submit_test.py exports predictions for the blind DocVQA test split
    • check_submission.py validates a submission bundle locally before upload

    Contributing

    Issues and pull requests are welcome, especially for:

    • stronger training recipes that respect the benchmark contract
    • better experiment tooling and reproducibility
    • clearer docs and onboarding
    • hardware-specific improvements that belong on a dedicated branch

    If you want to change the benchmark contract itself, open an issue first so the rationale is explicit.

    Acknowledgements

    Star Trend

    Star History Chart

    License

    MIT