本来想随便写几个字的,写多了,正好博客重建了,就发这里吧。这些年也在 Telegram 频道写了不少东西,看看能不能搬点过来。
我有个假说,LLM生成文本的种种怪味,感觉可能不是靠训练能解决的,更像是源自 LLM 自回归原理。
人是心里有前语言的思绪,然后想办法化为语言说出来的。LLM 并非这样,或者说不是很这样。它在生成下一 token 的过程中是有前语言的「思绪」的,也就是各层的激活,但是非语言的推理中的激活是很快消散的,不会持久化到思维过程。持久化的思考过程都必须落成 token(至少 2026 年工业界主流似乎是这样的)。所以语言这东西对于 LLM 带上了一个「辅助推理的工具」的属性。
我最近最恨「不是…而是…」的表达,看到就反味。人当然也会用「不是…而是…」,但明显不一样。观察人写的「不是…而是…」会发现是真的有点意外的转折,至少可以看出作者想要表达一个有点意外的转折。两个小句的前后是给出额外信息量的。而LLM喜欢用的「不是…而是…」,前面的「不是」往往是一句没有信息量的废话,生成这个 token 仅仅是一种辅助结构,不是有意图的写作结构,而是一种蓄力1。感觉像是为了激发后面的「而是」部分,这部分在训练的时候会期待给出一个高 reward 分数的结果。若是运气好的话后面的「而是」确实能有点信息甚至惊喜,失败的话后面的「而是」也是个废话空话。无论如何,这时候LLM已经没有办法回头去改掉冗余的「不是」了。
英文中比较刺眼的 em-dash 可能也有类似的作用,在思维中给LLM一个「蓄力」的信号,让它在符号后想办法拿到高评分。
下面是知乎上一个人总结的两条,也可以看出很明显的「辅助蓄力」的成分:
一、假起兴
“有个很好玩的XX”“特别有意思”“特别反直觉的是”……姑且叫做虚假的起兴,就是没话找话硬装惊喜。
起兴是个表达技巧,目的是吸引受众注意力,一个比较典型的例子是“我有一个好消息一个坏消息,你想先听哪个?”
人类表达者用这样的话术太多会让人觉得假模假式,因为你能感觉到对方不是发自内心,而是介于口癖和表达套路之间的习惯。现在AI也学会了这种假模假式,会在没有意外的地方,模拟意外的语气。
AI进入写作模式的时候更容易出现这种拿腔拿调的情况。
二、说狠话
比如描述趋势,明明本来是“线性下降/逐渐下降”,它要说“崩溃”“断崖式下跌”。
这种下意识的语言通胀导致AI无法准确传递程度信息。
说狠话另一个更严重的后果,就是AI自己给自己挖坑,也就是通过生成有偏差的上下文从而滑向更严重的胡说八道。因为LLM是自回归生成的,前面一旦冒出夸张断言,它生成后续内容的时候,为了跟前文保持语义一致,会顺着这个错误继续往下编,让错误滚雪球。
抱着这种观念,就比较容易鉴别出文本的AI味了,漫山遍野哇!看个小黄文中间插了一句可疑的「不是…而是…」,就被泼了冷水。
不过这个理论有个问题,就是现在已经分为推理阶段和实际生成阶段了,理论上可以在实际生成阶段去掉冗余吧。
本文全手敲,找 LLM 核查了一下有没有事实错误,LLM 说有,我决定无视它,因为我任性。
-
注意这里是故意的用了人类写的「不是…而是…」结构。 ↩