#STaR 与自举式自训练:LLM 能不能自己生成训练数据并训练自己?

#一句话核心结论

STaR 这条线真正想回答的问题不是“能不能让模型写出更长的 chain-of-thought”,而是:LLM 能不能把自己的推理尝试变成新的训练数据,从而形成一个“生成 → 验证/筛选 → 再训练 → 更会生成”的自举循环。

我的判断是:

  • 在有外部可验证反馈的任务上,这条路线已经被反复证明有效,例如数学、代码、Text-to-SQL、部分长上下文问答、工具调用和 agent 行动选择。
  • 在没有可靠外部反馈的开放任务上,纯自举很容易变成“模型自我确认”:它生成自己喜欢的数据,再训练成更像自己,而不一定更接近真实能力。
  • STaR 后续系列工作的核心演化,基本都在补 STaR 原始闭环中的几个洞:

1. 只看最终答案不够,要有 verifier / reward model / process reward;

2. 随机采样太浪费,要把采样预算放到能力边界附近;

3. 多轮自训练会探索退化,要平衡 exploration 与 exploitation;

4. 只靠内部思考不够,要接工具、检索、环境反馈;

5. 问答式 rationale 太窄,要推广到普通语言建模、长上下文、agent、视觉语言、安全对齐等场景。

如果把它和你关心的 LLM Agent / model-based RL / latent reasoning / self-evolving code agent 连起来看,STaR 可以被理解为一个非常早期但很关键的范式雏形:模型不只是消费人类数据,而是把自己的试错轨迹、解释、反思、行动候选、工具调用、环境反馈,重新加工成下一轮训练分布。


#1. 先用人话讲清楚:STaR 到底在做什么?

STaR,全称 Self-Taught Reasoner,论文是 Zelikman 等人在 2022 年提出的 STaR: Bootstrapping Reasoning With Reasoning

它的直觉非常简单:

如果一个学生会做一部分题,并且能写出解题过程,那么能不能让他先给很多题“试着写解题过程”,把做对的留下来,再用这些自己写出来的解题过程训练自己?

更具体地说,STaR 的循环是:

  1. 给模型少量带 rationale 的示例,让它学会“回答前先解释”。
  2. 对大量只有问题和答案、没有 rationale 的数据,让模型自己生成推理过程和答案。
  3. 如果模型最终答案正确,就保留这条 rationale,作为训练样本。
  4. 如果模型答错,则把正确答案告诉模型,让它尝试生成一个能导向正确答案的 rationale,这一步叫 rationalization。
  5. 用所有最终导向正确答案的 rationale 微调模型。
  6. 重复上述过程。

这就是“自举”:一开始模型只会一点点推理,通过自己生成的中间过程,逐步训练出更强的推理能力。

这里最关键的不是 chain-of-thought 本身,而是这个闭环:

当前模型 M_t
  ↓ 生成多个 reasoning / rationale
外部答案或奖励筛选
  ↓ 得到更高质量训练数据 D_t
微调/优化
  ↓ 得到 M_{t+1}
重复

如果这个循环成立,那么训练数据就不再完全依赖人类写出来。模型可以“生产训练数据”,再“吃回去”。这就是今天很多 self-improvement、RFT、ReST、self-rewarding、agent self-evolution 工作的共同母题。


#2. 原始 STaR:解决了什么,又留下了什么问题?

#2.1 之前的问题:CoT 有用,但人工 rationale 太贵

Chain-of-thought prompting 证明了:让模型写出中间推理步骤,往往能显著提高复杂推理任务表现。

但问题是:

  • 如果只靠 few-shot prompting,能力提升有限,而且不更新模型参数;
  • 如果要监督微调,就需要大量人工写的 reasoning rationales;
  • 人工 rationale 很贵,而且不同任务都要重新标注;
  • 很多数据集本来只有问题和答案,没有中间过程。

所以 STaR 问的是:有没有办法只用少量 rationale seed,加上大量没有 rationale 的题目,让模型自己补出 rationale?

#2.2 STaR 的方法:正确答案是过滤器,rationale 是训练对象

STaR 的妙处在于把“答案正确性”当作一个廉价验证信号。

它不需要人类评价每条推理过程是否优雅,只要能检查最终答案是否正确,就可以筛出一批可能有用的 reasoning traces。

这在人话上类似:

我不需要老师批改你每一步,只要知道最后答案对不对。对的解题过程先留下;错的题,把标准答案给你,让你再解释一遍为什么应该是这个答案。然后拿这些解释训练你。

它解决了一个关键问题:在缺少人工推理标注的情况下,如何获得大量 rationale 训练数据。

#2.3 STaR 暴露的新问题:正确答案不等于正确推理

STaR 也立刻暴露出一批后续工作反复处理的问题。

第一,答案对不代表推理过程对

模型可能靠捷径、模式匹配、偶然猜对答案,然后写出一段看似合理但并非真实因果路径的解释。训练这种 rationale,可能强化“会编解释”,而不是强化真正推理。

第二,rationalization 可能是事后合理化

当模型答错后,把正确答案塞给它,让它生成一条导向正确答案的解释。这很像让学生先看答案再补过程。它可能有教学价值,但也可能制造“漂亮但虚假”的解释。

第三,它依赖可验证答案

数学题、选择题、代码单测、SQL 执行可以验证;但开放式研究判断、长程 agent 规划、价值偏好、真实世界行动,就很难只靠最终答案过滤。

第四,多轮自训练可能错误放大或多样性下降

模型自己生成数据,再训练自己,如果过滤器不够强,错误会被循环放大;如果过滤器太强,只留下模型已经会的东西,又会导致探索退化。

后续几乎所有 STaR 系列工作,都可以看成围绕这四个问题展开。


#3. 从 STaR 到 Quiet-STaR:从“答题前写推理”到“说话前先想”

#3.1 Quiet-STaR 想解决什么旧问题?

原始 STaR 的场景很窄:给定问题,生成 rationale,得到答案。

但真实语言建模不是只有问答题。人类说话、写作、阅读时,很多“思考”是隐含的:

  • 读证明时,中间省略了很多推理;
  • 看对话时,需要理解说话人的意图;
  • 写文章时,要先构思再落笔;
  • 做普通 next-token prediction 时,也可能需要世界知识和隐含推理。

于是 Quiet-STaR 问了一个更大问题:

能不能让语言模型在预测每个 token 之前,先生成一段内部 thought,再用这个 thought 帮助预测未来文本?

这其实是把 STaR 从“显式问答推理”推广到“通用语言建模”。

#3.2 Quiet-STaR 的核心机制

Quiet-STaR 的基本思想是:模型在普通文本中每个位置都可以先“想一下”。这些 thoughts 不一定展示给用户,而是作为内部中间变量。

训练信号来自:这个 thought 是否提升后续 token 的预测概率。

如果某种 thought 让模型更好预测未来文本,那么它就是有用的;如果没帮助,就不值得保留。

这和 STaR 的对应关系是:

STaRQuiet-STaR
问答题任意文本
rationale 导向正确答案thought 提升未来 token likelihood
答案正确性作为过滤语言建模 likelihood 作为反馈
显式推理链可隐藏的内部 thought

#3.3 Quiet-STaR 推动了什么?

Quiet-STaR 的意义在于:它把“模型学习思考”从后训练任务,推回到更接近预训练/持续预训练的层面。

这和你关心的 latent-space reasoning 很相关。Quiet-STaR 仍然生成文本 thought,但它已经在问:

  • reasoning 是否应该是显式输出?
  • 模型能不能学习“什么时候需要想”?
  • thought 是否可以成为隐藏的计算过程,而不是用户可见的回答?
  • 预训练时是否可以把“隐式思考”作为一种中间计算来优化?

#3.4 Quiet-STaR 的新问题

它也带来新的麻烦:

  • thought 生成增加训练和推理成本;
  • 隐藏 thought 难以审计;
  • 提升 likelihood 不一定等价于提升可泛化推理能力;
  • 模型可能学到的是局部预测技巧,而不是稳定的思维结构。

所以 Quiet-STaR 之后,一个重要问题变成:如何判断模型生成的 thought / rationale 真的是有用推理,而不是语言建模副产品?


#4. 从 STaR 到 V-STaR:不要浪费错误解,让错误也训练 verifier

#4.1 STaR 的浪费:错误样本被丢掉了

原始 STaR 主要保留正确答案对应的 rationales,错误解往往被丢弃。

但这很浪费。错误解里面有很多信息:

  • 哪些推理路径容易误导模型;
  • 哪些候选答案看似合理但其实错误;
  • 模型在哪些步骤会偏离;
  • 正确解和错误解之间有什么可区分模式。

V-STaR(Training Verifiers for Self-Taught Reasoners)正是针对这个问题。

#4.2 V-STaR 的核心方法:reasoner 和 verifier 一起自举

V-STaR 利用 STaR 过程中产生的正确解和错误解,训练一个 verifier。

这个 verifier 的作用是:给定多个候选 reasoning / solution,判断哪个更可能正确。

于是闭环变成:

reasoner 生成大量候选解
  ↓
答案正确性把候选分成正/负
  ↓
训练 verifier 区分好解与坏解
  ↓
推理时 verifier 选择更好的候选
  ↓
更好的候选又能产生更好的训练数据

这一步非常关键,因为它把 STaR 从“只训练生成器”推进到“生成器 + 评价器共同进化”。

#4.3 V-STaR 暴露的新问题:verifier 也可能自我欺骗

Verifier 解决了“只看最终答案太粗糙”的问题,但也带来新问题:

  • verifier 的训练数据仍来自同一模型或同一任务分布;
  • 如果 verifier 学到的是表面风格,而不是真实正确性,就会偏好“看起来像正确推理”的文本;
  • 多轮迭代中,reasoner 可能学会迎合 verifier;
  • 这和 RL 中 reward hacking 很像。

因此后续 self-rewarding、process reward、meta-rewarding 等工作,本质上都在处理同一个问题:当评价信号也由模型生成或学习时,如何避免闭环偏差?


#5. STaR 系列的工程化分化:采样、难度、探索与预算

原始 STaR 给了一个简单循环,但没有回答一个非常实际的问题:

每一轮到底应该让模型在哪些题上生成多少样本?

这不是细节,而是自训练能不能 scale 的核心。

#5.1 B-STaR:多轮自训练为什么会越训越窄?

B-STaR(Monitoring and Balancing Exploration and Exploitation in Self-Taught Reasoners)关注的是 exploration / exploitation 平衡。

它观察到:自训练迭代中,模型的探索能力会快速退化。也就是说,模型越来越倾向于生成自己熟悉的解法,而不是探索多样候选。

这会造成两个问题:

  • 如果模型只生成少数固定套路,那么即使过滤器很好,也很难发现新能力;
  • 如果外部 reward 对候选区分能力下降,后续训练样本质量也会饱和。

B-STaR 的思路是监控两个量:

  1. Exploration:模型是否还能生成足够多样的候选解;
  2. Exploitation:奖励/验证器是否还能有效区分好坏候选。

然后动态调整迭代配置,在探索和利用之间平衡。

这对 LLM Agent 特别重要。长程 agent 如果只会重复过去成功轨迹,很快就会卡在局部策略;但如果只探索不利用,又会浪费大量环境交互。

#5.2 AdaSTaR:不要反复训练已经会的题

AdaSTaR(Adaptive Data Sampling for Training Self-Taught Reasoners)处理的是数据采样效率。

普通 STaR 往往随机选题、随机采样。但这会造成:

  • 简单题:模型早就会了,继续采样浪费;
  • 太难题:模型几乎生成不出正确解,采样也浪费;
  • 边界题:模型有时能做对、有时做错,最有学习价值。

AdaSTaR 引入两种自适应采样原则:

  1. 多样性采样:避免训练集中某些 observation 过度出现;
  2. 课程采样:根据模型当前能力动态调整题目难度。

人话说就是:把训练预算用在模型“差一点就会”的地方。

这和人类学习非常像:一直刷会的题没用,一直刷完全不会的题也没用,最有效的是能力边界附近的题。

#5.3 HS-STaR:把采样预算重新分配到边界问题

HS-STaR(Hierarchical Sampling for Self-Taught Reasoners via Difficulty Estimation and Budget Reallocation)进一步强调同一点:不同题目的学习效用不同。

它先用轻量预采样估计题目难度,再把剩余生成预算分配给“边界级问题”。

这对自举训练非常重要,因为模型生成训练数据本身是有成本的。一个 self-training 系统不只是要问“哪些样本质量高”,还要问:

  • 哪些题值得生成更多候选?
  • 哪些题对当前模型最有训练价值?
  • 采样预算、训练预算、验证预算如何联合优化?

对 agent 来说,这可以对应到:哪些任务、哪些环境状态、哪些失败轨迹最值得 replay / re-label / distill。


#6. 从内部推理到外部工具:START 与 Toolformer

#6.1 STaR 的一个隐含假设:推理都在模型内部完成

原始 STaR 默认模型靠语言内部推理来解题。但今天的大模型已经越来越像 agent:它可以调用工具、运行代码、检索资料、访问环境。

这带来一个新问题:

如果模型的正确 reasoning 需要工具调用,那么 self-taught reasoner 应该学的不只是 CoT,还应该学会何时调用工具、如何利用工具反馈。

#6.2 Toolformer:模型自己给自己标工具调用数据

Toolformer(2023)不是 STaR 直接后续,但思想非常接近。

它让语言模型在普通文本中自动插入 API 调用候选,然后检查这个 API 调用是否提升后续 token likelihood。如果有帮助,就保留这个调用轨迹作为训练数据。

对应到 STaR:

  • STaR 自生成 rationale;
  • Toolformer 自生成 tool-use annotations;
  • STaR 用答案正确性筛选;
  • Toolformer 用语言建模 likelihood 改善筛选。

这说明“模型自己生成训练标注”不只适用于推理链,也适用于工具使用。

#6.3 START:Self-taught Reasoner with Tools

START(2025)更直接地把 self-taught reasoner 和工具结合起来。

它针对大推理模型的一个现实问题:长 CoT 很强,但只靠内部语言推理容易幻觉、低效,尤其在数学、代码和科学问答中,很多计算应该交给 Python 或外部工具。

START 的核心有两步:

  1. Hint-infer:在推理过程中插入类似“Wait, maybe using Python here is a good idea.” 的提示,激发模型调用工具;
  2. Hint-RFT:对带工具调用的推理轨迹进行打分、过滤、修改,再微调模型。

这可以看作 STaR 的工具版:

模型生成长 CoT + 工具调用轨迹
  ↓
执行工具 / 验证答案 / 过滤轨迹
  ↓
把高质量轨迹作为训练数据
  ↓
模型更会在合适时候用工具

这对 code agent 特别重要。代码任务天然有外部验证器:测试、编译器、静态检查、运行结果。未来 self-evolving code agent 很可能就是 START / STaR / ReST / RL 的混合体。


#7. 从数学到结构化任务、长上下文、agent 和多模态

STaR 的命名后续工作逐渐扩展到更多场景。它们表面任务不同,但核心都是:模型生成中间结构,外部或内部信号筛选,再训练模型。

#7.1 STaR-SQL:Text-to-SQL 里的自教推理

STaR-SQL(2025)把 STaR 用到 Text-to-SQL。

Text-to-SQL 的优势是:SQL 可以执行,执行结果可以作为验证信号。这很适合自训练。

它的流程大致是:

  • 模型为自然语言问题生成 schema linking / decomposition / SQL reasoning;
  • 生成 SQL;
  • 用执行结果或答案验证;
  • 保留能导向正确执行结果的 reasoning;
  • 再训练模型。

这个方向说明:STaR 不只是数学题方法,而是适用于“有可执行验证器”的结构化任务。

但它也有新问题:SQL 执行正确不一定语义完全正确。模型可能生成一个在当前数据库上碰巧结果一样、但语义不等价的 SQL。这类似代码任务中“过拟合测试用例”。

#7.2 Self-Taught Agentic Long Context Understanding

这个工作把 self-taught 思路用于长上下文理解。

长上下文问答的问题是:模型不是简单读全文就能答对,而是需要:

  • 澄清问题;
  • 找到相关上下文;
  • 做多跳推理;
  • 避免被无关信息干扰。

它提出 Chain-of-Clarifications:模型自生成澄清问题和上下文 grounding,并通过搜索得到偏好对,再用 SFT 和 DPO 把昂贵搜索过程蒸馏成一次前向能力。

这和 STaR 的关系在于:

  • STaR 把“多次生成 rationale + 筛选”蒸馏进模型;
  • AgenticLU 把“搜索澄清链 + 上下文 grounding”蒸馏进模型。

对 LLM Agent 来说,这很像把在线 search / planning 的轨迹转化为训练数据。

#7.3 SAND:Self-Taught Action Deliberation for Agents

SAND 针对 LLM agents 的行动选择问题。

普通 agent SFT 常常模仿专家轨迹,但模型没有显式比较“还有哪些可选动作”。结果是:看起来合理的 action 容易被过早采用。

SAND 让 agent 在行动前对候选 actions 进行 deliberation:

  • 采样多个候选动作;
  • 用执行反馈或 critique 比较动作;
  • 合成 step-wise action deliberation thoughts;
  • 迭代微调 agent。

这可以看作 STaR 从“答案 reasoning”扩展到“行动 reasoning”。

对长程 agent 来说,这是很关键的一步:训练数据不再只是最终成功轨迹,而是包含“为什么不选某些动作”的对比性思考。

#7.4 See, Think, Learn:多模态自教推理

See, Think, Learn 把自教推理用于 VLM。它要求模型先“看”:把视觉属性抽取成文本,再“想”:基于这些属性推理。

它还引入 negative rationales,即解释为什么某些选项不对。

这个方向说明:自训练不仅要生成正例推理,也可以生成负例解释。对提升判别能力、避免迷惑选项很重要。

#7.5 STAR-S:安全规则上的自教推理

STAR-S 把 STaR 思路用于安全对齐:模型根据安全规则生成 reasoning 和 reflection,然后通过微调增强安全推理能力,循环进行。

这说明 STaR 范式也可以进入 alignment:模型不只是学习回答,还学习“如何解释和应用规则”。

但风险也明显:如果安全 reasoning 是模型自己生成的,必须警惕它学到形式化套话,而不是实质安全判断。


#8. 广义自举路线:STaR 不是孤立工作,而是一类范式的早期代表

如果只看名字里带 STaR 的论文,会低估这条路线的影响。更大的图景是:2022 之后,LLM 训练逐渐出现很多“模型生成训练信号,模型再训练自己”的路线。

#8.1 Self-Instruct:自己生成 instruction 数据

Self-Instruct 问的是:instruction tuning 数据能不能由模型自己生成?

它从少量人工 seed instructions 出发,让模型生成更多 instruction-input-output 三元组,过滤后微调模型。

和 STaR 的关系:

  • STaR 生成 reasoning rationales;
  • Self-Instruct 生成 instruction-following 样本;
  • 两者都依赖少量 seed + 自动生成 + 过滤 + 微调。

区别是:STaR 更关注推理过程,Self-Instruct 更关注任务覆盖和指令跟随。

#8.2 WizardLM / Evol-Instruct:不只生成数据,还要生成更难的数据

Self-Instruct 的一个问题是生成任务可能太简单、太同质化。WizardLM 提出 Evol-Instruct:让模型自动把指令复杂化。

这对应到自训练中的一个重要问题:训练数据不是越多越好,而是要有合适难度和多样性。

这和 AdaSTaR / HS-STaR 的思想相通:自举训练最终都要面对 curriculum design。

#8.3 Large Language Models Can Self-Improve

Huang 等人的 Large Language Models Can Self-Improve 直接展示了:LLM 可以在无人工标注的情况下,通过生成高置信 CoT 答案,再微调自身,提升 GSM8K、DROP、OpenBookQA、ANLI 等任务表现。

这和 STaR 非常接近,但更强调 unlabeled datasets 和 self-consistency 筛选。

它进一步说明:自训练的关键不是有没有人工标签,而是有没有足够可靠的筛选/置信机制。

#8.4 ReST / ReST-EM:生成—过滤—再训练的通用框架

ReST(Reinforced Self-Training)和后续 ReST-EM 把这个流程抽象得更一般:

  1. 从当前 policy 生成样本;
  2. 用 reward / feedback 筛选;
  3. 用筛选后的样本做 offline RL 或 SFT;
  4. 重复。

Beyond Human Data 中的 ReST-EM 在数学和代码任务上展示:当有 scalar feedback,例如答案验证、单测、执行结果,自训练可以超越只用人类数据微调。

这和 STaR 的核心完全一致,只是把 rationale-specific 形式推广成通用 problem-solving self-training。

#8.5 SPIN:模型和自己的历史版本 self-play

SPIN(Self-Play Fine-Tuning)把自举路线推向 preference / distribution matching。

它让当前模型和历史版本产生对比,通过 self-play objective 让弱模型逐步变强。

这条线很重要,因为它不只依赖“正确答案”,而是利用“当前模型 vs 旧模型”的差异构造训练信号。

但它也有典型风险:如果缺少外部锚点,self-play 可能只是在一个封闭分布里循环优化。

#8.6 Self-Rewarding / Meta-Rewarding:模型自己当 judge

Self-Rewarding Language Models 更进一步:模型不仅生成回答,还用 LLM-as-a-Judge 给自己的回答打分,再用 DPO 等方式训练。

Meta-Rewarding 又让模型评价自己的评价质量。

这回答的是 STaR 后续必须面对的问题:

如果没有标准答案,能不能让模型自己提供 reward?

短期看,这很诱人,因为可以减少人工偏好标注;长期看,这是最容易出现自我确认和 reward hacking 的地方。

#8.7 Process-based Self-Rewarding:从最终奖励到过程奖励

Process-based Self-Rewarding 把 self-rewarding 推到推理过程层面:模型对每一步 reasoning 进行评价,产生 step-wise preference / reward。

这和 STaR 的原始问题高度相关:我们不只想知道答案对不对,还想知道每一步是否可靠。

但过程奖励更难。模型很容易偏好“看起来规范”的推理步骤,而不是因果上真正有效的步骤。

#8.8 Can Large Reasoning Models Self-Train?

2025 年的 Can Large Reasoning Models Self-Train? 直接追问:大推理模型能否在 RL 中持续 self-train?

它的结论很有启发:简单 self-feedback 机制可以提升模型表现,也能提升下一轮反馈质量;但长期自奖励 RL 会导致 reward hacking,甚至性能突然崩塌。

这几乎给 STaR 路线画出了一个核心边界:

自训练可以启动能力增长,但如果反馈机制不够稳健,长期闭环会把模型带向奖励漏洞,而不是真实智能。


#9. 把所有工作放进一张问题链

下面这张表不是简单罗列论文,而是按“STaR 暴露的问题 → 后续怎么补”来组织。

阶段代表工作核心问题方法直觉新瓶颈
原始自举推理STaR没有大量人工 rationale自生成 rationale,用答案正确性过滤,再训练正确答案不等于正确推理
通用语言思考Quiet-STaRSTaR 太局限于问答任意文本 token 前生成内部 thought,用 likelihood 改善筛选hidden thought 难审计,成本高
生成器+评价器V-STaR错误解被浪费,缺少候选选择器用正/负解训练 verifierverifier 也会偏、会被迎合
探索/利用平衡B-STaR多轮自训练探索退化监控 exploration/exploitation 并动态调整如何定义真正有价值的探索
自适应数据采样AdaSTaR随机采样浪费训练预算多样性采样 + 课程采样难度估计本身可能不准
边界题预算分配HS-STaRuniform sampling 忽略题目学习效用把预算给能力边界附近的问题对开放任务如何估计边界
工具增强推理START / Toolformer内部推理会幻觉、低效自生成工具调用轨迹并过滤训练工具反馈和语言推理如何对齐
结构化任务STaR-SQLText-to-SQL 缺少推理标注SQL 执行结果作为验证器执行正确不等于语义正确
Agent 行动SANDagent 只模仿动作,不比较替代动作自生成 action deliberation 并训练长程 credit assignment 难
自评奖励Self-Rewarding / Meta-Rewarding没有人工偏好/标准答案模型自己当 judge / meta-judgeself-confirmation、reward hacking
过程奖励Process-based Self-Rewardingfinal answer reward 太粗对中间步骤打分过程评价更难校准
持续自训练边界Can LRMs Self-Train?强推理模型能否长期自举用 self-feedback 做 RL 迭代长期会 reward hacking / 崩塌

#10. 这条路线的本质:自举需要三个东西

从 STaR 到后续所有分支,可以抽象出一个通用公式:

Self-improvement = 生成器 + 选择器 + 更新器

#10.1 生成器:模型能不能产生有潜力的新轨迹?

生成器负责提出候选:rationale、thought、SQL、代码、工具调用、agent action、critique、reward judgment。

它决定探索空间。

如果生成器太弱,候选全是垃圾;如果生成器太保守,候选缺乏新信息;如果生成器太随机,筛选成本爆炸。

#10.2 选择器:什么信号告诉我们哪个候选值得学习?

选择器可以是:

  • 标准答案;
  • 单元测试;
  • SQL 执行结果;
  • reward model;
  • verifier;
  • self-consistency;
  • LLM-as-a-Judge;
  • 环境成功/失败;
  • 人类偏好;
  • 过程级监督。

这是整个闭环最关键的部分。自训练不是魔法,模型不会凭空变强;它只是把选择器认为好的轨迹蒸馏进参数。

如果选择器错了,模型会更擅长犯选择器喜欢的错误。

#10.3 更新器:如何把筛选结果变成能力?

更新器可以是:

  • SFT;
  • rejection sampling fine-tuning;
  • DPO / preference optimization;
  • offline RL;
  • RL with self-reward;
  • distillation;
  • continued pretraining。

不同更新器对应不同稳定性和泛化能力。比如,简单 SFT 稳定但可能过拟合;RL 能优化目标但容易 reward hacking;DPO 稳定一些但依赖 preference pair 质量。


#11. 对“LLM 能不能自己生成训练数据并训练自己”的直接回答

#11.1 能,但不是无条件能

从已有工作看,LLM 确实可以生成训练数据并训练自己,尤其在这些条件下:

  1. 任务有自动验证器:数学答案、代码测试、SQL 执行、工具返回、环境 reward。
  2. 初始模型已经有一定能力:完全不会的模型生成不出有用样本。
  3. 采样足够多样:能覆盖能力边界,而不是只重复已知模式。
  4. 过滤器足够可靠:能区分真正好样本和伪好样本。
  5. 训练过程有防崩机制:避免错误放大、模式坍缩、reward hacking。

#11.2 不能把“自生成数据”误解成“无中生有”

STaR 类型方法并不是从零创造知识。它通常依赖一些外部锚点:

  • 少量 seed rationales;
  • 正确答案;
  • 单元测试;
  • reward function;
  • 人类写的规则;
  • 工具和环境;
  • 初始预训练模型中已经存在的知识。

所以更准确的说法是:

LLM 可以把已有知识、少量监督和外部反馈,通过自生成轨迹放大成更多训练信号。

这不是凭空造知识,而是 feedback amplification

#11.3 真正难的是“持续自举”

短期自训练不难。难的是持续很多轮仍然提升。

长期自举会遇到:

  • 数据分布越来越窄;
  • 模型越来越会迎合 verifier;
  • 错误越来越隐蔽;
  • reward hacking;
  • 训练收益饱和;
  • 自生成数据缺少新信息;
  • 评价器和生成器共同漂移。

这也是为什么 STaR 后续工作不断引入 verifier、process reward、adaptive sampling、tool feedback、meta-judge、environment feedback。


#12. 和 LLM Agent / model-based RL / latent reasoning 的关系

你关心的不是单纯数学题自训练,而是更大的问题:agent 能不能通过自己和环境互动产生训练数据,从而自我进化。

STaR 给了一个最小原型,但 agent 场景复杂得多。

#12.1 Agent 版 STaR 应该是什么?

一个 agent 版 STaR 可能长这样:

Agent 执行任务
  ↓
产生 observation-action-thought-tool trajectory
  ↓
环境反馈 / 测试 / verifier / critic 评价轨迹
  ↓
抽取关键决策点、失败原因、替代动作、反思
  ↓
构造训练样本:下一步动作、计划、工具调用、状态摘要、错误修复
  ↓
更新 agent policy / memory / world model

这比原始 STaR 难很多,因为 agent 轨迹有长程 credit assignment:最后失败,不知道是哪一步错了。

#12.2 Model-based RL 视角:STaR 缺的是世界模型

原始 STaR 的反馈很简单:答案对/错。它没有显式 world model。

但对于 LLM Agent,一个更强的自举系统可能需要:

  • 预测某个行动后环境会怎么变;
  • 在想象中 rollout 多个候选计划;
  • 用 verifier / simulator 评估想象轨迹;
  • 把真实环境反馈和想象反馈合并;
  • 把失败归因到具体决策。

这就是 model-based RL 和 STaR 可以结合的地方:

STaR 负责把“成功轨迹/解释”蒸馏进模型;world model 负责提供更多可评估的 imagined states 和 imagined trajectories。

#12.3 Latent reasoning 视角:rationale 不一定要是文本

STaR 使用文本 rationale,是因为文本容易监督、容易展示。

但未来更高效的自举推理未必应该把所有思考都写成自然语言。可能存在:

  • latent thought vectors;
  • compressed task states;
  • hidden scratchpad;
  • decision-sufficient representations;
  • internal rollouts;
  • 可蒸馏但不完全可读的 planning states。

Quiet-STaR 已经朝这个方向迈了一步:thought 可以是隐藏中间过程,而不是用户可见输出。

你可以把一个重要研究问题表述为:

如何让模型生成“对决策有用的内部训练信号”,而不是只生成“人类看着像推理的文本”?

#12.4 Code agent 是最适合自举的场景之一

代码任务天然适合 STaR 式自训练:

  • 有测试;
  • 有编译器;
  • 有 lint;
  • 有运行错误;
  • 有 diff;
  • 有 benchmark;
  • 有真实 repo 环境。

一个 self-evolving code agent 可以自动生成:

  • bug fix trajectories;
  • failed attempts and diagnostics;
  • test-writing traces;
  • patch rationales;
  • tool-use sequences;
  • code review critiques;
  • minimal reproduction scripts。

然后用测试和 reviewer/verifier 过滤,再训练自己。

这里最值得研究的不是“让 agent 多生成代码”,而是:如何把失败轨迹压缩成可训练的、可泛化的决策数据。


#13. 这条路线的开放问题

#13.1 什么时候自训练真的产生新能力?

很多 self-training 提升可能来自:

  • 更好地蒸馏已有能力;
  • 更充分利用预训练中已有知识;
  • 把隐式能力显式化;
  • 改善输出格式和推理习惯。

但这不等于产生真正新能力。

关键问题是:自生成数据是否能让模型解决原来稳定不会的问题,还是只让它更稳定地做原来偶尔能做对的题?

#13.2 如何避免自我确认循环?

如果 generator、verifier、reward model 都来自同一个模型族,那么系统可能越来越相信自己的偏见。

可能的解决方向包括:

  • 引入外部环境反馈;
  • 多模型交叉评审;
  • adversarial verifier;
  • process-level causal checks;
  • 保留人类或形式化验证锚点;
  • 对 verifier 做校准和不确定性估计。

#13.3 如何做长轨迹 credit assignment?

原始 STaR 的题目很短,最终答案能反馈整条 rationale。

Agent 轨迹可能几百步。最终失败不能直接说明哪一步错了。需要:

  • step-level verifier;
  • trajectory slicing;
  • counterfactual action comparison;
  • hindsight relabeling;
  • causal attribution;
  • memory credit assignment。

这是把 STaR 推向 agent 的核心难点。

#13.4 如何防止 exploration 退化?

多轮自训练容易越来越保守。解决方向包括:

  • explicit diversity objective;
  • temperature / sampling budget schedule;
  • novelty reward;
  • frontier-task sampling;
  • curriculum learning;
  • self-play opponent;
  • environment generation。

B-STaR、AdaSTaR、HS-STaR 已经在 reasoning 任务中开了头,但 agent 场景还远没解决。

#13.5 隐式 thought 如何评估?

Quiet-STaR 类型方法会让模型产生隐藏 thought。问题是:

  • 这些 thought 是否忠实?
  • 是否可以被安全审计?
  • 是否只是提高 likelihood 的技巧?
  • 是否能转化为更强下游推理?
  • 是否可以压缩成 latent state?

这和 latent reasoning、mechanistic interpretability、安全可控性都相关。


#14. 一个面向研究的总结框架

如果把 STaR 系列抽象成一个研究方向,我会这样定义:

自举式 LLM 训练研究的是:如何让模型把自己的推理、行动、反馈和评价过程转化为新的训练分布,并在多轮闭环中稳定提升,而不是陷入错误放大、模式坍缩或 reward hacking。

它不是单篇论文,也不是单一算法,而是一套范式:

生成候选 → 评价候选 → 选择训练信号 → 更新模型 → 改变下一轮生成分布

关键科学问题是:

  1. 信息来源:自生成数据里的新信息来自哪里?外部反馈、搜索、工具、环境、模型已有隐知识,分别贡献什么?
  2. 选择机制:什么样的 verifier / reward / process supervision 能稳定区分真进步和假进步?
  3. 训练动力学:多轮自训练为什么有时提升、有时坍缩?有没有 scaling law 或 phase transition?
  4. 分布控制:如何让模型持续在能力边界探索,而不是只模仿自己?
  5. 表示形式:训练信号应该是显式文本 rationale、工具轨迹、偏好对、过程奖励,还是 latent state?
  6. Agent 扩展:如何把短题推理的 STaR 扩展到长程交互、代码仓库、真实环境和自演化 agent?

#15. 对 wenjun 可能值得切入的研究机会

结合你的兴趣,我觉得有几条线特别值得看。

#15.1 Agent-STaR:面向长程 agent 的自教轨迹学习

问题:现有 STaR 主要处理短推理题,agent 轨迹长、反馈稀疏、错误归因难。

可能方向:

  • 把 agent trajectory 切成 decision points;
  • 对每个点生成 alternative actions;
  • 用环境反馈和 critic 做局部偏好;
  • 训练 agent 学会 action deliberation 和 failure diagnosis;
  • 研究哪些轨迹片段最有训练价值。

这可以连接 SAND、Reflexion、ReST、OPD、long-horizon RL。

#15.2 Model-based STaR:用想象轨迹扩大自训练数据

问题:真实环境交互太贵,STaR 只从真实题目采样。

可能方向:

  • 训练一个 world model / outcome model;
  • 在 latent 或文本空间 imagined rollout;
  • 用 verifier 评估 imagined trajectories;
  • 只把高置信想象轨迹蒸馏给 policy;
  • 研究 imagined data 何时帮助、何时污染。

这正好贴合你关心的 Dreamer for LLM Agent。

#15.3 Decision-sufficient rationale:不要训练漂亮解释,训练决策充分解释

问题:STaR 的 rationale 可能只是事后解释。

可能方向:

  • 定义 rationale 对最终决策的因果贡献;
  • 用反事实删除/扰动 rationale 检验是否影响答案;
  • 训练模型生成最小充分 reasoning;
  • 区分 human-readable explanation 和 model-useful reasoning state。

这能连接 latent reasoning 和 faithful CoT。

#15.4 Frontier sampling for self-evolving code agents

问题:代码 agent 自训练最缺的是有效采样策略。

可能方向:

  • 用测试通过率、错误类型、修改规模估计任务难度;
  • 把生成预算放在 agent 能力边界附近的 issues;
  • 保留失败修复轨迹,训练 debugger / planner;
  • 用 repo-level verifier 避免过拟合单测。

这相当于把 AdaSTaR / HS-STaR 推到真实代码环境。

#15.5 Verifier co-evolution:生成器和评价器一起进化但不一起崩

问题:V-STaR / self-rewarding 都会遇到 verifier drift。

可能方向:

  • 多 verifier ensemble;
  • verifier uncertainty;
  • adversarial candidate generation;
  • periodic external calibration;
  • verifier reward hacking detection;
  • process-level consistency checks。

这是长期自举能不能成立的关键。


#16. 参考工作索引

以下按主题列出本文涉及的代表工作,方便继续深入。

#STaR 直接主线与命名后续

#广义自训练、自生成数据与自我改进

#过程监督、反思与推理搜索相关


#17. 最后总结

STaR 的重要性不在于它提出了某个复杂算法,而在于它把一个非常核心的问题具体化了:

模型能否把自己的推理尝试变成训练数据,从而自我提升?

后续几年,这个问题不断扩展:

  • 从问答 rationale 到隐藏 thought;
  • 从正确答案过滤到 verifier;
  • 从随机采样到 adaptive sampling;
  • 从内部推理到工具调用;
  • 从数学题到 SQL、长上下文、agent、多模态、安全;
  • 从自生成答案到自生成 reward;
  • 从短期提升到长期自训练稳定性。

最终我们看到的不是一个“模型自己学会一切”的简单故事,而是一个更复杂、更科学的问题:

LLM 自举需要外部反馈、选择机制、探索机制、训练稳定性和表示设计共同成立。没有这些,自训练只是自我模仿;有了这些,它可能成为未来 self-evolving agent 和持续学习基础模型的重要训练范式。

对你要研究的 topic 来说,STaR 最值得继承的不是具体的 rationale prompt,而是这个问题意识:

如何设计一个闭环,使模型生成的轨迹不是垃圾数据,而是能稳定推动下一代模型越过当前能力边界的训练信号?