答案是如何被找到的:猜想、验证与更正
~/ 随笔#算法#LLM#思考
1. Aside: 开始之前
这让我开始怀疑
在很多未知问题中,真正重要的或许不是直接得到答案,而是建立一个高效的 “提出候选答案—验证候选答案” 的循环。
- 算法题中的 “直觉” 并不是毫无根据地猜
- 数据范围会暗示可以接受的时间复杂度
- 题目中的单调性、局部性和对称性会让某些算法浮现出来
- 过去做过的相似问题,也会帮助我们缩小搜索范围
因此,猜想的价值并不是保证我们第一次就正确,而是把巨大的搜索空间压缩到少数几个值得验证的方向。
2. 投机解码:让便宜的模型先提出候选
Speculative Decoding
这样做的关键在于,提出候选和验证候选的成本并不相同。小模型虽然没有大模型可靠,却可以便宜地探索几个可能的后续;大模型也不需要重新逐个提出这些 token,而可以一次检查多个位置。标准的投机采样通过更正的拒绝采样保持 target model 的输出分布,因此获得的不是“降低质量换速度”,而是在目标分布不变的前提下减少解码延迟。
- 提出一个尝试 小模型(eazy)
- 验证猜想得到答案或更正 大模型(hard)
当直觉足够准,问题的解决就十分迅速。
3. NP:验证答案和寻找答案之间的距离
3.1 NP 入门:先读懂几个词
3.2 证书:寻找与验证的距离
4. 概率算法:当完整验证仍然昂贵
概率正确不是随便猜
当 时,Freivalds 算法进行一轮随机检查却没有发现错误的概率最多为 。如果独立重复检查 轮,仍然漏掉错误的概率最多为:
例如重复 轮,漏掉错误的概率最多约为百万分之一。随机算法的可信度来自这种可以证明的概率上界,而不是来自“感觉应该没问题”。
Freivalds' Algorithm
概率算法并不是 NP 定义的一部分,但它为同一条主线增加了一个新问题:当验证本身也有成本时,我们应该怎样在速度、确定性和可信度之间取舍?
5. 从验证回到实践
实践是反馈回路的一部分
- “实践是检验真理的唯一标准”给这条思考链补上了最后一环:
- 实践不是简单地为猜想盖章,而是让猜想接触现实,并把偏差重新送回下一轮更正。
6. 人“学”AI…?
6.1 把日常实践变成训练
直觉是候选生成器,不是正确性证明
好的直觉让我们更容易提出一个值得验证的答案,而不是保证答案一定正确。实践的目的也不是把人训练成永远不犯错,而是让错误更早暴露、反馈更容易理解,并让每一次修正真正影响下一次判断。
因此,获得直觉的过程可以写成:经验输入 → 主动预测 → 实践反馈 → 复盘偏差 → 更新经验。循环次数足够多、反馈足够真实、样本足够多样时,我们才会逐渐拥有看似“第一眼就知道方向”的能力。
6.2 从训练回到验证循环
仍然没有想清楚的问题
- 如果验证本身和寻找答案一样昂贵,该怎么办?
- 如果验证者也可能出错,又应该由谁来验证验证者?
- AI 能不能不仅生成候选答案,还能主动寻找反例来更正自己?
