递归自我改进RSI技术全景:从拒绝采样到多轮迭代的实操路线

发布时间:2026/10/13 0:33:00
递归自我改进RSI技术全景:从拒绝采样到多轮迭代的实操路线
1. 从“模型训练完就定型”说起RSI到底在解决什么痛点做过模型微调的人都有个共同感受一个模型训练完、部署上线之后它的能力基本就“冻结”了。你给它什么数据、什么任务它就在这个范围内表现想让它变强只能重新收集数据、重新标注、重新训练、重新评估整个链路走一遍。这套流程在工业界跑了很多年稳定、可控但有个绕不开的天花板——迭代速度受限于人的介入程度。RSI也就是Recursive Self-Improvement递归自我改进讨论的正是这件事能不能让系统自己参与“改进自己”的过程把原本需要人来做的一部分工作交给系统本身从而让能力提升的循环转得更快。注意这里说的不是“模型自己改代码”这种科幻桥段而是一整套技术栈的组合——自我评估、自我生成训练信号、自我筛选数据、自我修正推理路径甚至自我设计下一轮的训练目标。这份58页的综述之所以值得花时间读是因为它没有停留在概念炒作层面而是把RSI拆成了可讨论、可对比、可复现的技术模块。我读完最大的感受是RSI不是一个单点技术而是一条从“数据自举”到“能力自举”的渐进路线。你现在用的很多方法比如拒绝采样、自我一致性、迭代式偏好优化其实已经是RSI的早期形态了只是大家没往这个框架里归类。这篇文章我会按自己的理解把这份综述的核心脉络重新梳理一遍重点讲清楚三件事RSI的技术全景到底包含哪些层次、每个层次里有哪些代表性方法、以及如果你现在就想在自己的项目里试水应该从哪个环节切入最稳妥。适合已经有一定模型训练和调优经验、想系统理解“自我进化”这条技术路线的读者。2. 拆解RSI的技术全景四个层次从浅到深2.1 第一层输出层面的自我筛选最浅的一层自我改进发生在模型输出之后。模型生成一批候选答案然后用某种机制从中挑出“更好的那些”再拿这些结果去更新模型。这个思路听起来简单但它是目前工业界落地最广、最稳的一类方法。典型代表就是拒绝采样微调Rejection Sampling Fine-tuning。流程是对同一个问题让模型采样多条回答用规则或奖励模型打分只保留高分回答作为训练数据再跑一轮监督微调。这里的关键在于“筛选标准从哪来”——如果标准是人写的规则那还算不上自我改进如果标准来自模型自己的评估能力比如用另一个模型实例做打分那就进入了RSI的范畴。这一层的价值在于门槛低、见效快。你不需要改动模型结构也不需要引入复杂的强化学习框架只要有一套能区分好坏输出的机制就能跑起来。但它的局限也很明显筛选只是在已有能力空间里做选择模型不会因此获得全新的能力只是把已有的高概率路径进一步强化。2.2 第二层推理层面的自我修正再往深一层系统开始对自己的推理过程做修正。不是简单地从多个答案里挑一个而是让模型在生成过程中或生成之后主动发现自己的错误并调整。这条线上比较有代表性的做法包括自我反思Self-Reflection和迭代式修正。具体操作是模型先给出一版答案然后被要求检查这版答案有没有问题如果有就基于检查结果重新生成。这个过程可以循环多轮直到答案稳定或达到轮次上限。我实测下来这一层最关键的变量是修正信号的来源。如果只是让模型“再想想”很多时候它会原地打转甚至把对的改成错的。真正有效的是引入外部反馈比如代码任务里的单元测试结果、数学任务里的数值验证、逻辑任务里的约束检查。有了这些硬信号自我修正才不是空转。这一层和第一层的本质区别在于第一层是“选”第二层是“改”。选是在离散的候选集里做决策改是在连续的生成过程中做调整。改的难度更高但天花板也更高因为它有可能让模型走出原本的概率高地区域。2.3 第三层训练信号层面的自我生成到了这一层系统开始自己生产训练信号。不再依赖人工标注的偏好数据而是让模型自己生成偏好对、自己判断哪个回答更好然后用这些自产的信号去训练奖励模型或直接优化策略。这条线上最典型的就是AI反馈强化学习RLAIF这一类方法。核心思路是用一个已经有一定能力的模型充当“评审”对同一问题的多个回答做排序或打分这些排序结果就构成了偏好数据再套用标准的偏好优化算法去更新目标模型。这里有个容易被忽略的细节评审模型和被训练模型的关系。如果两者完全相同评审信号会很快饱和因为模型对自己的输出有系统性偏好训练几轮之后区分度就下降了。实践中常见的做法是让评审模型和被训练模型保持一定差异比如用不同规模、不同训练阶段、甚至不同数据配比的模型来做评审这样信号才有持续的信息量。这一层的意义在于它把“数据从哪来”这个问题从人身上转移到了系统内部。只要评审机制足够可靠训练信号的供给就不再是瓶颈迭代轮次可以大幅增加。2.4 第四层目标与结构层面的自我设计最深的一层是系统开始参与设计自己的训练目标、甚至调整自己的结构。这一层目前还处在探索阶段但综述里花了不少篇幅讨论因为它是RSI真正意义上的“递归”所在。具体来说这一层包括自动搜索更好的损失函数组合、自动调整训练课程Curriculum、自动发现更有效的推理策略模板、甚至在架构层面做神经架构搜索。这些操作的共同点是它们改变的不是模型的参数而是模型“学习的方式”。这一层目前最大的障碍是评估成本。你要判断一个自设计的目标好不好就得用它训练一轮、评估一轮这个循环非常昂贵。所以现在比较务实的做法是限定搜索空间比如只在几个预定义的损失项之间调权重而不是开放式的自由设计。把这四层放在一起看你会发现RSI的演进路径其实很清晰从选输出到改推理到造信号最后到设计目标。每一层都在把更多决策权从人手里转移到系统内部同时每一层对评估可靠性的要求也更高。下面这张表可以帮你快速定位自己当前的工作处在哪个层次。层次核心操作人的介入程度典型方法落地难度输出筛选从候选中挑好的高定标准拒绝采样微调低推理修正发现并改正错误中给反馈自我反思、迭代修正中信号生成自产偏好数据低设机制AI反馈强化学习中高目标设计改学习方式本身极低定边界课程搜索、损失搜索高3. 自我评估机制RSI能不能转起来全看这一环3.1 为什么评估比生成更难很多人聊RSI的时候注意力都放在“模型能不能生成更好的内容”上但真正卡脖子的其实是评估。生成是开放的评估是收敛的——你得给出一个判断说A比B好或者这版答案比上版好。这个判断如果不可靠整个自我改进循环就会跑偏。我踩过的一个坑是早期做自我修正实验时直接让模型给自己的答案打分结果模型对自己的输出普遍给高分修正前后分数几乎没变化循环跑了五轮效果还不如不跑。后来换成“让模型判断两个答案哪个更好”区分度立刻上来了。绝对打分容易饱和相对比较更稳定这是我在实践中得到的一条经验。综述里也提到了类似的观点评估机制的设计要尽量制造“信息增益”避免模型在自我评估时陷入自我确认的循环。具体手段包括引入参考答案、引入外部工具验证、引入多模型交叉评审等。3.2 三类可用的评估信号从实操角度看能用的评估信号大致分三类各有各的适用场景。第一类是规则型信号。比如代码能不能跑通、数学答案能不能代入验证、结构化输出能不能被解析。这类信号最硬几乎不会出错但覆盖面窄只适用于有明确验证方式的任务。第二类是模型型信号。用一个评审模型对输出做打分或排序。覆盖面广几乎什么任务都能用但可靠性取决于评审模型的能力而且存在被“钻空子”的风险——被训练模型可能学会迎合评审模型的偏好而不是真正提升质量。第三类是混合型信号。把规则和模型结合起来比如先用规则筛掉明显错误的再用模型在剩余候选里做精细排序。这是我在实际项目里最常用的方案兼顾了可靠性和覆盖面。提示如果你刚开始搭自我改进的流程建议先从规则型信号入手把循环跑通再逐步引入模型型信号。一上来就全靠模型评估很容易因为信号噪声太大而看不到效果。3.3 评估机制的常见失效模式评估机制失效的方式比想象中多。除了前面说的打分饱和还有几种情况值得警惕。一种是评估漂移。随着被训练模型不断更新原本有效的评估标准可能逐渐失效。比如评审模型一开始能区分好坏但训练几轮后被训练模型的输出分布变了评审模型的判断就不再准确。解决办法是定期用人工标注的小样本校准评审模型。另一种是奖励黑客。被训练模型发现某种输出能稳定获得高分但这种输出并不是真正高质量的只是恰好符合评估机制的偏好。这在强化学习里很常见缓解手段包括定期更换评估维度、引入对抗性评估、对评估结果做分布监控等。还有一种比较隐蔽的是评估成本失控。如果每轮迭代都要跑大量评估算力消耗会迅速超过收益。实践中需要设定明确的停止条件比如连续两轮评估分数提升低于阈值就停避免无意义的空转。4. 从拒绝采样到迭代优化一条可复现的实操路线4.1 起步方案单轮拒绝采样微调如果你现在就想试一把RSI的思路我建议从单轮拒绝采样微调开始。这是整个技术栈里最容易落地的一环不需要强化学习框架也不需要复杂的奖励模型。具体步骤是这样的先准备一批任务提示数量不用太多几百到几千条就够。然后用当前模型对每个提示采样多条回答比如每条采样8到16个。接着用评估机制给这些回答打分保留每个提示下得分最高的那一到两条。最后用这些筛选出来的数据跑一轮监督微调得到更新后的模型。这里有几个参数需要调采样条数、保留比例、学习率。我的经验是采样条数不要低于8否则筛选空间太小保留比例控制在10%到25%之间太低会导致数据量不足太高则筛选效果不明显学习率要比常规微调小一些因为训练数据质量已经比较高不需要大幅更新。跑完这一轮之后你可以对比更新前后模型在同一批任务上的表现。如果评估分数有稳定提升说明流程是通的可以进入下一轮。4.2 进阶方案多轮迭代与信号复用单轮跑通之后下一步是把它变成多轮迭代。这里的关键是每一轮的数据怎么处理。一种做法是每轮都重新采样、重新筛选数据完全刷新另一种做法是保留历史高分数据和新数据混在一起训练。我倾向于第二种因为历史高分数据相当于一个不断积累的“优质经验池”能缓解单轮数据波动带来的不稳定性。但要注意控制新旧数据的比例旧数据占比太高会让模型更新变慢我一般控制在30%到50%之间。多轮迭代还需要一个明确的停止条件。常见的有三种评估分数连续多轮不提升、模型输出多样性下降到阈值以下、或者达到预设的最大轮次。我一般会同时设两个条件比如“分数不提升”或“达到5轮”哪个先到就停。4.3 信号质量的监控指标迭代过程中光看最终评估分数是不够的还要监控信号本身的质量。我通常会盯三个指标。第一个是筛选通过率。如果通过率一直很高说明评估机制区分度不够如果通过率骤降说明模型输出质量出现了波动。理想状态是保持在一个相对稳定的区间。第二个是输出多样性。自我改进的一个风险是模型越来越趋同输出变得千篇一律。可以用去重率或嵌入空间的距离来监控如果多样性持续下降就要考虑调整采样策略或引入多样性约束。第三个是评估一致性。对同一批输出做两次评估看结果是否一致。一致性太低说明评估机制本身不稳定需要先修评估再继续迭代。监控指标健康区间异常含义应对手段筛选通过率10%-25%过高则区分度低过低则质量波动调整评估阈值或采样参数输出多样性稳定或缓降持续下降说明趋同引入多样性约束或调整温度评估一致性高低则评估不可靠校准评审模型或增加评估样本5. 落地RSI时最容易踩的五个坑5.1 把自我改进当成万能药第一个坑是期望值过高。RSI不是让模型凭空变强它是在已有能力的基础上做优化。如果基础模型在某类任务上完全不会自我改进循环也变不出这个能力来。我见过有人拿一个基础能力很弱的模型跑自我改进跑了很多轮效果还不如直接换一个更强的基座。所以动手之前先确认一件事你的基座模型在这类任务上有没有“可优化的空间”。如果它已经能生成一些正确但不够好的答案那自我改进有戏如果它连方向都摸不着那先补基础能力更实际。5.2 评估机制和被训练模型同源同质第二个坑是评估模型和被训练模型完全一样。前面提过这样会导致评估信号快速饱和。更麻烦的是同源模型有相同的偏见和盲区它识别不出的错误被训练模型也识别不出循环就在同一个盲区里打转。我的做法是尽量让评审模型和被训练模型有差异。可以是不同规模比如用大模型评审小模型可以是不同训练阶段比如用上一代模型评审当前模型也可以是不同数据配比让两者在某些维度上有不同的偏好。5.3 忽略数据分布的漂移第三个坑是只看分数不看分布。自我改进跑了几轮之后评估分数可能确实在涨但模型输出的分布已经悄悄偏移了。比如原本能处理多种类型的任务现在只擅长其中一类其他类型的表现反而下降了。这个问题在只看总体分数的时候很难发现。我的建议是分类型监控把任务按类别拆开分别看每一类的表现。如果发现某些类别在下降就要检查是不是训练数据被某一类主导了。5.4 迭代轮次过多导致过拟合第四个坑是贪多。自我改进的收益不是线性的通常前几轮提升明显后面就趋于平缓再往后甚至可能下降。这是因为模型在不断强化自己已有的偏好逐渐过拟合到评估机制的偏好上。我一般会把轮次控制在3到5轮超过这个范围就要非常谨慎。每轮之间留出足够的评估和人工抽查时间确认没有异常再继续。5.5 没有保留基线对照第五个坑是跑完自我改进之后没有和基线做严格对比。有时候分数提升只是因为评估机制本身有噪声或者训练数据里混入了测试集的信息。没有基线对照你根本分不清提升是真实的还是虚假的。我的习惯是每次实验都保留一个不跑自我改进的基线模型用完全相同的评估流程去测。只有基线对比有显著差异才认为自我改进是有效的。6. 这套方法适合什么场景不适合什么场景6.1 高适配场景有明确验证信号的任务RSI这套思路最适合的场景是那些有明确验证信号的任务。比如代码生成你可以直接跑测试用例数学推理你可以代入验证结构化抽取你可以检查格式和字段完整性。这些任务里评估信号是硬的自我改进循环不容易跑偏。另一个适配场景是有大量无标注数据但标注成本高的任务。比如文本摘要、对话生成、创意写作人工标注偏好数据很贵但用模型自产偏好数据就便宜得多。只要评估机制设计得当就能用较低成本获得可观的提升。6.2 低适配场景主观性强且无验证手段的任务反过来如果任务本身主观性很强又没有可靠的验证手段RSI就很难发挥作用。比如开放式创意写作、主观审美判断、复杂价值判断这些任务里“什么是更好的输出”本身就没有共识模型自产的评估信号也很难可靠。这类任务不是完全不能做但需要更谨慎。我的建议是缩小范围把任务拆成更具体的子任务在子任务上找到可验证的信号再逐步扩展。一上来就在大而模糊的任务上跑自我改进大概率是浪费算力。6.3 算力预算与收益的权衡最后说一个很现实的问题算力预算。RSI的每一轮迭代都涉及采样、评估、训练三个环节算力消耗是普通微调的好几倍。如果预算有限就要在“多轮小步”和“少轮大步”之间做选择。我的经验是预算有限时优先保证评估质量而不是迭代轮次。一轮高质量的迭代效果可能好过三轮低质量的空转。具体来说宁可少采样几条但每条都认真评估也不要大量采样但评估草草了事。另外评估环节可以用小模型或规则来降低开销把省下来的算力用在训练上。这个取舍需要根据具体任务来定没有通用答案。7. 我个人在跟进这条路线时的几点体会这份综述我前后读了两遍第一遍快速过框架第二遍重点看方法细节。读完之后最大的体会是RSI这个概念听起来很前沿但拆开来看很多组件已经在工业界用了很久了。拒绝采样、自我一致性、迭代式偏好优化这些都是现成的工具只是以前没有把它们放在“自我进化”这个框架里统一理解。我现在做项目时的习惯是先判断当前任务处在哪个层次再决定用哪套方法。如果只是想让输出质量稳定一点第一层的筛选就够了如果想突破现有能力的上限就得往第二层、第三层走。层次选对了投入产出比会好很多。还有一个很实际的感受是评估机制的建设比生成能力的提升更值得投入。很多人愿意花大量时间调生成模型却不愿意花时间打磨评估流程。但在自我改进的框架里评估是方向盘生成是发动机。方向盘不准发动机越强跑得越偏。如果你也想试水这条路线我的建议是从一个小任务开始把评估、采样、筛选、训练这个闭环完整跑一遍哪怕规模很小。跑通一遍之后你对整个流程的理解会比读十篇综述都深。后面再逐步扩大规模、增加轮次、引入更复杂的评估机制节奏会稳很多。