第 1 章  ·  语言模型(二)-从数据中学习规律

第1章 第9节 语言模型(二)-从数据中学习规律


第1章 第9节 语言模型(二)-从数据中学习规律

阅读指南

上一节,我们了解了语言模型如何用数学建模语言的概率分布。这些语法规律、语义规律,是人工编程进去的吗?

本节将揭示规律是如何从海量数据中自动"涌现"出来的。


9.1 规律是“学”出来的,不是“编”出来的

这些语法规律、语义规律、上下文规律,是人工编程进去的吗?

不是。完全不是。

没有人告诉ChatGPT“猫不会飞”,没有人告诉它“‘的’不能跟在‘喜欢’后面”,没有人告诉它“‘它’要指代前面的名词”。

这些规律,全部是从数据中自动“浮现”出来的。

训练数据中的模式

在ChatGPT的训练数据(几千亿个词)中,“猫会爬树”可能出现了成百上千次,“猫会飞”几乎从未出现(除非是在童话故事里)。“我喜欢吃”出现了数百万次,“我喜欢的吃”几乎从未出现。

模型通过统计,“学”到了规律

在不断调整那1750亿个参数的过程中,模型逐渐“发现”:在“猫会”后面,“爬树”出现的频率远高于“飞”;在“我喜欢”后面,“吃”出现的频率远高于“的”。

然后,它把这些统计规律编码进参数中。最终,当问它“猫会____”,它会给“爬树”更高的概率。

这是一种深刻的哲学转变

传统的自然语言处理,是语言学家总结语法规则,程序员把规则写成代码,计算机执行这些规则。

而现代的语言模型,是收集海量文本,让模型自己从文本中学习规律,规律自动“浮现”在参数中。

前者是“演绎法”:从规则到应用。后者是“归纳法”:从数据到规律。

ChatGPT的成功,很大程度上证明了在足够大的数据和足够多的参数下,归纳法可以超越演绎法。

9.2 为什么归纳法更有效?

这个发现,颠覆了人们对AI的传统认知。

演绎法的局限

传统方法依赖语言学家手动总结规则。但语言太复杂了:语法规则就有成千上万条,而且每条都有例外。比如“我吃饭”符合语法,但“我饭吃”不符合。但“饭我吃完了”又符合了(话题前置)。更不用说网络用语:“今天emo了”、“绝绝子”、“YYDS”……

如果要把所有规则都写进代码,几乎不可能。而且语言还在不断演化,规则永远跟不上变化。

归纳法的优势

语言模型不需要任何人告诉它规则。它只需要做一件事:看足够多的文本,统计规律。

在训练数据中,“我吃饭”出现了500万次,“我饭吃”出现了100次(多半是打字错误),“饭我吃完了”出现了50万次。模型通过统计,自动学会了:“我”后面接“吃”再接“饭”,概率高;“我”后面直接接“饭”再接“吃”,概率低;但如果上下文是“吃完了”,那“饭我吃”的概率就提高了。

不需要任何人告诉它语法规则。它自己从数据中“悟”出来了。

“大力出奇迹”的第一次体现

这里看到了“大力出奇迹”的第一次体现:不是靠精巧的算法设计,而是靠海量的数据加巨大的计算力。

当数据量足够大时,规律会自然浮现。这种思路看似“笨”,但却异常有效。

这也是为什么大模型需要“大”:不够大的话,规律就浮现不出来。

9.3 ■ 学点英语

中文 English 音标 说明
归纳法 Inductive Learning /ɪnˈdʌktɪv ˈlɜːnɪŋ/ 从大量具体数据中自动总结规律的方法,现代语言模型的核心范式
演绎法 Deductive Reasoning /dɪˈdʌktɪv ˈriːzənɪŋ/ 从已有规则出发推导结论的方法,传统编程的语言处理方式
统计学习 Statistical Learning /stəˈtɪstɪkl ˈlɜːnɪŋ/ 从数据中发现统计模式并将其编码到模型参数中的学习方法
参数 Parameter /pəˈræmɪtər/ 模型在训练过程中学习到的可调整变量,编码了从数据中学到的知识和规律
语料库 Corpus /ˈkɔːrpəs/ 用于训练或评估语言模型的大规模文本集合(复数形式:Corpora)
模式识别 Pattern Recognition /ˈpætərn ˌrekəɡˈnɪʃən/ 从数据中发现重复出现结构的能力,语言模型通过统计模式识别语言规律
训练数据 Training Data /ˈtreɪnɪŋ ˈdeɪtə/ 用于训练模型的原始文本集合,是模型学习语言规律的知识来源

9.4 ■ 思考帧

来自: 学习中心|逻辑帧 Logic Frame

语言模型(一)-什么是语言模型 语言模型(三)-语言模型的演进
本节目录