HyperEyes: Dual-Grained Efficiency-Aware Reinforcement Learning for Parallel Multimodal Search Agents

Paper: arXiv:2605.07177 Code: DeepExperience/HyperEyes Code reference: main @ 61548258 (2026-05-23)

1. Motivation (研究动机)

现有 Multimodal Search Agent 的核心问题不是“会不会搜索”,而是“以什么交互形态搜索”。DeepEyes-V2、MMSearch-R1、WebWatcher、VDR、REDSearch 等 agent 通常沿用 ReAct 式串行轨迹:先定位一个实体、调用一次工具、读回观察,再定位下一个实体。对多实体视觉问题或多约束检索问题来说,这会把本来互相独立的子检索拆成长链条,造成两类损失:第一,工具调用轮数随实体数增长,延迟和推理成本急剧上升;第二,越长的检索链越容易累积 distractor evidence,后续回答会被早期噪声污染。

Figure 1 解读:左侧传统 multimodal search agent 把“裁剪实体—搜索—读证据”重复执行多次;右侧 HyperEyes 把多个目标区域一次性作为 image_searcharea 列表传入,并把多个独立文本子问题一次性作为 text_searchinput 列表传入。图中强调的不是单纯并发工程优化,而是 action space 本身允许模型在一个 reasoning turn 中表达“多实体并行检索”。

更深层的动机是:即使模型具备并行工具调用接口,也不等于它会自动学会高效调用。只用最终 accuracy 做 RL reward 时,模型可能把并行能力退化成 brute-force over-search:一次 turn 里塞入过多检索、或在多轮里反复补查,accuracy 偶尔提升但成本不可控。因此这篇论文把 inference efficiency 提升为训练目标的一部分,要求 agent 在保持正确率的同时学习“search wider, not longer”。

该问题值得研究,是因为多模态搜索 agent 的真实应用往往面对开放世界、可验证信息和多个视觉实体:电商/旅游图片问答、体育图像统计、图像中人物/物体的外部知识检索等。若每个实体都要串行检索,延迟和工具费用会让 agent 难以实时部署;若能够在单轮完成 grounded retrieval,则可以把 grounded multimodal QA 从“深而慢的搜索链”变成“宽而短的检索批处理”。

2. Idea (核心思想)

HyperEyes 的核心 insight 是:多实体 multimodal search 的瓶颈不只在模型推理能力,而在 action space 与训练信号错配。论文把视觉 grounding 和 image retrieval 合并成一个 Unified Grounded Search (UGS) 原子动作,再用 trajectory-level 的效率 reward 和 failed-rollout token-level distillation 同时约束“少轮数、少冗余、保留正确中间步骤”。

关键创新可以概括为三点:第一,UGS 允许 image_search(image_id, area=[[...], ...]) 一次处理多个 normalized boxes,并允许 text_search(input=[...]) 一次处理多个独立 query;第二,Parallel-Amenable Data Synthesis + Progressive Rejection Sampling 先给 SFT 阶段提供短而正确的并行轨迹;第三,Dual-Grained Efficiency-Aware RL 用 TRACE 奖励压缩 tool-call cost,用 OPD 在失败轨迹上从 235B teacher 注入 token-level 修正。

与 DeepEyes-V2 的区别很具体:DeepEyes-V2 依赖 crop-then-search 的串行 pipeline,agent 需要先产出 crop,再对 crop 做 image search;HyperEyes 则把 box list 作为 image search 参数,让模型直接表达“这些区域都需要检索”。与只做 accuracy reward 的 GRPO agent 相比,HyperEyes 的 TRACE 不是奖励“多搜就可能答对”,而是根据每个样本的参考工具成本动态收紧效率边界,正确但冗余的轨迹也只能拿到较低或负向的 tool reward。

3. Method (方法)

3.1 Overall framework:UGS + 数据合成 + 双粒度 RL

Figure 2 解读:框架分两阶段。上半部分是 Parallel-Amenable Data Synthesis:先从 public benchmarks、自合成 visual multi-entity / textual multi-constraint 任务得到 271k QA pool,再用 Progressive Rejection Sampling 选出 30k 短成功轨迹做 SFT。下半部分是 Dual-Grained Efficiency-Aware RL:GRPO 采样多条 rollout,TRACE 在 trajectory level 奖励正确且低成本的轨迹,OPD 在 failed rollouts 上调用 frozen teacher 给 token-level reverse KL 信号。

直觉上,SFT 负责把模型从普通 MLLM 拉到“能按 schema 并行调用工具”的 cold-start 区域;TRACE 负责把“能调用”进一步变成“愿意少调用、并且不在单轮塞满无用检索”;OPD 负责避免 sparse reward 把失败轨迹中正确的 reasoning / tool-call token 一起惩罚掉。这三个模块分别处理可行性、效率边界、credit assignment,少一个都会暴露不同 failure mode:无 SFT 时 schema 和并行行为不稳定;无 TRACE 时 tool calls 膨胀;无 OPD 时 30B student 很难从失败轨迹中恢复局部正确步骤。

HyperEyes 沿用 ReAct 轨迹形式。给定 query ,轨迹写作: 其中第 轮的 context 为 ,policy 生成 reasoning trace 、选择 tool call ,再从 retrieval environment 得到 observation

UGS 的 tool schema 来自论文 prompt 和 released code:image_search 支持整图检索,也支持 area 参数一次传入多个 normalized boxes;text_search 支持把多个 query 放入 input list。released code 中 env_agent.pyparallel_image_search_observation()parallel_text_search_observation() 都用 asyncio.gather 并发发起请求;image_search 分支会先用 crop_area_from_image() 依据 裁剪多个区域,再把成功裁剪得到的 img_i 列表并行送入 reverse image search。这样,一个 model turn 可以产生多个 retrieval observation,而不是每个实体消耗一个 turn。

Figure 6 解读:这个 appendix case study 对比 serial DeepEyes-V2 与 HyperEyes。DeepEyes-V2 逐个处理人物,多个中间 observation 会把噪声持续带入下一轮;HyperEyes 在一个 image_search 中提交多个区域,并在后续统一综合证据。该图解释了为什么“并行”不仅减少 latency,也减少链式检索带来的 distractor accumulation。

def unified_grounded_search_step(model_output, image_registry, text_search, image_search):
    action = parse_xml_json_tool_call(model_output)  # <reason>, <tool_call>, <answer>
    if action.answer is not None:
        return {"done": True, "answer": action.answer}
 
    if action.name == "image_search":
        image_id = action.arguments.get("image_id", "img_0")
        areas = action.arguments.get("area")
        if areas:
            crops = []
            for box in areas:
                crop = crop_area_from_image(image_registry[image_id], box)  # normalized bbox
                if crop is not None:
                    crops.append(crop)
            observations = await asyncio.gather(*[image_search(crop) for crop in crops])
        else:
            observations = await asyncio.gather(image_search(image_registry[image_id]))
        return {"done": False, "observation": merge_observations(observations)}
 
    if action.name == "text_search":
        queries = action.arguments.get("input", [])
        if isinstance(queries, str):
            queries = [q.strip() for q in queries.split("|") if q.strip()]
        observations = await asyncio.gather(*[text_search(q) for q in queries])
        return {"done": False, "observation": merge_observations(observations)}

3.3 Parallel-Amenable Data Synthesis and SFT trajectory curation

训练数据由三类来源组成。Public benchmarks 提供 LiveVQA 100k、REDSearch 10k、InfoSeek 41k、iNaturalist 75k、Google-Landmark 12k、DeepDive 3k;自建数据包括 5k internal human annotations、20k Visual Multi-Entity、5k Textual Multi-Constraint。经过 tool-necessity filtering 后,总池为 271k genuinely tool-dependent QA pairs,其中 30k 用于 SFT,约 6k / 9k 用于 30B / 235B RL。

Visual Multi-Entity synthesis 从 CUB-200-2011、Oxford Flowers-102、Stanford Cars、FGVC-Aircraft、Oxford-IIIT Pets 等 fine-grained classification datasets 出发,先用 Gemini-3.0-Flash web search / page crawling 构建 per-class knowledge base,再把不同类的图像 mosaic 成多实体 scene,并生成必须整合所有实体知识才能回答的 QA。Textual Multi-Constraint synthesis 则从 Wikidata multi-hop random walk 得到候选实体,采样 个 predicate,使 predicate intersection 定义唯一答案。

SFT 轨迹通过 Progressive Rejection Sampling (PRS) 获得。PRS 的关键不是“采更多轨迹”,而是从最小 turn budget 开始寻找成功轨迹;一旦某个 budget 下存在成功 trajectory,就返回其中 tool turns 最少的一条,从而天然偏向 one-shot parallel dispatch。

def progressive_rejection_sampling(q, answer, policy, budgets, num_rollouts, judge):
    for budget in sorted(budgets):
        rollouts = [policy.rollout(q, max_turns=budget) for _ in range(num_rollouts)]
        successful = [tau for tau in rollouts if judge(tau, answer) == 1]
        if successful:
            return min(successful, key=lambda tau: tau.num_tool_turns)
    return None  # REJECT

最终 SFT 用 next-token prediction 训练 base MLLM,让模型先学会 <reason>/<tool_call>/<answer> schema、并行 area list、并行 input list,以及“证据足够后停止调用工具”。论文 appendix 给出的 SFT 配置是 LoRA:rank 、target modules 为 all-linear,1 epoch,global batch size 64,max sequence length 32k,每图最多 1,200 visual tokens,训练在 8 nodes × 8 NVIDIA H20 141GB GPUs 上进行。released repo 当前包含 SFT/ms-swift-hypereyes/ fork,但我没有找到 paper-specific SFT launch config;因此上述 SFT 数字按论文 Appendix E 记录,而 RL 数字按 released HyperEyes_RL.sh 交叉验证。

3.4 TRACE:trajectory-level efficiency reward

TRACE 的目标是给每个样本维护一个“合理工具成本”参考,而不是设置全局固定阈值。总 reward 为: 其中 是 correctness judge, 惩罚 schema parse failure, 是效率项。论文用两个成本维度描述轨迹:tool-call rounds 与所有 rounds 内总 tool invocations 。每个 medium-difficulty RL sample 初始用 SFT 成功轨迹的 作为 ;之后每个 epoch 用成功 rollout 中最小 单调收紧: TRACE 的 tool reward 为: 对于 group size 内的 rank ,论文再用线性插值给连续信号: 代码实现中,HyperEyes_reward_V1_2_w_dynamic_w_OPD_v0.py 会解析 completion,统计 tool_countsearch_countmax_parallelper_turn,再用 group bonus 给正确且更省工具的 rollout 更高分。HyperEyes_RL.sh 里实际 RL 配置包括 --advantage-estimator grpo--eps-clip 0.2--eps-clip-high 0.28--eps-clip-c 3--use-tis--kl-loss-coef 0.00--entropy-coef 0.00

论文公式与 released code 实现差异:论文描述 TRACE reference 会跨 epoch 单调更新;当前 main@61548258 的 reward file 虽然保留了 BaselineCache 类和“单调递减、逐步收紧参考标准”的注释,但 reward_func 路径中出现 # skip cache update,实际使用 sft_tc = orig_sft_tcsft_total = orig_sft_totaleff_parallel = orig_parallel,没有调用 cache update。也就是说,当前开源版本更像“基于 SFT reference 的 group efficiency bonus + OPD branch 标注”,与论文中的动态 TRACE cache 存在实现差距。

def trace_reward_for_group(stats, sft_ref):
    bonuses = []
    for stat in stats:
        acc = stat.acc_reward
        tc = stat.tool.count
        total_search = stat.tool.total
        if acc <= -0.5:
            bonuses.append(0.0)        # parse / format failure
        elif acc <= 0:
            too_short = tc < sft_ref.tool_call
            too_long = tc > int(1.5 * sft_ref.tool_call)
            bonuses.append(-0.1 if too_short or too_long else 0.0)
        else:
            bonuses.append(None)       # correct trajectories ranked below
 
    ranked = [i for i, b in enumerate(bonuses) if b is None]
    ranked.sort(key=lambda i: (stats[i].tool.count, stats[i].tool.total))
    for rank, i in enumerate(ranked):
        hi, lo = (0.20, 0.05) if is_strictly_efficient(stats[i], sft_ref) else (-0.02, -0.10)
        bonuses[i] = hi if len(ranked) == 1 else hi - (hi - lo) * rank / (len(ranked) - 1)
    return [stat.acc_reward + bonus for stat, bonus in zip(stats, bonuses)]

3.5 OPD:failed-rollout token-level correction

TRACE 是 trajectory-level reward,因此失败 rollout 上所有 token 都会共享负 advantage;这会错误惩罚失败轨迹中已经正确的局部 reasoning 或 tool call。OPD 的做法是在 的 rollout 上,用 frozen teacher 给 completion tokens 做 reverse KL: $ \mathcal{L}(\theta) = \mathcal{L}_{\text{GRPO}}(\theta)

  • \lambda_{\text{kd}},\mathbb{E}{\tau\sim\pi{\theta}^{\text{old}}}!\left[ \mathbf{1}[R_{\text{acc}}(\tau)=0]\cdot \frac{1}{|\mathcal{A}\tau|}!\sum{t\in\mathcal{A}\tau}! \mathrm{KL}!\bigl(\pi\theta(\cdot\mid s_t),|,\pi_{\text{teacher}}(\cdot\mid s_t)\bigr)\right]. $ 论文强调 reverse KL 的 mode-seeking 性质:student 会靠近 teacher 高概率的推理模式,而不是平均多个可能模式;并且 KL 只作用在失败 rollout,避免覆盖 TRACE 已经发现的成功并行策略。released code 中 reward_funcacc <= 0 的样本返回 opd_branch="reverse_kl",对成功样本返回 opd_branch="skip";训练脚本开启 --use-opd--opd-type sglang--opd-kl-coef 0.05、teacher timeout 500s、connector limit 32。论文的 teacher 是已经 RL 收敛的 HyperEyes-235B (RL),对 30B student 提供 token-level guidance。
def assign_opd_branch_and_loss(rollout, acc_reward, student_logits, teacher_logits):
    if acc_reward > 0:
        return {"opd_branch": "skip", "opd_loss": 0.0}
 
    student_log_probs = torch.log_softmax(student_logits, dim=-1)
    teacher_probs = torch.softmax(teacher_logits.detach(), dim=-1)
    reverse_kl = F.kl_div(student_log_probs, teacher_probs, reduction="batchmean")
    return {"opd_branch": "reverse_kl", "opd_loss": 0.05 * reverse_kl}

3.6 IMEB benchmark and Cost-Aware Score

Figure 3 解读:IMEB 包含 300 个人工审核的 multi-entity visual instances,平均每张图 4.6 个实体,覆盖多种 domain。图中右侧示例展示了典型问题结构:答案不能只靠图像像素得出,需要先识别多个实体,再检索外部信息并综合比较。IMEB 的价值在于它把“多实体并行搜索是否高效”显式纳入 benchmark,而不是只看最终 answer correctness。

IMEB 的 cost-aware score 定义为: 其中 以千 token 计, 是 sequential tool-call rounds。平方 accuracy 保证正确性仍是主目标;分母则惩罚 generation cost 和 tool execution cost,近似把二者都视为约一秒 latency overhead。

Figure 4 解读:appendix 对比三种 search paradigm:HyperEyes UGS、LLM-Crop、Code-Crop。在 30B 和 235B backbone 上,UGS 同时改善 accuracy 与 average tool-call turns;这说明收益不是只来自更强 backbone,而是来自 action schema 对多区域 grounded retrieval 的表达能力。

Code reference: main @ 61548258 (2026-05-23) — pseudocode and mapping based on this commit

Paper ConceptSource FileKey Class/Function
UGS action schema / promptprompts/hypereys_system_prompt.tex, prompts/system_prompt_for_trajectory_construction.teximage_search with area, text_search with input list
Parallel image/text search environmentRL/relax-hypereyes/examples/HyperEyes/env_agent.pycrop_area_from_image, parallel_image_search_observation, parallel_text_search_observation, HyperEyesEnv.step
TRACE-style reward statistics and group bonusRL/relax-hypereyes/examples/HyperEyes/HyperEyes_reward_V1_2_w_dynamic_w_OPD_v0.pyextract_completion, compute_single_stats_async, compute_group_bonus, reward_func
Dynamic reference cache skeletonRL/relax-hypereyes/examples/HyperEyes/HyperEyes_reward_V1_2_w_dynamic_w_OPD_v0.pyBaselineCache, _best_rollout_baseline (present but not active on the current reward path)
RL launch configRL/relax-hypereyes/examples/HyperEyes/HyperEyes_RL.shGRPO / rollout / SGLang / Megatron / OPD arguments
Agent runtime configRL/relax-hypereyes/examples/HyperEyes/agent_config.yamlmax_turns: 9, rollout_interaction_env_path
SFT stackSFT/ms-swift-hypereyes/ms-swift fork; paper-specific SFT launch config not found in current release
Public assets / benchmark previewfigures/, IEMB/IMEB_demo.parquetpaper figures and IMEB demo parquet; full IMEB benchmark and model weights are marked “will be released soon” in README

4. Experimental Setup (实验设置)

Datasets and scale

训练数据总表:LiveVQA 100k QA pairs(13.5k SFT / 3k 30B RL / 5k 235B RL)、REDSearch 10k(2k / 0.5k / 0.5k)、InfoSeek 41k(3k / — / —)、iNaturalist 75k(2.5k / 2k / 3k)、Google-Landmark 12k(1k / — / —)、DeepDive 3k(1.5k / — / —)、Internal Human Annotations 5k(0.5k / — / —)、Visual Multi-Entity 20k(5k / 0.5k / 0.5k)、Textual Multi-Constraint 5k(1k / — / —)。总计 271k QA pairs、30k SFT trajectories、约 6k 30B RL samples、约 9k 235B RL samples。IMEB benchmark 另含 300 个人工验证 multi-entity visual instances,平均每图 4.6 个实体。

Baselines

论文比较三组 baseline:原生 backbone Qwen3-VL-30B-A3B-Instruct、Qwen3-VL-235B-A22B-Instruct;开源 multimodal search agents DeepEyes-V2、MMSearch-R1、WebWatcher、VDR、REDSearch;闭源/商业模型 Kimi-K2.5、Claude-Opus-4.6、Gemini-3.1-Pro。结果表区分 Direct Answer 与 Agentic Workflow,因为 direct answer 测的是 parametric knowledge,agentic workflow 才暴露工具调用效率。

Metrics

  • Accuracy (Acc):由 LLM-as-a-judge 对预测答案与 ground truth 进行判定。
  • Average Tool-Call Turns (Turns):产生 tool-call block 的 decoder forward passes 数量,反映 serial interaction depth。
  • CAS:,用于把 accuracy、token cost、tool-call rounds 放到一个 cost-aware 轴上。

Training config

论文实现基于两个 backbone:Qwen3-VL-30B-A3B-Instruct 与 Qwen3-VL-235B-A22B-Instruct。所有训练运行在 8 nodes × 8 NVIDIA H20 141GB GPUs;SFT 使用 ms-swift LoRA fine-tuning,RL 使用 Relax + Megatron-LM + SGLang。RL released script RL/relax-hypereyes/examples/HyperEyes/HyperEyes_RL.sh 的关键配置为:literal flags --lr 1e-6--rollout-batch-size 32--n-samples-per-prompt 8,并通过环境变量 MAX_TOOL_CALLS_NUM=8MAX_ITERATIONS=9 控制工具调用预算;优化器为 Adam 、weight decay 0.1、constant LR schedule、rollout batch size 32、group size 、global batch size 256、rollout temperature/top-、eval top-、max prompt length 15,000、max response length 1,524、每图最多 1,200 visual tokens、每 rollout 最多 50 images、max tool calls / max turns = 8 / 9、retrieval concurrency 64。Megatron 参数包括 tensor model parallel size 4、pipeline model parallel size TOTAL_GPUS/8、expert model parallel size 8、context parallel size 1;SGLang 每 engine 4 GPUs、max running requests 64。OPD 只用于 30B RL,teacher 为 HyperEyes-235B (RL),KL coef 0.05,teacher connector limit 32,timeout 500s。

5. Experimental Results (实验结果)

Main benchmark results

ModelMMSearchFVQALiveVQABCVLMMSearch+IMEBAvg.
DeepEyes-V263.7 / 2.160.6 / 2.858.0 / 3.724.8 / 4.39.5 / 3.918.0 / 4.739.1 / 3.6
MMSearch-R153.8 / 1.458.4 / 1.348.4 / 1.419.1 / 1.710.1 / 1.83.3 / 1.932.2 / 1.6
WebWatcher55.3 / 4.864.3 / 4.058.7 / 4.127.0 / 4.911.5 / 5.715.3 / 7.838.7 / 5.2
VDR69.6 / 11.174.2 / 12.777.6 / 10.253.7 / 11.728.5 / 11.421.2 / 12.354.1 / 11.6
REDSearch72.9 / —— / —79.3 / —57.2 / —26.6 / —— / —— / —
HE-30B (SFT)82.0 / 1.876.1 / 2.080.3 / 1.947.6 / 3.925.0 / 3.742.0 / 3.858.8 / 2.9
HE-30B (RL)86.9 / 1.679.3 / 1.781.6 / 1.757.9 / 2.631.5 / 2.346.7 / 3.164.0 / 2.2
HE-235B (SFT)84.4 / 1.780.3 / 1.983.7 / 2.154.4 / 3.731.8 / 3.950.0 / 3.364.1 / 2.8
HE-235B (RL)88.5 / 1.481.4 / 1.584.1 / 1.560.0 / 2.232.6 / 2.252.7 / 3.066.6 / 2.0

表中每个 cell 是 Accuracy % / Avg. Tool-Call Turns。HE-30B (RL) 相对 comparable open-source agent 的平均提升为 +9.9 accuracy points,同时 average turns 减少 9.4;HE-235B (RL) 平均 accuracy 达 66.6,接近 Gemini-3.1-Pro 的 67.7,但 average turns 只有 2.0,而 Gemini-3.1-Pro agentic workflow 为 1.8。闭源 Kimi-K2.5 在 IMEB accuracy 上最高(55.3),但 turns 为 8.8,说明高 accuracy 可能来自高交互成本。

Cost-aware results

MethodBCVL Tok(k)BCVL ToolBCVL AccBCVL CASIMEB Tok(k)IMEB ToolIMEB AccIMEB CAS
MMSearch-R12.61.7119.10.5203.41.903.30.013
DeepEyes-V224.24.3024.80.18216.74.7118.00.119
WebWatcher27.44.8727.00.19122.87.8215.30.059
VDR200.811.7253.70.128303.412.3421.20.014
HyperEyes-30B8.82.6157.92.23216.73.1346.70.910

CAS 表显示 HyperEyes-30B 在 BCVL 上以 2.232 CAS 超过第二名 MMSearch-R1 的 0.520,约 4.3×;在 IMEB 上以 0.910 超过第二名 DeepEyes-V2 的 0.119,约 7.6×。这说明 HyperEyes 的优势不是简单“搜索更多得到更高 accuracy”,而是每单位 token/tool 成本的信息密度更高。

Ablation findings

数据过滤 ablation: 使用 121k trajectories,平均 51.6 / 2.2;严格 trajectory-level filtering 后只保留 30k,平均反而提升到 58.8 / 2.9,提升 +7.2 accuracy points。说明 PRS + quality filtering 比 raw trajectory volume 更关键。

Dual-Grained RL ablation(Avg. Accuracy / Turns):Qwen3-VL-30B agentic baseline 为 36.4 / 2.7;直接在 vanilla 30B 上加 TRACE+OPD 只有 44.7 / 2.2,说明无 SFT cold-start 会限制 RL;Qwen3-VL-30B+SFT 为 58.8 / 2.9;只加 outcome reward 得 58.3 / 6.9,准确率未升且工具调用膨胀;TRACE without dynamic update 为 61.1 / 2.5;TRACE 为 62.7 / 2.2;TRACE+OPD with off-the-shelf Qwen3-VL-235B teacher 掉到 46.3 / 2.8;TRACE+OPD with RL-aligned HyperEyes-235B teacher 达 64.0 / 2.2。这里最重要的结论是:OPD 不是“任意大 teacher 都有效”,teacher 必须 efficiency-aligned,否则会把 student 拉回非并行/低效推理模式。

Robustness and further analysis

Appendix 的 seed robustness 对 HE-30B (RL) 做 independent RL runs(seeds 42、1234、2026):平均 accuracy 为 ,average turns 为 ;单 benchmark accuracy std 最大为 MMSearch 的 1.22。Tool-call budget 分析显示,盲目增加工具调用不总是提高 accuracy:在 235B 上,FVQA 从 1 call 的 75.9/1.00 到 4 calls 的 76.5/2.89,再到 6 calls 的 74.9/3.40;BCVL 从 31.3/1.24 到 36.1/2.29/2.83 后也不再稳定提升。这个结果支持 TRACE 的设计:效率 reward 不是为了省成本而牺牲 accuracy,而是为了避免过检索造成证据噪声。

Limitations

作者明确列出三点限制:第一,OPD 需要更强且同 family 的 teacher,student 能力上限受 teacher 约束,frontier scale 上不一定直接适用;第二,当前框架只覆盖静态 image/text 环境,不包含 video/audio 这类需要 spatio-temporal grounding 的动态模态;第三,与 Gemini-3.1-Pro 等 closed-source frontier model 仍有残余 performance gap。released repo 的 README 还显示 full IMEB benchmark、Parallel-Amenable Data Synthesis pipeline、HyperEyes-30B/235B model weights、inference/demo scripts 仍在 roadmap 中,因此当前可复现实验主要集中在已发布的 SFT/RL code path 与 paper figures/IMEB demo。