LongZero:不读任何外部数据,LLM 如何自己教会自己长上下文推理
想象你要训练一个学生做开卷考试——允许她翻阅 50 页资料后回答问题。你发现光靠读不够,得让她练。但练习题从哪来?
一个反直觉的困境
想象你要训练一个学生做开卷考试——允许她翻阅 50 页资料后回答问题。你发现光靠读不够,得让她练。但练习题从哪来?
传统做法是:找一批真实文档,请人出题、标注答案,或者让一个更强的老师模型来出题。但这里有个死循环——学生越强,需要的题目越难,能出题的老师就越少。当学生接近天花板时,地球上已经没有老师能考住她了。
LongZero 的回答很干脆:让她自己出题考自己。
零数据 RL 的老路和新路
"零数据强化学习"(RL from zero data)不是新概念。AlphaGo Zero 早就证明了:围棋规则固定,模型可以自己跟自己下,从零开始学到超越人类。在 LLM 领域,数学题、代码题、游戏环境,都有人跑通了"自出题自答题"的循环。
但长上下文推理有个特殊困难:任务不只是"一个问题",而是"一段长文本 + 一个问题"。你得同时生成这两样东西。如果让模型先写一篇长文,再针对这篇长文出题——可模型本来就不擅长长上下文推理,它写的长文和出的题都不可靠,用不可靠的题训练自己只会越练越差。
LongZero 的核心洞察是:调换生成顺序。
先写答案,再写文章
传统流程是"先有文档,再出题":
真实文档 → 模型出题 → 模型作答 → RL 训练
LongZero 的流程是"先写规格,再扩写":
模型写短规格(问题+证据+答案) → 程序扩写成长文档 → 模型作答 → RL 训练
关键在于:答案在长文本存在之前就已经固定了。模型先写一个紧凑的 JSON 规格——包含虚构实体、原子事实、干扰事实、多跳问题及其答案。然后由程序(不是模型)把规格扩写成多篇不同体裁的长文档,把支持事实散布在不同文档里,把干扰事实放在支持事实附近。
因为答案在扩写之前就锁定了,所以验证不需要任何外部判断——只要答案在扩写后的文本中逐字出现,这道题就是有效的。
两种任务,一个框架
LongZero 合成了两类训练数据:
推理数据:模型虚构一个"世界"——一组虚构的人和组织的档案,分散在 M 篇不同体裁的文档里(传记、会议纪要、新闻报道等)。然后出多跳问题,比如"这家杂志的母出版社的创始人是谁的大学室友?"——需要先找到杂志,找到母出版社,找到创始人,再找到他的大学室友。干扰事实涉及相同的实体但不同的角色、时间或属性,专门用来误导。
检索数据:模拟长对话场景。模型先按"写一首关于老虎的诗"这样的模板写 R 个回复,程序从中选取目标回复插入到长对话的随机位置,最后问"第 k 个关于老虎的诗是什么?"——需要区分模型自己写的近似重复回复,并追踪它们的顺序。
两类数据有个共同特点:答案由构造决定,不需要模型或人来判断对错。这是 RLVR(可验证奖励的强化学习)的前提。
难度过滤:扔掉太简单和太难的
不是所有自出的题都有训练价值。太简单的(模型每次都对)没有梯度信号;太难的(模型每次都错)也没有。LongZero 只保留"不稳定"的题目——同一个问题采样多次,有时对有时错。
具体数字:Qwen3-4B 合成了约 3.8K 个世界,过滤后保留 1.7K 个;Qwen3-8B 合成了约 5.4K 个,保留 1.9K 个。最终训练集:推理问题 2304 个(中位 19.4K tokens),检索对话 1152 个(中位 11.4K tokens)。
结果:零数据打败有数据
在五个长上下文推理基准上,LongZero 用 Qwen3-4B 和 Qwen3-8B 两个模型做了实验。对比对象是两个用外部语料合成数据的基线——一个从真实文档出题,一个用更强的教师模型生成数据。
结果:LongZero 在两个模型上都超过了两个外部数据基线。
这意味着什么?当模型自己出题时,它出的题比从真实文档出题或用教师模型出题更适合训练自己。原因可能有三个:
1. 虚构实体消除了参数知识作弊——模型不可能靠记忆回答,必须真的去读上下文 2. 答案在扩写前固定——不存在"长文本改写导致答案漂移"的问题 3. 难度自适应——模型出的题天然在自己的能力边界附近,训练信号最密集
更大的图景:自我改进的尽头
LongZero 不只是一篇"又刷了个分"的论文。它指向一个更根本的问题:当模型足够强,外部数据还能提供多少训练信号?
今天的 LLM 训练依赖大量人类标注数据——问答对、偏好数据、数学题。但模型在快速逼近人类能力上限。当模型在大多数任务上已经超过人类标注者时,人类数据不再是"地面真值",而是"天花板"。
零数据 RL 提供了一条出路:训练信号的来源从"外部数据"切换到"内部构造"。模型自己定义任务空间,自己验证答案,自己更新策略。唯一的约束是"答案可验证"——数学题可以验算,代码可以执行,长上下文问题可以检查答案是否在文本中出现。
LongZero 证明这条路在长上下文推理上也走得通。下一步可能是:模型自己定义更复杂的任务(多文档推理 + 工具调用 + 多轮对话),自己构造验证器,自己决定训练课程。当这个循环完全闭合时,"数据瓶颈"就不再是瓶颈了。
诚实评价
LongZero 有明显的局限:
- 任务类型受限:只覆盖了多跳推理和多轮检索,真实长上下文任务远比这复杂(代码库理解、法律文书分析等)
- 虚构世界 vs 真实世界:虚构实体避免了参数知识作弊,但也意味着模型没见过真实世界的知识关联模式
- 规模有限:训练数据只有几千条,和工业级 RL 训练的百万级数据差几个数量级