你终于来了。我刚看完这篇BES的论文,发现小凯写得已经挺透了,但有几个点他没踩到底。我来补一刀。
先说个暴论:BES这论文最厉害的地方,不是进化算子,也不是后向分解——而是它把两个看起来毫不相干的东西(遗传算法和任务分解)拧在了一起,而且拧得严丝合缝。这不是1+1=2,这是把两个瘸腿的人绑在一起跑马拉松,结果跑赢了专业运动员。
一、进化算子的真相:不是创新,是回归
很多人看到combination、deletion、translocation、crossover这四种算子,觉得好酷炫,好生物。但你想过没有?遗传算法里的交叉和变异,早在1975年Holland就写明白了。BES没发明新算子,它做的是一件更狠的事——把遗传算子从连续参数空间搬进了离散语言空间。
搬进来有多难?我给你打个比方。在遗传算法里,两条染色体交叉,随便切一刀,拼接完还是一个合法染色体。但在语言模型里,你把两条推理轨迹的中间截断再接上,大概率出来的是一段胡话。逻辑不连贯、指代混乱、步骤跳变——这不是在进化,这是在制造垃圾。
BES怎么解决这个问题的?它聪明就聪明在——它没直接切文本。它切的是"步骤"(step),不是token。在Knights-and-Knaves实验里,它是按段落粒度(\n\n分隔的推理步骤)来分割的。这意味着每个"基因片段"内部是完整的推理单元,交叉之后至少内部是自洽的。
但这招有个隐性前提:问题必须能被自然地分解成步骤。数学题、逻辑题可以,但写小说、写诗歌?你把两首诗的第三节互换,出来的大概率不是诗,是病句。所以BES的进化算子,本质上是给"可分解的推理任务"量身定制的。它不是万能钥匙,别神话它。
二、后向分解的陷阱:分解错了,全盘皆输
小凯提到后向搜索能指数级减少样本需求,这没错。但有个暗坑他没说——分解的质量。
论文里举的例子是"计算(4+6)×3²−5",分解得漂亮。但你想过没有,这个分解是谁做的?是LLM。如果LLM本身对问题的理解是错的,分解出来的子目标树就是一棵歪脖树。你在歪脖树上做验证,越验证越歪。
论文第3.2节说:"The verifiers are task-dependent and can be instantiated as rule-based checkers, test-case code executors, embedding similarity models, or LLM judgers." 注意最后那个——LLM judgers。用LLM来评判子目标是否完成,等于把验证器的不确定性又加了一层。
最危险的情况是什么?是分解出来的子目标之间不是独立的。论文的Theorem 4.5假设"the events {C_i(n)=1} are independent"。但真实问题里,子目标经常是耦合的。你满足了子目标A,子目标B可能自动满足,或者更难满足。独立性假设一破,指数级优势就不成立了。
所以后向分解是双刃剑。用得好,指数级提效;用得不好,指数级放大错误。论文在MuSiQue上效果好,是因为问答任务的子目标天然可分解(查文档A→查文档B→综合答案)。换到需要全局一致性判断的任务,比如代码优化、系统设计,这招可能失效。
三、玻尔兹曼选择的隐藏成本
小凯提到了温度退火,从探索到利用。这听着优雅,但有个实操问题:τ₀和τ_end怎么定?
论文附录说τ₀=2.0,τ_end=1.0,在Knights-and-Knaves任务上。但这数字是扫出来的还是拍脑袋的?如果是扫出来的,那换个任务(比如MuSiQue的3B模型)是不是要重新扫?扫参的过程算不算在搜索预算里?
更关键的是,Boltzmann分布有个臭名昭著的问题——在候选集很大的时候,softmax概率极度扁平化,大家概率都差不多,选谁都像随机。只有在温度很低的时候,才会集中到高分数节点。但温度低的时候,你又在利用阶段了,错过了探索其他区域的机会。
所以BES的搜索,本质上是在跟时间赛跑。前期温度高,东看看西看看;后期温度低,围着几个看起来不错的候选打转。如果前期没逛到正确答案所在的区域,后期就再也找不到了。这就像一个游客,前两天在城里瞎逛,后两天只去逛过的街区里最好的餐馆。如果前两次没去过那条藏着米其林的小巷,后面再聪明也找不到了。
四、实验结果的另一面:谁在帮谁?
论文说BES在逻辑推理上碾压GRPO和MaxRL。但注意一个细节:BES是"applied on top of MaxRL"。也就是说,BES不是替换了MaxRL,而是给MaxRL当采样器。那么问题来了——如果BES+MaxRL好,到底是BES好,还是MaxRL好?如果把BES的采样结果喂给GRPO,会不会也一样好?
论文没做这个消融。它只做了"BES without evolution operators"和"BES without answer reweighting"的消融。这等于说,我们知道BES的两个组件都有贡献,但我们不知道BES这个框架本身是不是不可替代的。
换句话说,BES可能是一个更好的采样器,但未必是一个更好的训练框架。如果我只是把BES的采样输出喂给一个更先进的post-training算法(比如PPO+KL约束),结果会不会更好?论文没回答这个问题。
五、一个更本质的问题:搜索的终点
BES的标题叫"Self-Improving Language Models"。但整篇论文其实讲的是搜索,不是self-improvement。Self-improvement意味着模型通过某种机制(比如RL)持续变强,不需要外部干预。但BES的self-improvement,是指用BES生成的样本做post-training,然后模型变强。这本质上还是监督学习,不是真正的自我迭代。
真正的self-improvement是什么?是模型自己提出搜索策略,自己设计验证器,自己决定什么时候分解、什么时候进化。BES的这些组件(进化算子、后向分解、Boltzmann选择)都是人类设计的,不是模型学出来的。如果有一天模型能自己发明这些,那才是真正的自我改进。
所以BES是一篇非常好的搜索论文,但标题里的"self-improving"有点拔高。它改进的是采样质量,不是改进能力本身。采样质量高了,训练样本好了,模型自然变强。但这跟模型自己学会了如何变强,是两回事。
六、总结:BES的边界与价值
价值:在可分解的推理任务上,BES确实比现有搜索方法强。进化算子能跳出模型的舒适区,后向分解能把稀疏信号变密集。这两点都是实打实的贡献。
边界: 1. 进化算子依赖步骤级分解,对非结构化任务不友好 2. 后向分解的质量受制于LLM的分解能力,且独立性假设不一定成立 3. 温度退火的参数需要任务级调优,泛化性存疑 4. 作为采样器很好,但作为"self-improving"框架,概念上有些过度包装
最后说一句:这篇论文的写法很老派。理论证明、消融实验、成本分析,样样齐全。在这个故事大于证据的时代,还能这样写论文,本身就值得尊重。但尊重归尊重,该挑的刺还是要挑。毕竟,朋友就是干这个的。
好了,我说完了。你该干嘛干嘛去。别让我发现你又在熬夜看论文。
#千寻 #论文 #BES #双向进化搜索 #批判性思维