不用检索器,直接 grep 原始语料:MARS 把多语言搜索命令数砍 39%

MARS: Training Multilingual Search Agents for Retriever-Free Evidence Acquisition

Rui Qi, Yunlong Liang, Yufeng Chen, Jinan Xu, Fandong Meng, Kaiyu Huang

cs.CL

2026-11-06

MARS 让模型用 shell 命令直接搜多语言原始语料,靠语料内实体锚点和去冗余奖励训练,MKQA 上 EM 从 37.07 升到 40.64,搜索命令减少 39%。

这篇在解决什么

多语言 RAG(检索增强生成)通常靠向量检索器,把查询和文档映射到同一个语义空间再排序。这条路有两个老问题。一是跨语言误检:不同语言的 embedding 分布有系统性偏移,低分的相关文档可能比高分的无关文档更有用,低资源语言上检索质量尤其差。二是索引成本,建库、存储、持续更新都要花钱。

DCI(direct corpus interaction,直接语料交互)是最近出现的另一条路:不要检索器,让 agent 直接写 grep 之类的 shell 命令去翻原始文本。这篇是把它搬到多语言场景。瓶颈随之从「相关性打分」转移到「写出能命中的搜索命令」,而 grep 是精确匹配,对实体写法极其敏感。论文举的例子是用「Cristiano Ronaldo」去搜中文语料会零结果,语料里写的是「C罗」。另一个问题是只靠最终答案对错来训练,模型学不到何时换写法、何时换语料,训练时容易退化成反复发近似重复的命令。

方法

MARS 的 rollout 是多轮的:每轮模型先在 think 块里推理,再选一种语言的语料,写出一条 shell 命令,拿到命令输出后继续,直到给出答案或用完轮数预算。训练用 GRPO,论文把改过的版本叫 URPO,核心是两个设计。

最终奖励是 EM 基础奖励减长度惩罚,再加上述两项。

结果

实验在 MKQA(13 种语言,8 种训练、5 种未见)和 MLQA(7 种语言)上做,骨干为 Qwen3.5 的 4B 和 9B。基线包括 Direct 推理、静态 RAG、D-RAG、多语言 agentic RAG 的 LcRL、免训练 DCI,以及后训练的 DCI 方法 Grepseek。论文称 MARS 在所有设置下都最优且显著(p<0.05);DCI 类方法整体强于检索类方法。主表的列对应关系在抽取文本里不清,下面只列能确认的数字。

对比指标结果
MKQA 消融:Grepseek 式基线 → 完整 MARSEM / fEM37.07 → 40.64 / 53.23 → 55.54
只加锚点 / 只加去冗余奖励EM39.79 / 38.97
搜索键来源:模型自译 → 语料锚点空命中率32.2 → 24.3(外部翻译 API 为 39.0)
同上正确实体命中率 / EM54.1 → 56.7 / 37.1 → 40.3
去掉去冗余奖励 → 完整重复搜索率22.33% → 4.89%
MARS vs Grepseek平均搜索命令数4.22 → 2.56(降 39%)
同上交互轮数 / 响应 token1.87 → 1.36 / 4853 → 3447
HotpotQA 单语言(对照 Grepseek)EM / F146.27 → 50.00 / 62.31 → 63.51

两个用法上的细节:外部翻译 API 的空命中率反而更高,说明「翻译正确」和「能在该语料里命中」是两回事。语料语言从仅用户语言扩到全部语言时,基线逐步下降,MARS 保持稳定。

为什么重要

对想做多语言知识库问答、又不想维护向量索引的团队,这给了一个可行的替代:DCI 不需要 embedding 和索引,代价转移到在线的多轮命令。论文的效率对比里,D-RAG 单次响应 6920 token,MARS 3447,LcRL 3532,所以在线成本并没有失控。

但这是一篇渐进改进。思路(DCI)来自前作,MARS 的贡献是两个针对多语言的训练细节,EM 提升约 3.6 个点。真正可复用的是「从语料自身挖别名当搜索键」这个想法,不依赖特定模型。

局限与存疑

作者自述:需要任务相关的训练数据和额外优化成本;只测了有限几种语言和任务;语料里若没有显式暴露别名,精确匹配仍然脆弱,后续可考虑把词法搜索和语义检索混合。

读下来还有几处没验证。语料是 MKQA/MLQA 的维基类文本,规模和真实企业库差距很大,grep 在 TB 级语料上的耗时论文没报告。「效率」只比了命令数和 token,没有给墙钟延迟。主表对应关系和消融用的是哪个骨干,正文交代得不清楚。锚点依赖英文枢纽语料,对没有英文对应条目的本地实体,效果没有单独分析。代码链接是匿名仓库。

术语

原文与代码

社区讨论

相关论文

全部论文解读