有一个判断我最近越来越明确: LLM 产品优化这件事,本质上在分叉。 不是“效果好不好”,而是——你到底在改什么。 是结构,还是概率。
我一开始其实也没意识到这个问题。很多所谓的“优化”,看起来都很合理,比如 prompt 调整、few-shot 补充、system prompt 细化、甚至加一点 heuristic rule。短期看,效果是提升的,有时候还挺明显。 但我后来反过来看这些工作,有点不太对劲。 它们大多数,其实是在“挤概率”。 就是:在当前模型的概率分布上,通过提示词、上下文组织、采样参数,去让某些输出更容易被采出来。 这类优化有个隐含前提——模型本身的能力边界是固定的,你只能在它已有的分布里调权重。 问题也在这里。 如果下一代模型来了,这个分布变了,你之前“挤”的那些局部概率,其实没有任何继承性。甚至很多时候是反向的——你之前的 prompt hack,在新模型上反而变成 noise。 这件事我见过太多次了。
换个角度说。 概率性优化,本质上是在“顺着模型的偶然性工作”。 结构性消歧,是在“对抗模型的不确定性”。 这两个方向,长期结果完全不一样。
我现在越来越倾向于把 LLM 产品问题,拆成一个更底层的判断: 用户的意图,是不是在进入模型之前就已经被“确定”了? 如果没有,那你后面做的一切 prompt engineering,本质上都是在赌。 赌模型能不能在一个模糊输入下,恰好走到你想要的那条路径。 这件事短期是可用的,但不可积累。
我反而觉得,真正有积累价值的,是“结构性消歧”。 这个词我也是后来才慢慢想清楚的。 不是让模型更聪明,而是让输入更“单义”。 比如: 这些事情,看起来不像“AI能力提升”,甚至有点“传统软件工程味”。 但我现在反而觉得,这是 LLM 产品的核心护城河。
这里有个反直觉点。 很多人会觉得:模型越来越强,这些结构是不是就不重要了? 我一开始也这么想。 但后来发现刚好相反。 模型越强,它的“可行路径”越多,不确定性反而更高。 如果没有结构约束,它更容易“合理但不对”。 这点在复杂任务里特别明显。
再说一个我自己踩过的坑。 我们曾经在forge产品开发的一个场景里,通过 prompt 精调,把成功率从 60% 提到了 85%。当时觉得已经很不错了。 但过了一段时间,基础模型升级之后,这个 prompt 直接掉到了 70%,而且还不稳定。 后来我们换了个思路——不是调 prompt,而是把输入拆成结构化字段,再做一次意图归一。 结果是:在旧模型上 80%,新模型上 90%+,而且几乎不需要改。 那一刻我才意识到: 之前那 25% 的提升,其实是“借来的”。
本质上,概率性优化是在做“局部最优解”。 结构性消歧是在改变“问题本身的解空间”。 这两者的时间尺度完全不一样。 前者是版本级的。 后者是范式级的。
如果再往下抽象一点,其实就是: 你是在优化“模型行为”,还是在优化“系统约束”。 优化模型行为,本质上是依赖模型。 优化系统约束,本质上是在定义模型。 这两者谁会被下一代模型覆盖,其实答案很明显。
当然,我不是说概率性优化没有价值。 它在很多阶段是必要的,尤其是 MVP 阶段,你不可能一开始就把结构设计到位。 但问题在于,大多数团队会停在这里。 因为它“见效快”。 而结构性消歧,前期是慢的,甚至是反直觉的——你会感觉在“绕远路”。 但如果你不走这一步,你其实没有在做产品,只是在调模型。
这里其实对应一个更大的分水岭。 有些团队,本质上是在做“模型适配层”。 有些团队,在做“AI-native系统”。 前者的价值,会被模型吃掉。 后者的价值,会随着模型增强而放大。
我现在会用一个很简单的标准来判断一项优化有没有长期价值: 如果明天模型换了,这个优化还在不在? 如果答案是不在,那它大概率只是概率性优化。 如果答案是还在,甚至更强,那它才可能是结构性的。
写到这里,其实有点不太想收束。 因为这个问题我自己也还在反复调整判断。 但有一个方向我基本确定了: LLM 产品的核心,不在“让模型更会做事”, 而在“让问题更少歧义”。 前者是幻觉,后者才是工程。 |