当前位置:首页 > 科研成果库

词表之外:自然语言处理里三道被规模掩盖的裂缝

2026-11-15 23:09:18小研科研成果库6

去年秋天在南京一个很小的研讨会上,一位做机器翻译的老师说了句话,我记到现在:“我们花了二十年教机器认字,结果它先学会了猜。”话糙。但它确实戳中了这几年的某种尴尬——系统越来越会说人话,我们对它为什么这么说,反而越来越说不清。

下面这三件事,是我认为目前最容易被“规模会解决一切”这句话盖过去的地方。它们不是一份待办清单,更像几道结构性裂缝。

一、子词切分不是清洗步骤,它是一次建模决策

多数教材把分词、BPE 归到数据预处理里一笔带过。这个归类本身就误导人。词表一旦定下来,模型的归纳偏置就被写死了:哪些形态变化被共享,哪些被拆散,序列被拉长到什么程度,注意力该花多少预算在无意义的拼接片段上。这些都不是超参,是架构的一部分。

以 BPE 为例。它在语料上按频次贪心合并相邻符号对,最后拿到一个固定大小的词表。问题在于——词表是按频次建的,而频次服从 Zipf 分布。结果是高频功能词几乎必定占据独立条目,低频实词被迫碎成字节级片段。一份临床病历里的生僻药名,可能被切成六七个 token;而“的”“the”各占一格。模型的容量就这么多,谁占得多,谁就挤掉了别人。很公平吗?不见得。

BPE子词合并过程词表构建示意图BPE子词合并过程词表构建示意图

更麻烦的是跨域。词表在通用语料上训好,迁到代码、法律条文、少数民族语言时,切分歧义会直接变成错误级联。有人试过用字符级建模绕开这件事,代价是序列长度暴涨三四倍,长程依赖反而更难学。所以这是个没有免费午餐的取舍,而不是一个已经解决的问题。

二、分布假设撞上的那堵墙

“一个词的意义由它的同伴决定。”这句话支撑了整个统计自然语言处理的地基。它极其有效。但它有一个被反复提起、又被反复忽视的反例:反义词的上下文分布高度相似。“热”和“冷”出现的句法环境几乎一致,在向量空间里它们距离很近。所以“近”从来不等于“同义”,余弦相似度度量的是可替换性,不是意义。

再往上一层,否定、量词辖域、逻辑蕴含,这些在共现统计里几乎没有信号。“不是每个学生都及格”和“每个学生都不是不及格”——字面共享的词占了绝大多数,语义却差得远。模型能靠规模学到一部分模式,但它学到的更像一个关于世界的隐式统计模型,而不是一套可检验的语法规则。

自然语言处理注意力权重热力图可视化自然语言处理注意力权重热力图可视化

有人会说,组合性早就被 Transformer 解决了。我的观察是:部分解决,且解决得很脆。改一个语序,或者插一句无关从句,输出就可能翻车。这类失败不是随机噪声,它们集中出现在需要精确作用域的地方——否定、指代消解、多跳推理。规模能压低错误率,但压不下去的是错误的结构。

三、解码那一步,流畅和真实开始分家

自回归解码的每一步都在选概率高的下一个词。注意,是概率高,不是真的。这两件事在短句上高度相关,在长文本上逐渐脱钩。模型没有“我不知道”这个高概率出口——训练语料里拒答的样本太少了,于是它在证据不足时依然沿着高概率路径往下写。写得很顺。顺得让人放下戒心。

温度、top-p、beam search 这些旋钮调的是多样性,不是事实性。把温度调低,只是让模型更坚定地重复它最想说的那句话,而那句话未必有出处。至于用人类反馈做对齐,优化的是人类偏好的代理指标。而偏好标注里有个系统性偏差:语气笃定、结构工整的回答,比“我不确定”更容易拿到高分。于是校准被推着往自信的方向走。这不是模型学坏了,是目标函数本来就长这样。

顺带一提,让模型“一步步想”的那类方法,本质是把一条长概率路径显式铺开。它在多步算术上确实有用。但它同时把每一步的错误也铺开了——中间结论一旦跑偏,后面会被稳定地继承下去。中间步骤看起来像推理,其实是条件采样。

检索增强能缓解一部分。但它也引入新的污染源——检索段落本身如果跑偏,模型会同样自信地把它转述出来。边界在哪,目前没有理论上的答案,只有工程上的阈值。

四、评测这件事,我们其实在测什么

四、评测这件事,我们其实在测什么四、评测这件事,我们其实在测什么

基准分数和可用性之间的相关性,比想象中弱。测试集泄漏是老问题;prompt 模板的措辞差异,能让同一个系统在同一个任务上浮动出好几个点。人工评测的标注者一致性也常常低得让人不安。换句话说,公开榜单测的是在特定模板、特定分布下的一次抽样表现,它和你的业务场景之间隔着一整个分布偏移。

一个值得记住的现象:领域适配带来的稳定性,往往不来自参数规模。在垂直语料上做过继续预训练的系统,在它熟悉的分布里,输出会更保守、更贴文档。这不是什么励志故事,只是提醒——适配度是个被低估的变量。

五、裂缝是否会被规模抹平

五、裂缝是否会被规模抹平五、裂缝是否会被规模抹平

短期看,不会。子词切分是离散的一步,梯度到不了那里;分布假设的边界由语料决定,不由参数量决定;解码和校准的偏差写在对齐目标里。这三件事都落在连续优化的盲区。有意思的是,最近一些工作开始把结构化先验重新搬回来——显式的句法约束、可微的离散选择、带证据引用的生成。绕了一圈。

也许本来就是这么回事:符号和向量,谁也别想单独赢。

我不确定这些裂缝最终是会被填上,还是会被证明本来就是特征而非缺陷。但至少在把它们当成工程细节之前,值得先承认它们是问题。