自我一致性是一种解码策略,不是新模型,也不用额外训练。它让模型对同一道题用思维链采样出多条不同的推理路径,再对各条路径的最终答案做多数投票,得票最多的答案就是最终答案。对数学、选择题这类答案能比对的任务,它常比只算一遍更准,但它挑的是模型自己最常给出的答案,不是外部验证。
多算几遍再投票:三步是怎么走的
先用思维链示例提示模型,再把贪心解码换成带温度的采样,从解码器里采样出多样化的推理路径,最后汇总各条路径的最终答案,取出现次数最多的一个。论文在 PaLM-540B 上用 40 条采样路径做对比:GSM8K 小学数学题从 56.5% 升到 74.4%,提高 17.9 个百分点;SVAMP 提高 11.0 个百分点,StrategyQA 提高 6.4 个百分点,ARC-challenge 提高 3.9 个百分点。对的路径常常殊途同归,错的路径各错各的,出现次数最多因此是个有效的筛选信号。
它和思维链、自我反思、Best-of-N 有什么不一样
思维链只生成一条推理路径,贪心解码一次定胜负;自我一致性是在思维链之上多算几遍再投票。自我反思是答完再检查、找到错误后改写答案,是改答案;自我一致性不改任何一条路径,只投票挑一个,没有反馈回路。Best-of-N 加验证器要另训一个打分模型给每条路径打分;自我一致性不需要打分模型,不用额外模型,也不用人工标注,只数票数。论文在 UL2-20B、GPT-3 175B、LaMDA-137B、PaLM-540B 上都验证了这种做法。
什么时候管用,什么时候别指望它
管用要同时满足两个条件:最终答案能提取、能比较,多条路径之间确实有多样性。开放式写作和创意任务没有唯一的答案可投票,无从下手。代价也很直接:采样 40 条路径的成本约是单条路径的 40 倍,延迟和 token 花费随采样数上涨,采样越多提升越明显,但边际收益递减。还有一个容易被忽略的边界:如果模型系统性地错,多数路径共享同一个误解,投票会放大错误答案而不是纠正它。多样性是前提,必须用温度采样;贪心解码每次结果相同,投票毫无意义。判断时先问一句:这道题有没有唯一可比的答案,模型有没有可能换条路走出不同答案;两个答案都是肯定,再考虑多算几遍。