最近看到池老师的一篇文章:沉寂两个月后 AK 终于发声:理解 LLM 输出比以往更重要。
我在思考一种叫“AI 债”的概念,定义为
这里的 $C$ 代表复杂度,complexity。
当前的 AI 水平已经很高,在许多任务上远远超过了我。如果不加限制,它很容易生成超出我控制范围的内容。代码能跑,文章能写,项目也能迅速产出,但在这些产出中,真正属于自己可解释、可判断、可审核的部分,可能并没有那么多。
这样的差距如果不断积累,就会形成一种债。
理解复杂度和审核复杂度
假设让 AI 写一个自由空间传播的 sanity checker。它可能会同时检查各种传输模型近似的适用条件,并分析采样、窗口、混叠等复杂问题。
在这份实现里,我可能无法完整解释所有数值细节、边界条件和工程处理方式。但是,我可以用已知的解析解做基准测试,用理论公式写单元测试,也可以直接观察模拟结果是否符合预期。
这说明,即使我缺乏完整理解,我仍然可能拥有一套独立的审核能力。
因此,原来的 $C_{\text{me}}$ 至少可以拆成两个部分:
- 理解能力 $C_u$:我能不能解释输出在做什么,以及为什么这样做。
- 审核能力 $C_a$:我是否可以依据外部参考、测试用例或不变量,判断输出是否可以接受。
在上面的例子里,实际情况可能是:
AI 输出的复杂度已经超过了我的完整理解范围,但还没有超过我的审核范围。
对应地,AI 债也可以拆成:
这些变量当然很难量化,但至少可以帮助我们简单建模分析,把不同的问题分开讨论。
提示词如何改变复杂度
理解债取决于 $C_{\text{output}}$ 和 $C_u$ 之间的差距,审核债取决于 $C_{\text{output}}$ 和 $C_a$ 之间的差距。
有了上面的两个公式,我们就可以重新理解一些常见提示词是怎么起作用的。
比如,我们经常让 AI“说简单一点”,或者“假装我是初中生”,”explain it like I was 5”。这实际上是在降低输出的概念密度,让 $C_{\text{output}}$ 更接近理解能力 $C_u$。
要求“一步一步解释”,是在把原本省略的中间过程展开;要求“举个例子”,是在用熟悉的对象进行抽象概念;要求输出图表,则是在改变信息的表达方式,让复杂关系更容易被理解。
最近 Karpathy 提到使用 ASD STE100 来解释复杂技术内容,也是类似的思路。通过限制词汇、简化句法和减少歧义,降低理解难度。
这些提示词都在降低输出的理解复杂度,从而缩小 $C_{\text{output}}$ 和 $C_u$ 之间的差距。
如果想缩小审核债,也就是缩小 $C_{\text{output}}$ 和 $C_a$ 之间的差距,可以要求 AI 提供测试用例、reference 或 invariant,让我们拥有独立于 AI 解释之外的验收依据,从而提高审核力。
输出语言也会改变复杂度
输出语言本身也会影响 AI 输出复杂度,而且这里其实有两个不同的问题:表达语言和信息来源。
比如“用英文回答”,不仅会改变最终输出的语言,也可能改变 AI 使用的信息来源和语言分布。很多专业术语、论文、官方文档和技术规范最初就是英文,直接使用这些材料,可以减少一次翻译映射。
例如 field 在不同中文语境里可能被翻译成“场”“光场”“复振幅分布”等。这说明使用合适得语言可以增强 AI 输出稳定性,进而降低复杂度。
所以一个更稳定的提示词可以是:
优先使用英文原始资料,但用中文回答,同时保留专业术语的英文原文。
这样一来,一方面约束了信息来源,减少中间翻译带来的失真;另一方面又通过中文输出降低理解门槛。
前者减少了 $C_{\text{output}}$ 中由信息来源和翻译带来的不确定性,后者则提高了 $C_u$ 和 $C_a$。
AI 债发生在生成还是采用
接下来还有一个定义上的问题:AI 债究竟是在生成那一刻产生的,还是在我们采用它的时候产生的?
最近在做很多调研,我越来越明显地感觉到,AI 可以一次输出大量信息,但如果缺少后续检验,信息很容易逐渐失真。
假设我想买扫地机器人,让 AI 帮我列出二十个型号并做横向比较。它可能会列出大量我完全不了解的参数,比如不同的导航技术、越障高度和集尘方式。
此时,$C_{\text{output}}$ 可能已经远远超过我的理解和审核能力。但我并不觉得自己已经欠下了 AI 债,因为这些内容目前还只是候选信息,我并没有拿它们做任何实质性的决定。
所以,AI 债是在“采用”阶段产生的,只有当我们真正接受这些内容,作为行动和决策的依据,债务才开始累积。
在上面的例子是我下单那一刻。
下面进一步讲一些常见的应用场景。
场景 1:学习,允许可控超界
在学习新知识时,最好让输出内容在最近学习区。不是说所有输出都低于自己的理解能力,在这种情况下,理想的状态是:
这里的 $\delta$ 就是我希望多学到的那一小步知识。
如果 $\delta = 0$,说明 AI 说的东西我已经完全掌握,学习价值就很有限。如果 $\delta$ 太大,我得到的则会是一篇看起来信息量很大、实际上无法真正消化的答案。
这时候,前面提到的通俗解释、分步推理、类比和图表就有了明确作用。它们是在调节输出复杂度,让它落在刚好能够继续学习的范围内。
场景 2:生产代码,守住审核边界
代码上生产环境,真正关心的是测试覆盖率。所以
AI 完全可以写出我自己写不出来的算法,但当我准备把这段代码合并进去时,我必须有足够的判断依据,比如测试用例、性能基准。
场景 3:文章,核心逻辑需要自己覆盖
文章主要强调事实和观点,如果一篇文章以我的名字发表,其中的核心观点通常需要由我自己解释和捍卫,事实需要可检验。
对于文章的核心论证部分,我更希望满足:
也就是说,AI 可以在修辞和句法上超过我的日常表达,但是如果 AI 悄悄加入了一条我从未想过的逻辑链,比如从概念一推到概念二,再进一步延伸到概念三,而我只是读完以后觉得“好像有道理”,这是不允许的。