如果人类数据不是最优介质,我们能发现吗?
有件事一直让我想不通。
这几年,我们基本上把人类写过的东西都喂给模型了——网页、书、论坛、技术问答,能数字化的都上了。然后大家就默认这么干是对的。数据越多越好,质量越高越好,越像人写的越好。
但好像从来没人停下来问一句:人写的东西,真的是训练智能系统最好的格式吗?
不是说够不够用,不是说怎么搞到更多——就是,这玩意到底对不对?
这问题听着太简单了,简单到不像个问题。大概这就是为什么没人问。
没人写下来的那条假设
数学这行有个好习惯:假设摆在台面上。
欧几里得当年把公理一条条列出来,”两点之间能画一条直线”,然后说,这个我不证明,当它成立,后面的都从这儿推。正因为他白纸黑字写了,后人才有东西可以挑战。黎曼后来换了一条公理,几何学直接长出一个新分支——还恰好是描述真实空间的那个。
我们这行也有一条类似的假设,但没人写出来过:
人类写的自然语言文本,是训练通用智能系统的最优(或者差不多最优的)数据格式。
整个行业都踩在这上面。Scaling laws 踩在这上面,数据管线踩在这上面,对齐方案也踩在这上面。没人质疑,不是因为验证过了,是因为这东西太底层,底层到你压根注意不到它的存在。
模型的黑箱里到底在搞什么
光看输入输出的话,大模型就是个翻译器:人话进去,人话出来,看着像是在”理解”语言。
但打开内部一看,完全不是那回事。
多语言模型的研究反复指向同一个发现:不同语言说的同一个概念,到了中间层长得几乎一模一样。模型并没有分别”搞懂”中文和英文——它在中间搭了一层跟哪种语言都不像的抽象表示,所有语言进来先映射上去,输出的时候再翻译成你要的语言。
语言不是思维发生的地方。它只是个接口。
而且模型越大越明显。规模上去之后,它越来越多地在那个抽象层里干活,越来越少依赖具体语言。没人设计这件事,它自己就这样了。
这不算什么答案。但它是条裂缝——隐约能看到那条没写出来的假设后面,可能藏着点什么。
人类数据的五个问题
人类数据是人脑在自身局限下产出的东西。这些局限不会因为你拿它去训练另一个系统就自动消失,只会悄悄编进去。
我觉得最要命的有五个。
一、想法在写下来之前就被拍扁了
想东西大概是并行的——你脑子里同时转好几条线,不同维度之间随时建联系。但写字是一个词接一个词。一个念头落到纸上,已经被压成一条线了。
模型学的不是思维本身,是思维被压平之后的痕迹。
有意思的是,transformer 架构天生能并行处理。但训练目标——预测下一个 token——是线性的。能力是并行的,我们偏偏给它套了个串行的枷锁。
二、写出来的和想的不是一回事
没有人会写”我先想到了 A,觉得不太对,退回去琢磨了一下 B,然后突然发现 A 和 B 之间其实有个关系 C”。人写出来的直接就是 C。中间那些犹豫、回头、重新拼装的过程,数据里压根没有。
模型学到的是结论长什么样,不是结论怎么来的。它能输出看着像答案的东西,但从来没见过一个人真的不懂的时候是怎么一步步摸到答案的——因为那个过程没人记录。
三、有些东西人就是说不出来
不是不想说,是语言这工具不够使。
你试过跟人解释一个高维空间里的关系吗?说到最后只能”有点像……但也不完全是……”。语言处理高维、非线性关系的能力很差。但这些关系是真实存在的,而且很可能很重要。
数据里没有的东西,模型永远学不到。人类系统性地表达不了的关系,模型就系统性地缺失。
四、幸存者偏差
网上的文字不是”人类想法”的随机采样。它经过了筛选——写下来的、发出去的、没被删的、搜索引擎收录了的。沉默的大多数、说不清道不明的直觉、非文字文化里的知识,统统不在。
模型拿到的是一个严重偏斜的子集,我们却拿它当全集使。
五、语言自带结构偏见
所有人类语言都有主谓宾(或者类似结构),都偏好因果叙事,都倾向于线性时间。这些是人脑的结构,不是世界的结构。
如果世界上有些重要的模式不走因果链、不沿线性时间、没法拆成主体和客体——人类语言就没辙,模型也就跟着学不到。
那该用什么训练
纯粹的思想实验。把现实约束扔一边,假设从头来过,唯一目标是让模型找到对它自己最顺手的学法——会往哪个方向走?
直接在表征空间上练。 现在表征是预测文字的副产品,碰运气碰出来的。但如果能直接规定好的表征该是什么样——哪些概念该靠近、哪些关系该是线性的——能不能把这个当训练目标,别再靠涌现?
扔掉人类棋谱。 AlphaZero 没学过人类下的棋。它自己跟自己打,打出一套跟人完全不同的风格,然后把最强的人类棋手都赢了。语言模型能不能类似地搞?难点是围棋有输赢,语言没有。但语言隔壁的东西有——证明对不对、代码跑不跑得通、预测准不准。
让模型自己造语言。 多智能体通信的研究已经看到过:让几个模型合作干活,它们会自发搞出一套人看不懂的通信协议,效率比人话高。
这些都不是成熟方案,有的连怎么起步都不清楚。但方向上有个共同点:把人类语言从”训练的本体”降成”接口”。 模型用自己的方式学、自己的方式想,只在需要跟人说话的时候才翻译成人话。
为什么这个问题危险
不在于答案是啥。是也好,不是也好,知道了都能应对。
危险在于:如果人类数据真不是最优的,我们手上的工具可能压根查不出来。
因为评估标准本身就建在人类数据上面。Benchmark 是人出的题,RLHF 是人的偏好,”好”的意思就是”人觉得好”。模型内部要是有一条更优的路,但这条路的输出不像人话,我们的 loss 根本不会指过去——loss 是我们定义的。我们对”更好”的直觉会主动把我们往反方向带。
如果这些模型真正最优的学法在人类数据覆盖不到的地方,我们可能永远都不会知道。
不是因为不够聪明,不是因为不够拼。是因为所有检验用的工具都建在同一条没写出来的假设上。我们用人话定义”理解”,用人的直觉定义”进步”,用人的偏好定义”对齐”。整套逻辑自洽——跟那只火鸡的一千天记录一样自洽。
自洽不等于对。它只说明一件事:你还没碰上感恩节。
结语
我们现在干的事,是在一块从来没被认真查过的地基上使劲往上盖。盖得越高,越觉得地基肯定没事——你看,撑住了这么多。
欧几里得的平行公理也是这感觉。撑了两千年呢。
也许我们正在非常非常努力地,把一只火鸡训练得越来越完美。
我们不知道感恩节是什么。
我们甚至不知道自己不知道。