EvoVLM README

The project's README from github.com/zzzz7788990213-ops/EvoVLM. As one markdown file: README.md.

EvoVLM

Evolving Multimodal Inference Programs

Evolve the inference program. Keep the model frozen.

EvoVLM is a research project on LLM-guided, multi-objective evolutionary search for vision-language inference. It searches over prompts, image preprocessing, generation budgets, and answer extraction to improve the accuracy–latency trade-off on scientific chart understanding, without fine-tuning model weights.

中文:EvoVLM 在固定视觉语言模型权重的前提下,通过大模型引导的变异、实测评估和 Pareto 选择,迭代优化推理程序,在图表理解任务上探索准确率与推理效率的平衡。

Method · Results · Quick start · Technical report · Reproducibility

Method

The implementation follows the evolutionary-algorithm pattern of mutation, evaluation, and selection, with a constrained program representation:

  1. Start from manually designed inference programs for Qwen3-VL-2B-Instruct and Qwen3-VL-2B-Thinking.
  2. Use a local Qwen model to rank a frozen catalog of typed, focus-specific mutations. A trusted renderer turns the selected configuration into Python.
  3. Evaluate candidate programs on small search and selection subsets, recording correctness, latency, errors, and execution provenance.
  4. Apply Pareto-based selection to retain useful accuracy–latency trade-offs and continue the next generation.
  5. Export selected programs and verify their recorded evaluation evidence.

The recorded search is deliberately small: two generations, with at most six children per model population. It is not unrestricted code generation, weight training, or a claim to implement a named algorithm such as NSGA-II in full. The implementation's distinguishing choices are constrained LLM-guided mutations, executable inference programs, and fail-closed evidence verification.

Results

Recorded results on Dev128 and a separate Speed32 timing protocol:

Program Dev128 correct Accuracy Speed32 median latency ↓
Baseline Instruct 51 / 128 39.84% 14.54 s
Manual Instruct 78 / 128 60.94% 15.44 s
Evolved Instruct 78 / 128 60.94% 14.07 s
Manual Thinking 23 / 128 17.97% 20.04 s
Evolved Thinking 44 / 128 34.38% 17.91 s

Relative to its manual seed, Evolved Instruct preserves the recorded accuracy with an 8.9% lower median latency. Evolved Thinking improves accuracy by 16.41 percentage points with a 10.6% lower median latency.

Numbers come from the sealed metric trace, not from a new run made for this GitHub release. Speed32 first takes the median across three repeats for each query, then the median across the 32 queries. The unmodified Thinking baseline was timeout-censored at 7,200 seconds; a completed Dev128 accuracy is not available for it.

Interpretation matters: Dev128 is a public validation subset, not an untouched test set. Two exact queries overlap the evolution-used set, and eight Dev128 queries share two figures with it. These are small-sample development results, not a full CharXiv leaderboard result or evidence of generalization. Latency is specific to the recorded hardware and software environment.

Quick start

git clone https://github.com/zzzz7788990213-ops/EvoVLM.git
cd EvoVLM/research/evolving-vlm-inference-main

# CPU-only: replay recorded evidence, then run the final checks.
python3 -B -m evaluation.portable_reproduce
bash reproduce.sh check

# CPU-only: import the exported programs and verify their interface.
bash reproduce.sh smoke

The CPU checks do not require model weights and do not rerun inference. The historical directory name is retained because some verification routines bind to it. Keep research/evolving-vlm-inference-main intact.

Always specify a mode: bash reproduce.sh without a mode requests a fresh GPU reproduction. It is not the CPU verification command.

Run inference

GPU inference requires PyTorch, Transformers, the other dependencies, and the external model snapshots. The recorded environment is documented in requirements.lock.txt; it includes Linux/CUDA-specific packages and is not a universal macOS lockfile.

See the runtime guide for pinned model downloads, local overrides, offline behavior, and example commands. Model weights are not included in this repository.

Repository layout

EvoVLM/
├── README.md
├── THIRD_PARTY_NOTICES.md
├── PUBLICATION_PROVENANCE.json
└── research/evolving-vlm-inference-main/
    ├── evolution/           # typed mutations, local provider, search, selection
    ├── evaluation/          # protocols, identity checks, semantic verification
    ├── tests/closeout/      # portability, evidence, and tamper tests
    ├── results/            # preserved experiment records and journals
    ├── data/               # fixed manifests and reproduction image assets
    ├── charxiv/            # upstream data, attribution, and selected images
    ├── best_*.py           # selected inference programs
    ├── reproduce.sh        # explicit CPU and GPU modes
    └── report.pdf          # archived technical report

Reproducibility and scope

The repository includes source code, packaged data subsets, selected image assets, and recorded evidence. Model snapshots and the execution environment are external dependencies. This is not a self-contained model distribution or the complete CharXiv image dataset.

Verification covers file hashes, critical model/processor identity, cross-bound attempt records, and recomputation of metrics from per-query evidence. Missing historical fields are recorded as legacy caveats rather than invented.

This public edition changes documentation and adds missing upstream license texts; it does not change inference code, model settings, selected programs, or recorded results. The original local archive is preserved separately. The publication provenance identifies the parent archive and every in-package publication change.

Historical evidence retains original run identifiers and server-path strings for auditability. Those paths are not local setup instructions. The archived report retains its original title and formatting; repository publication does not imply conference submission or acceptance.

Attribution and reuse

EvoVLM uses Qwen model families and CharXiv data. Upstream authorship and bibliographic references are retained; their inclusion does not imply project endorsement or collaboration. See third-party notices.

No new repository-wide license is imposed by this publication. Existing third-party licenses continue to apply to their respective materials.

EvoVLM (zzzz7788990213-ops/EvoVLM)

Searching Database…

332 ·GitHub
这是什么东西?EvoVLM 是一个研究项目,在视觉语言推理程序上运行由大语言模型引导的多目标进化搜索。它的目标是在保持模型权重冻结的前提下,优化科学图表理解上准确率与延迟之间的权衡。
它说“进化推理程序”——到底改的是什么?权重保持冻结。搜索调整的是提示词、图像预处理、生成预算和答案提取,并由一个可信的渲染器把每份选定的配置转换成可运行的 Python 程序。
我怎么运行它?运行 bash reproduce.sh 并务必指定一个 mode:CPU 验证不需要模型权重,而不带 mode 调用则会触发一次全新的 GPU 复现。另外请保持 research/evolving-vlm-inference-main 这个目录名不变,因为部分验证流程会绑定到它。
GPU 推理这条路径需要准备什么?需要 PyTorch、Transformers、其余依赖项,以及外部的 Qwen 模型快照——权重并不包含在仓库里。requirements.lock.txt 中记录的环境包含 Linux/CUDA 专属的包,并不是一份通用的 macOS 锁文件。
我能把结果表当成排行榜上的获胜来读吗?不能。Dev128 是一个公开的验证子集,其中的查询与进化过程用到的数据有重叠,而且延迟数据只在一种硬件配置上测得——作者称这些是小样本的开发结果,并非 CharXiv 排行榜上的成绩,也不能证明泛化能力。
没有 GPU 我能试试别的吗?可以——CPU 验证检查既不需要模型权重,也不需要重新跑推理。真正的推理及其延迟数据来自 Linux/CUDA 的 GPU 环境。
它基于哪些模型?种子是针对 Qwen3-VL-2B-Instruct 和 Qwen3-VL-2B-Thinking 手工设计的推理程序,在 CharXiv 图表数据上评估。变异由一个本地 Qwen 模型从一组类型化、聚焦特定方面的冻结变异目录中挑选来排序,而不是自由生成。
进化搜索的规模有多大?刻意保持较小:记录的运行覆盖两代,每个模型种群最多六个子代。它是带约束的、由大语言模型引导的变异,配以可执行程序和 fail-closed 的证据验证——并不是不受限制的代码生成,也不是完整的 NSGA-II 实现。
进化相比手工种子提升了多少?Evolved Instruct 在 Dev128 上保持了手工种子 60.94% 的准确率,同时在 Speed32 上把中位延迟降低了 8.9%;Evolved Thinking 提升了 16.41 个准确率点,延迟降低 10.6%。这些数字来自密封保存的指标记录,不是重新运行的结果。
可复现性检查都验证了什么?文件哈希、关键模型/处理器的身份一致性、跨边界的尝试记录,以及基于每条查询证据对指标的重新计算。缺失的历史字段会被记录为遗留说明,而不是凭空编造。
Size
7.6 MB
Stars
332
Updated
CommitOct 02
Age
16d
Commits · 90 Days