自然语言处理

语言建模(language modeling)

/ LANG-gwij MOD-ul-ing /

语言建模的核心,就是一个预测下一个词的游戏。给定「今天的天气非常 ___」,语言模型会给可能的下文标上概率:「热」很可能,「晴」很可能,「紫色」不太可能,「的」几乎绝无可能。所谓语言模型,无非就是任何能给词语序列赋予概率的系统——能说出哪些句子听起来像真正的语言,哪些听起来像乱码。这跟你抢在朋友前面把他的话补完,用的是同一种本能。

这么一个朴素的任务,为什么如此要紧?因为要把下一个词预测得真正好,系统就不得不悄悄学到惊人之多的语法、事实和推理。要补完「法国的首都是 ___」,你得懂地理;要补完「她把牛奶倒进了 ___」,你得对物理常识有感觉。这正是今天大语言模型背后那个神奇的洞见:拿一个大神经网络,除了在大半个互联网上预测下一个词之外什么都不干,有用的知识竟会作为副产品掉出来——无需任何标注。

对它是什么、不是什么要诚实。语言模型捕捉的是哪些词序列更可能出现,而非什么是真的;它能产出流畅、自信却彻头彻尾错误的文字,因为「听起来合理」和「正确」根本不是一回事。老式语言模型靠数n元语法;现代的则是神经网络。无论哪种,那个训练目标——猜下一个词元——都是聊天机器人、自动补全、翻译和语音识别底下共同的、安静的引擎。

提示:「我把钥匙落在了厨房的 ___ 上。」一个好的语言模型会把「桌子」「台面」排得很高,把「天空」压到几乎为零。把数十亿次这样的预测叠起来,你就得到一个能写出整段文字的系统。

反复地预测下一个词,就是现代文本生成背后的引擎。

语言模型评的是合理性,不是真实性——流畅的文字也可能自信地胡说。「它能很好地预测下一个词」和「它知道事实」是两个不同的论断;切勿由前者径直推出后者。

又称
LMlanguage model语言模型下一个词预测next-word prediction