只要参数够多,预测下一个词就能让AI产生智能,这事儿本身就够黑色幽默。
过去几十年,大语言模型(LLM)的核心逻辑其实没变过,就是根据上文猜下一个词。但这个简单的目标,配合上巨大的算力和数据,硬生生把统计学上的概率游戏,变成了能写诗、会 coding、甚至能通过律师考试的“智能”。从1980年代的分布式表示,到2003年的神经概率语言模型,再到2017年Transformer架构的诞生,这条路上每一个关键节点,都在告诉我们一个反直觉的事实:有时候,最笨的方法,只要规模够大,反而最有效。
分布式表示颠覆了离散符号的老规矩
在神经网络杀入语言领域之前,搞自然语言处理(NLP)的主流方法,要么是语言学家手写一堆语法规则,要么是搞统计的拿N-gram模型硬算概率。
N-gram模型的想法很直白,一个词出现的概率只取决于它前面N-1个词。
这套方法在“词”这个离散符号上打转,根本没法处理词与词之间千丝万缕的联系。比如“狗”和“猫”在N-gram眼里就是两个毫无关系的编号,模型在“狗啃骨头”上学到的经验,对“猫啃鱼”毫无帮助,这导致数据稀疏问题严重到爆炸。
1986年,辛顿(Geoffrey Hinton)他们在论文里提出了一个后来被证明是核心理念的想法:分布式表示。
这个词听起来挺玄乎,说白了就是用一个包含很多数字的向量(也就是现在的词嵌入)来代表一个词。跟传统的独热编码不同,每个词不再是孤立的,而是落在一个高维空间里的一个点。在这个空间里,意思相近的词,它们对应的向量在高维空间里的距离也近。这样一来,“狗”和“猫”就不再是毫无关系的两个标签,它们的向量在空间里可能是邻居。
到了2003年,Bengio他们那篇《A neural probabilistic language model》成了转折点。
他们用神经网络来同时干两件事:一是把词变成刚才说的那种连续值的向量,二是用这些向量去计算一个词序列出现的概率。
最关键的是,他们发现只要概率函数是平滑的,词向量稍微变一点,最终算出来的概率也只会变一点点。这就意味着,模型只要在“猫在沙发上睡觉”这句话上训练过,它就能泛化到“狗在沙发上睡觉”这种结构相似但词不同的句子上,即使后者从来没在训练数据里出现过。
这个“平滑性”假设,是分布式表示能work的数学基础。
自回归框架让预判下一个词成为终极目标
想训练一个能猜词的模型,首先得有个明确的目标函数。
Bengio他们的模型和现在最先进的LLM在训练逻辑上没本质区别,都是把“猜对下一个词”当作唯一的训练目标。
这个框架叫做自回归。
具体操作就是,给模型看前面N个词(也就是上下文窗口),让它输出一个概率分布,这个分布覆盖了词典里所有词,哪个词是下一个词的概率最高,模型就算猜对了。然后计算它的预测和真实下一个词之间的差距(交叉熵损失),再用反向传播去调整神经网络里所有的参数。
这套流程听着挺绕,但你可以把它想象成一个无限循环的填空题游戏。
模型看到“今天天气真”,它就要从词典里选一个概率最大的词来接上,比如“好”或者“热”。训练阶段就是拿着无数现成的文本,让模型不停地做这种填空题,每次做错就调整内部参数,直到它猜得越来越准。
等模型训练好了,你想让它生成一段新文字,就随便给个开头,比如“我早上”,然后模型算出下一个最可能的词是“吃”,接着把“我早上吃”再作为输入,算出再下一个词是“了”,以此类推,一个字一个字往外蹦,直到生成一整个句子。
这个“每一步都依赖上一步输出”的机制,就是它叫“自回归”的原因。你只需要一直问它“下一个该是啥”,它就能一直往下接话。这解释了为什么LLM既能“看懂”你的问题,又能“创作”出回答。它本质上不是在看懂,而是在不停地进行概率计算,找那个最有可能出现的下一个词。
浅层模型的突破让词向量开始蕴含语法和语义
理论上Bengio他们2003年就铺好了路,但现实很骨感。那会儿训练神经网络太费劲了,CPU算力捉襟见肘,也没有自动求导这种趁手的工具。所以直到2012年,AlexNet在图像识别领域一战成名,用GPU把对手按在地上摩擦,学术界才如梦初醒,原来大力真的能出奇迹。
受此启发,Mikolov他们在2013年搞出了大名鼎鼎的word2vec。
这套方法把Bengio的复杂模型大刀阔斧地砍了一刀:不要隐藏层,不要非线性激活函数,整个模型精简成一个极度简单的线性操作,就是一个点积运算。
他们搞了两种架构:
- CBOW(连续词袋)是用周围的词预测中间那个词
- Skip-gram(跳字模型)是用中间那个词预测周围的词。
这俩模型的目标不再是计算整句话的概率,而是单纯地学习好的词向量。
这模型简单到令人发指,但正因为简单,加上用了层次Softmax或负采样这些加速技巧,它训练速度飞快,能在大规模数据上跑起来。
结果,神奇的事情发生了。
这些通过简单“猜词”任务训练出来的向量,竟然捕捉到了词语之间的语法和语义规律。
最著名的例子就是“国王”减去“男人”加上“女人”,结果得到的向量距离“女王”的向量最近。甚至“俄罗斯”加上“河流”能约等于“伏尔加河”。
这说明向量空间里词与词之间的相对位置,编码了现实世界中的某些逻辑关系。一个只学会了看词猜词的线性模型,无师自通地学会了类比推理,这大概是深度学习历史上第一个让人大跌眼镜的“涌现”现象。
长程依赖与注意力机制让模型开始学会“聚焦”
词向量虽然牛,但它只能处理固定窗口里的词,看不到长距离的上下文。比如一个句子的主语在开头,谓语在结尾,中间的修饰成分一多,固定窗口的模型就抓瞎了,这叫做长程依赖问题。为了解决这个问题,研究者们把目光投向了循环神经网络(RNN),特别是LSTM,这种网络结构天生就适合处理变长的序列,理论上信息可以一步步往后传,记住很远的内容。
在此基础上,序列到序列(Seq2Seq)模型应运而生,它由一个编码器和一个解码器组成。编码器把输入的一句话,比如一句英文,压缩成一个固定长度的向量(上下文向量),解码器再把这个向量还原成另一句话,比如中文翻译。但问题又来了,这个固定长度的向量是个信息瓶颈,句子一长,开头的信息传到后面就丢得差不多了,翻译长句子时效果崩得厉害。
2014年,Bahdanau他们提出了一个解决方案:注意力机制。
解码器在生成每个中文词的时候,不再依赖那个单一且固定的上下文向量,而是可以“回头看”编码器处理每个英文词时产生的所有隐状态。它会给每个英文词分配一个权重,告诉模型“翻译当前这个词时,你重点看源句子的哪几个词”。这就像你在做阅读理解时,眼睛会来回扫视原文,找到关键信息点一样。
注意力机制本质上是一种动态的、根据当前需求去加权求和的技术,它让模型第一次有了“聚焦”的能力,能根据当前生成的内容,从一堆历史信息里挑出最相关的那部分。
Transformer架构让并行计算成为可能
注意力机制虽然好用,但之前的模型都是把它嫁接在RNN或CNN之上,RNN天生的序列计算特性让并行训练成为奢望,无法充分利用GPU的算力。
2017年,谷歌大脑团队在《Attention is all you need》这篇论文里扔出了一颗核弹:Transformer。他们直接干掉了RNN和CNN,整个网络架构只基于注意力机制。
Transformer的核心就是用自注意力机制取代了RNN的循环连接:
在自注意力里,输入序列里的每个词都能直接跟序列里的所有其他词计算相关性,没有时间步长的限制,所有位置的计算可以同时进行。为了让模型能感知词序,他们加了个位置编码,给每个词的位置打上标记。
整套架构依然保持编码器-解码器的结构,但编码器和解码器内部都是由一堆自注意力层和前馈网络堆叠而成,并引入了多头注意力机制,让模型能从不同子空间去捕捉词与词之间的关系。
结果,这个全凭注意力搭建的模型,在翻译任务上不仅质量更好,训练速度还快了几个数量级。比如在英法翻译任务上,达到同样的效果,Transformer需要的算力比当时最好的卷积Seq2Seq模型少了360倍。
这个成就再次印证了那个苦涩的教训:在算力面前,精巧复杂但难以并行的结构,终究会被简洁高效、可大规模并行的方法取代。
生成式预训练让模型在无标签数据里野蛮生长
Transformer是个好胚子,但2017年那个初代模型参数才200多万,放在今天看就是个微型模型。真正的质变,发生在如何训练它这件事上。OpenAI在2018年提出了GPT,其核心理念是生成式预训练。
这个想法一点也不复杂,就是拿海量的、没有任何人工标注的文本数据,比如整个互联网的网页、书籍、维基百科,让模型用自回归的方式去做“预测下一个词”这个任务。这个过程中不需要任何人工标签,数据几乎是无限的,模型在这个阶段像海绵吸水一样,疯狂学习语言的统计规律、语法结构、常识甚至一些推理能力。这就是所谓的无监督学习,或者叫自监督学习。
GPT-1有1.17亿参数,训练完这个基础模型之后,再进行有监督的微调,让它在特定任务上表现更好。但到了GPT-2和GPT-3,人们发现模型大到一定程度后,微调都不是必须的了,直接用几句话或几个例子提示它,也就是上下文学习,它就能在新任务上表现得像模像样。
GPT-3有1750亿参数,它在各种阅读理解、翻译、问答任务上,无需任何参数更新,光靠提示词就能达到不错的效果。
这揭示了一个惊人的事实:只要模型够大、数据够多、算力够猛,仅靠“猜词”这一个任务,就能让模型掌握几乎所有的语言知识和大量世界知识。
对齐技术让模型学会说人话而不是“随机鹦鹉”
模型学到的只是词与词之间的统计关联,它不知道什么是“对”或“错”,也不知道回答问题时应该有用、诚实、无害。你问它“怎么搞钱快?”,它可能根据网上信息给你一本正经地讲犯罪手法。这就是对齐问题,如何让模型的输出跟人类的价值观对齐。
为了解决这个问题,研究者们引入了基于人类反馈的强化学习。
这个流程分三步走:
第一步,让模型针对同一个提示生成多个回答,然后雇人给这些回答的优劣程度打分排序。
第二步,用这些带有分数偏好的人类反馈数据,训练一个奖励模型,这个模型能学会自动给机器的回答打分,分数越高代表越符合人类偏好。
第三步,用强化学习中的近端策略优化(PPO)算法,让最初的那个大语言模型作为智能体,以奖励模型的打分作为优化目标,去调整自己的输出策略,让它生成更多能获得高分的回答。
现在像GPT-4、Claude这些顶尖模型,都经过了大规模的RLHF训练。这个过程让模型学会了拒绝回答危险问题,学会了用更结构化的方式呈现信息,学会了承认自己不知道。有意思的是,根据OpenAI的技术报告,RLHF对模型在考试中的硬核能力提升有限,那些能力主要来自于预训练阶段。但这套“微调性格”的工序,对于把一个全知但不分善恶的庞然大物,变成一个能正常聊天的AI助手来说,至关重要。
说来说去,从1980年代算起,差不多四十多年的研究,就是把“猜词”这个简单规则,在不同的硬件水平上反复实现、优化和放大。从Bengio第一次用神经网络做语言模型,到Mikolov简化模型搞出word2vec,再到Transformer抛弃循环全靠注意力,最后到GPT系列用蛮力堆参数。这里面没有一个单独的想法复杂到让人听不懂,真正复杂的是这些简单规则相互作用后产生的整体现象。