Skip to content

LLM Chronicles Talk

我会从概念和历史的角度回顾一下大模型,或者说大语言模型。这里不会涉及深入的技术细节,而是尽量用简单直观的语言来给大家解释这些年来到底发生了什么,以及是如何发生的。重要是事件而非技术。

这里我想分享一个洞察,就是早在很多东西被应用之前,已经很早就被验证过了。大部分大家在讨论的大模型应用技术和概念,比如Prompt Engineering、Fine Tune、CoT、Tool Use、RAG、ReAct甚至Mixture of Experts等其实都在2022年甚至之前就已经提出。我们可以在接下来的内容里分别看一下这些内容。

什么是语言模型

首先我们先看一下,为什么是大语言模型,或者说,为什么我们要叫他们 Large Language Model?

我们一层层地来看,既然是 Large Language Model 了,那是不是之前还应该有 Small Language Model?或者其他什么乱七八糟的 Language Model?

那什么又是 Language Model,也就是语言模型呢?

我们来看这张图,这是 Huggingface模型列表页面上的一个筛选控件,上面展示的是与“自然语言处理”相关的任务类型:

400

这其实都是早期的“语言模型”所专门完成的任务,比如处理垃圾邮件,比如翻译,比如命名实体识别。

甚至Google的BERT早期也是针对这些专门的特定任务而设计。

我们看这些任务其实都有一个共同特性,就是你给定一个或者一组自然语言输入,然后得到一个输出。

所以 A language model is a computational model that predicts sequences in natural language.

下面是哥伦比亚大学的一份讲义中对于“语言模型”的形式化定义,只是给大家看下这个确实是有对应概念的,具体内容不必在意。
LanguageModelDefinition.png

史前时代

既然是讲历史,我们就得从最早开始讲起。在正式进入语言模型这个形态之前,早期的自然语言处理跟AI绑定的并不是这么深,甚至是独立发展的。驱使其核心发展的主要是两个任务 —— 机器翻译和语音识别。

关于机器翻译的历史可以追溯到17实际,伴随着大航海带来的跨文化交流导致翻译工作量的激增,当时诸如莱布尼兹、笛卡尔等哲学家都构想过用于建立不同语言词汇对应关系的编码方案。不过这些方案都止步于理论层面,没有促成机器研发。

上一个session里Peter带我们看过了关于图灵在1950年的那篇可以称之为开天辟地的论文, Computing Machinery and Intelligence。这篇论文里所提到的图灵测试,其中一个任务涉及到了自动理解和生成自然语言。这等于直接给自然语言处理提供了方向和目标。

早期解决方案

这篇论文前后也有一些关于机器翻译的设计,比如1930年代由乔治・阿尔斯特鲁尼提出方案,仅为一套采用纸带的自动化双语词典。另一项方案出自俄国人彼得・特罗扬斯基,内容更为详尽。特罗扬斯基的方案不仅包含双语词典,还依托世界语设计出一套处理不同语言间语法成分的配套方法。

还有一个比较著名的事件是乔治敦- IBM实验(Georgetown–IBM experiment),使用大概250个单词的词典和6条语法规则,支持翻译60多句俄语文本到英语。这些规则和词典都是硬编码在打孔卡上,然后通过计算机运行。当然这个实验的主要目的还是为了找军方申请经费,所以具体的句子内容都是精心挑选过的,纯粹是为了演示,并不是一个通用系统。甚至选择俄语也是出于同样的目的,毕竟当时是冷战时期。

LLMChronicleGeorgetownIBMExperiment.png

乔姆斯基和符号化模型

最终实现突破的是来自数学界/语言学界的一位大佬,诺姆·乔姆斯基。他在1957年,也就是达特茅斯会议之后的那一年发表了一篇论文句法结构(Syntactic Structures)。这篇论文通过一套完全形式化的方法把“语言”这种东西给抽象化了,提出了现在的“形式语言理论”。一个语言就是一堆有限的符号和生成规则的集合,这些符号和规则组合起来就能生成语言里有效的句子。

400

乔姆斯基这套理论等于为符号化时代的模型奠定了基础,同时这套模型至今仍然在广泛使用,因为虽然穷尽自然语言里的规则不一定能做到,但是人工语言,比如我们编写代码使用的Java,是完全没问题的,所以这套理论也就成了后期编译原理和各种解析算法的理论基础。

交互式小说

如同我前面讲到的1950年代到1990年代的主流思路是基于符号化的方式去设计语言模型,显然跟广义的人工智能一样,也遇到了发展瓶颈,毕竟自然语言太复杂了,即没有相对确定性的规则,又在不断演化发展,所以只能进行一些相对简单的转换工作。不过在一些特定领域内,是可以做成相对完善的应用的。比如至今还在活跃的一个非常小众的领域,交互式小说。早期的计算机游戏仅能通过终端来交互,于是就有了这种实现特定规则来生成故事,并且允许用户输入一些句子或者短语来与游戏世界交互,达成不同结局的冒险游戏。

LLMChronicleZork.png

图里是一个经典的游戏Zork(中文一般叫做《魔域》或者《魔域帝国》)的界面,启动游戏就是“你站在一个白房子前面,有一个邮筒”。你可以打开邮筒,看到里面有一封信,然后拿到这封信,开始读其中的内容。

中文房间 —— 计算机是否能拥有意识

通常的语言模型研究里一般都会排除这个时期,因为这段时间虽然也有进展但并没有成行的“模型”。所谓的模型也只是大家手工编辑的规则。但是这段时间因为人工智能的发展大家其实产生了很多议论,其中一个就是这个叫“中文房间”的思想实验。

600

中文房间(英语:Chinese room),是由美国哲学教授约翰·瑟尔提出的一个思想实验,借以反驳强人工智能的观点。根据强人工智能的观点,只要计算机拥有适当的程序,理论上就可以说计算机拥有它的认知状态并且可以像人一样进行理解活动。

一个对中文一窍不通,只说英语的人关在一间只有一个开口的封闭房间中。房间里有一本用英文写成的手册,指示该如何处理收到的中文讯息及如何以中文相应地回复。房外的人不断向房间内递进用中文写成的问题。房内的人便按照手册的说明,查找合适的指示,将相应的中文字符组合成对问题的解答,并将答案递出房间。

尽管房里的人可以以假乱真,让房外的人以为他说中文,但事实上他根本不懂中文。在上述过程中,房外人的角色相当于程序员,房中人相当于计算机,而手册则相当于计算机程序:每当房外人给出一个输入,房内的人便依照手册给出一个答复(输出)。而正如房中人不可能透过手册理解中文一样,计算机也不可能透过程序来获得理解力。既然计算机没有理解能力,所谓“计算机于是便有智能”便更无从谈起了。

这个思想实验的源头就是当时基于符号和规则的人工智能

与之相关的还有一个实验叫做China Brain(中国大脑)。假设每一个中国人都可以通过电话来模拟神经元与其他人互动,那整个中国的人是否可以形成一个具有意识的大脑。

关于这个思想实验的讨论非常多,尤其是近些年来大语言模型出现以后,再次引发对于强人工智能的思考和争论。关于各方管点英文维基百科页面有详细的讲述,我们不做具体的展开。

统计模型时代

1990年代,基于统计的模型开始大量出现,其中的一个原因就是多媒体技术引入,然后语音识别的需求开始出现和应用。因为自然语言是有一定的统计学规律的,因此当时的思路就是通过统计学分析去预测下一个语言符号,然后适配具体的应用场景。这里的理论基础是1906年的马尔可夫链理论,我们可以看一下当时李开复做的一个叫做CASPER的demo。

https://www.bilibili.com/video/BV1rp411Z7MA/

对比老罗TNT https://www.bilibili.com/video/BV1fi4y1t7L5/

300

中文分词难题

这里额外提一句,为什么这些东西都是先从印欧系语言发展出来,因为现代汉语这种连续书写系统在当时存在一个非常困难的问题,就是如何进行分词(Tokenization)。因为印欧系语言大都是有空格分割的,而现代汉语并没有明显的词汇分界,而现代汉语复词数量远远多于单字词,大部分情况下单字并没有实际含义。

举个例子“武汉市长江大桥”。因为我们有充分的背景能够理解武汉市在长江旁边,同时也有“武汉市长江大桥”这么一座桥,因此强行分词也会拆分成“武汉市/长江/大桥”,而不是“武汉/市长/江大桥”。

当然在更早的古汉语文本里我们连标点符号(句读)都没有的情况下,可能出现的问题更多:

  • “沒魚肉也可,沒鷄鴨也可,青菜豆腐不可少,不得工钱。”
  • “沒魚、肉也可,沒鷄、鴨也可,青菜豆腐不可,少不得工钱。”

还有一个例子就是论语里这句话,可以说每一个不同的句读都能直观展示一个人的立场。

民可使由之不可使知之:

  • 民可使,由之;不可使,知之。
  • 民可,使由之;不可,使知之。
  • 民可使,由之不可,使知之。
  • 民,可使由之,不可使知之。

汉语分词连写

在上个世纪有不少人曾建议过汉语分词连写的写法,比如某篇论文的摘要就用类似的方式写成这个样子:

摘要: 单词 的 切分 对 现代 汉语 的 运用、研究 和 计算机 信息 处理 等 都 具有 相当 重要 的 意义。本文 阐述 书面 汉语 分词 连写 的 十 大 好处 , 并 讨论 一些 实施 方面 的 问题。文章 全文 分词 连写。

(曹操二言绝句 https://www.bilibili.com/video/BV1jM5rzFEiL/

这种方式虽然方便了计算机处理汉字,但还是有很多问题:

  • 需要(大约1/4)更多的(纸面)空间。
  • 人们还不习惯这种书写方式。
  • 需要辨识每个单词。
  • 句子看起来不像没有空格的传统格式那么整齐。
  • 大多数中文单词都是一两个字长,即使不使用边界标记,辨识也不困难。

Tokenizer

当然了,在那个时候更不会想到现在的Tokenizer会实现的更暴力,完全不存在所谓的词汇分界这种概念了,空格也是内容的一部分。所以这种情况下这种奇怪的写法反倒成了累赘,可以看到同样一句话分词连写的情况下要比正常写法多用接近 30% 的 token。

400

400

目前主流汉语分词方案(比如jieba分词)都是通过权重词典和统计模型(n-gram + HMM)来解决。(https://zhuanlan.zhihu.com/p/245372320

神经网络时代

其实之前的分享中可以看出来有两条线始终约束着人工智能的发展,一条线是算力,另外一条就是数据规模。当然也可以说只有一条线,因为只有算力足够的情况下才能处理特定规模的数据量。而当算力发展到可以支撑大量数据和深度网络的时候,结合原本的统计模型,语言模型也正式进入了神经网络时代。

这张图自下向上就是语言模型在神经网络时代发展路径。既然神经网络适合处理向量化数据,那我就可以通过向量嵌入的方式来构建对应文本的词向量,这样通过词向量的相似性来计算相似度和进行预测。(https://milvus.org.cn/ai-quick-reference/what-are-dense-and-sparse-embeddings

A Neural Probabilistic Language Model

https://jmlr.org/papers/volume3/bengio03a/bengio03a.pdf

300

图里提前透露了接下来的内容,不过大家应该都很熟悉了。在提及Transformers之前我们在看这段时间有哪些比较典型的应用。

成熟应用 - 2011年IBM Watson 赢得《危险边缘

1997年深蓝的成功,让IBM开始探索其他领域的挑战。2011年经过多年准备终于在《危险边缘》这个问答节目中通过几期比赛战胜人类。这种通过大众媒体宣传高科技的活动变相进行营销,这件事情也同时开启了IBM股价的另一个增长周期。

400

我们可以看一下这个系统的处理过程,作为一个能够比较实时响应任意领域通用知识问答的应用,结构上非常复杂。另外这个项目并不是非常通用,其主要对于这种问答节目进行了很多方向的专门优化,团队里还请了一些参加过类似活动的获奖者来参与设计和验证,进行针对性的调优。

600

这个事件火了以后,我们前面提到的约翰·瑟尔教授又站出来说,IBM只是做了一个非常精巧的程序,不是一个可以思考的计算机。老爷子几十年如一日地坚持这个观点。

JohnSearleOnIBMWatson.png

成熟应用 —— 虚拟语音助手

另外一个成熟应用我们大家应该都再熟悉不过了,每个人手机应该都有一个内置语音助手。早期因为应用场景等原因其实这些工具都比较难用,比如下面截图就是我当时的一个用法,因为之前的手机是Windows Phone,很多使用习惯和数据都还保留在微软平台,所以Siri的作用就是打开Cortana。

200

  • Apple Siri (2011)
  • Microsoft Cortana (2014)
  • Amazon Alexa (2014)
  • Google Assistant (2016)

现在的大部分智能助理背后也都接入了大模型了,包括今年WWDC上看到的全新Siri。

注意力机制

AttentionPaper.png

《基于对齐与翻译联合学习的神经机器翻译》

前面我们提到,神经网络的引入让自然语言处理,尤其是机器翻译可以直接向量化交给多层神经网络。

早期神经网络机器翻译用编码器-解码器架构:

  • 编码器把整句原文,压缩成一个固定长度的向量;
  • 解码器再拿着这一个向量,逐词生成译文。

问题很明显:

句子一长,短短一个向量装不下所有信息,翻译就会跑偏、出错,句子越长效果越差。

本文核心解法:加入「软注意力 + 对齐」

作者给老模型做了两大改动,解决长句翻译问题:

  1. 双向循环网络做编码器 - 不再把整句压成单个向量,而是给原文每个词都生成一个专属向量,每个向量同时包含这个词前后上下文的信息。
  2. 动态注意力(软对齐) - 解码器每生成一个译文单词时,不会再死盯着那唯一一个总向量,而是:
    1. 自动计算:当前这个译词,和原文里哪些词关系最大;
    2. 给相关原文词打上不同权重(重要的权重高、不重要的低);
    3. 按权重融合原文多个词的信息,再产出当前译词。

简单理解:翻译每个词时,模型会自动 “盯着原文对应位置看”,不用强行把整段话塞到一个向量里。

预览视频:Attention animated

Attention is All You Need

TransformersArchitecture.png

2017 年之前,处理序列数据(文本、语音、时间序列)的主流方法是循环神经网络(RNN)及其变体长短期记忆网络(LSTM)。RNN 逐个处理序列中的元素——读入第一个词,更新内部状态,读入第二个词,再更新状态——像一个人一个字一个字地读书。

这种串行处理方式有两个严重问题。第一,速度慢:因为必须按顺序处理,无法利用 GPU 的并行计算能力。第二,长程依赖困难:当句子很长时,前面的信息在经过多步传递后会被"稀释",网络很难记住远处的上下文。

当时大家都会搭配注意力机制优化老模型,但没人想过:能不能直接丢掉循环、卷积,全程只用注意力机制?这就是本文的核心思路,也是标题 “注意力就是你所需要的一切” 的由来。

Transformer 沿用了机器翻译经典的编码器 + 解码器组合(类似 “理解原文 + 生成译文”),整套结构堆叠了 6 层相同模块,全程没有循环、卷积,只靠注意力和简单全连接层工作。

因为模型没有循环结构,分不清词语的先后(比如 “我打他” 和 “他打我” 会被当成同一句话)所以加入了位置编码每个位置的单词加专属 “位置标签”,让模型知道哪个词在前、哪个词在后。实验也验证了:用固定函数编码,和训练学出来的位置标签效果差不多,还能适配更长的句子。

另外Transformer 架构使用了多头注意力,把单组注意力拆分成多个独立 “注意力头” 并行计算。每个头从不同角度捕捉关系(比如语法、因果、情感),最后合并结果。

另外注意力使用在了下面三个场景:

  • 编码器自注意力:一句话里所有单词互相看,理解全局关系;
  • 解码器自注意力:只能看当前位置及前面的词,禁止 “偷看未来”;
  • 编码 - 解码注意力:译文单词对应原文单词,实现翻译对齐。

Transformer Encoder主攻特征表示,Transformer Decoder擅长文本生成,二者合则天下无敌,分则各自为王。

Generative Pre-trained Transformers

GPTArchitecture.png

预训练模型

Transformer 发表后,AI 社区迅速分化为两条路线——代表了对"如何利用 Transformer"的两种不同哲学。

BERT:理解的路线

2018 年 10 月,谷歌的德夫林等人发表了 BERT(Bidirectional Encoder Representations from Transformers)。BERT 的核心思想是双向预训练:在大规模文本上,随机遮盖一些词(掩码语言模型,Masked Language Model),让模型根据上下文预测被遮盖的词。因为预测时可以同时看到左边和右边的上下文,BERT 学到的是真正"双向"的语言表征。

BERT 在 11 个 NLP 基准测试上全面刷新了最优成绩,引发了 NLP 社区的震动。它确立了一种新的范式——"预训练 + 微调"(Pre-train + Fine-tune):先在海量无标签文本上预训练一个通用的语言模型,然后在特定任务(如情感分析、问答、命名实体识别)上用少量标注数据微调。这种范式极大地降低了 NLP 任务的门槛——你不再需要为每个任务从头训练一个模型。

GPT:生成的路线

几乎在同一时期,OpenAI 的拉德福德走了一条不同的路。

2018 年 6 月,他发表了 GPT-1(Generative Pre-trained Transformer)——用 Transformer 的解码器(而非编码器)做单向语言模型:给定前面的词,预测下一个词。

GPT-1 只有 1.17 亿个参数,在当时并不引人注目。但 OpenAI 坚信规模是关键。2019 年 2 月,GPT-2 发布——15 亿参数,比 GPT-1 大了 10 倍以上。OpenAI 以"太危险"为由延迟公开模型权重,引发了 AI 社区关于开源与安全的第一次大规模争论。GPT-2 能生成连贯的长篇文本——虽然仔细看仍有逻辑漏洞,但流畅度已经令人不安。

BERT 和 GPT 的分歧不仅是技术选择的差异,更反映了对 AI 未来方向的不同判断。BERT 路线认为"理解"是核心——先学会理解语言,再应用到下游任务。GPT 路线则认为"生成"就是理解——如果一个模型能够持续地预测下一个词,它就必须在某种程度上理解了语言的结构和含义。

历史最终站在了 GPT 一边——但不是因为 BERT 的思路错了,而是因为 GPT 路线更容易通过规模扩展来提升性能。"预测下一个词"是一个极其简单的训练目标,可以利用互联网上几乎无限的文本数据,而且天然适合自回归生成。

AI Dungeon

AIDungeonLogo.png

AIDungeonScreen.png

记得前面我提到过的Interactive Fiction(交互式小说)吧。

GPT-2 出来以后的一个经典应用就是 AI Dungeon。

Large Language Models

2020 年 5 月,OpenAI 发表了 GPT-3 的论文——布朗等人的《Language Models are Few-Shot Learners》。GPT-3 拥有 1750 亿个参数,训练数据集包含约 5000 亿个词元(token,过滤后),加权采样后训练实际见到约 3000 亿个词元;训练成本据估计超过 400 万美元。

GPT-3 展现了一种令人惊讶的能力:少样本学习(Few-Shot Learning)。你不需要对模型进行微调,只需要在提示词(Prompt)中给出几个示例,模型就能"理解"任务并执行——翻译、摘要、问答、编程、写诗、甚至做算术。这种能力在此前的任何模型中都没有观察到。

GPT-3 的能力引发了关于"涌现"(Emergence)的讨论。许多能力在 GPT-2 的规模上完全不存在,但在 GPT-3 的规模上突然出现——仿佛模型在穿越某个"规模门槛"后获得了质变。

这种涌现现象后来被卡普兰等人在《规模定律》(Scaling Laws for Neural Language Models, 2020)论文中部分解释:模型性能与参数量、数据量和计算量之间存在可预测的幂律关系。更大的模型、更多的数据、更长的训练,几乎总是带来更好的性能——而且这个关系在已有的规模范围内没有显示出饱和的迹象。

规模定律给出了一个简洁但深刻的指引:继续扩大规模。这个指引将定义接下来几年 AI 的主旋律。

Retrieval-Augmented Generation(Meta 2021)

RAGProcess.png

现在主流的预训练大模型(比如文中的 BART、T5),知识全都 “记在模型参数里”,就像一个人全靠大脑死记硬背所有知识,有 3 个明显短板:

  1. 容易瞎编(幻觉):记混知识点后,会输出完全不符合事实的内容;
  2. 知识难更新:世界上的信息一直在变(比如国家领导人、热点事件),想让模型学新知识,必须重新大规模训练,成本极高;
  3. 没法溯源:AI 说出一个结论,你不知道它的依据来自哪里,不透明。

此前也有 “先检索文档、再提取答案” 的 AI,但这类模型只会摘抄原文,不能自由组织语言回答问题,适用场景很窄。

PEFT(Parameter-Efficient Fine-Tuning)

ParameterEfficientFineTuning.png

Low Rank Adaption(Microsoft 2021)

现在的 AI 大模型(比如 GPT-3,足足 1750 亿参数),训练好之后要适配具体任务(聊天、写 SQL、文本摘要、情感分析等),主流做法是全量微调:把模型所有参数重新训练一遍。这会带来三个致命问题:

  1. 硬件开销爆炸:GPT-3 全量微调需要超大显存,普通企业和个人根本跑不动;
  2. 存储压力巨大:每做一个新任务,就要保存一整个完整大模型,10 个任务就要存 10 套 1750 亿参数的模型,硬盘完全扛不住;
  3. 切换任务麻烦:不同任务之间切换,要加载整套大模型,效率极低。

这篇论文里提出的猜想是大模型适配新任务时,参数的改动量其实很少,不需要动全部权重。就像一个全能学霸(预训练大模型),本来就知识渊博,学一门新技能(下游任务),不用把所有知识重学一遍,只需要补一点点新知识就行。

基于这个猜想,LoRA 的做法非常简单:

  1. 冻结原始大模型:已经训练好的模型参数完全不动,保留它原本所有能力;
  2. 加两条 “小旁路”:在 Transformer 模型的注意力层(模型最核心的部分),并联两个极小的矩阵(A、B),只训练这两个小矩阵,其余参数一概不碰;
  3. 合并使用:训练完成后,把两个小矩阵的效果合并进原模型权重里。

Distillation(蒸馏)

我们已经有了足够聪明的模型,有了可以完善它的方法,那么怎么对齐进行裁剪或者压缩呢?

DistillBERTPaper.png

Hugging Face 就尝试 BERT / GPT2 等大模型做 “瘦身”,造出了名为 DistilBERT 的轻量化版本,做到体积更小、运行更快、使用成本更低,同时几乎没丢多少语言理解能力,特别适合手机这类算力有限的设备使用。

这里用到的核心技术叫知识蒸馏。和普通学习不一样,学生不只是学 “标准答案”,还要模仿老师思考问题的整个过程(比如老师觉得某个词大概率填 A、其次是 B),这样学出来效果更接近原版大模型(压缩 40% 体积、提速 60%、保留 97% 能力)。

Quantization (量化,2023 GGML)

400

大语言模型模型大多用32 位浮点型(FP32) 数据计算,精度很高,但缺点很明显:

  1. 耗资源、耗电:计算量大、数据占用内存多,手机、手环、摄像头这类边缘设备扛不住,运行卡顿、续航变短;
  2. 速度慢:大量数据传输和复杂运算,推理延迟高。

量化简单说就是:把模型里的权重、中间计算结果(激活值)从 32 位高精度小数,转换成低位数整数(最常用 8 位 INT8,也能用 4 位)

通常来说有两种量化方案:

  • PTQ(Post-Training Quantization):模型训练完成之后,直接对现成的高精度模型做量化,不需要重新训练模型。
  • QAT(Quantization-Aware Training):在模型训练 / 微调阶段就加入量化模拟:训练时让模型提前适应 “量化噪音”,相当于让模型 “从小就习惯低位数运算”。需要用到标注数据、重新训练模型,成本比 PTQ 高,但低位数量化(4 位及以下)效果碾压 PTQ

大家日常如果在本地部署过Ollama,使用的就是采用GGML格式量化之后的模型。

Mixture-of-Experts(2020 Google)

MixtureOfExpertsModelTree.png

传统大模型(比如早期 GPT、普通 Transformer)是 “单一大脑”,不管输入什么文字,模型里所有参数、所有模块都要全部参与计算。模型做大后,参数暴涨,算力、耗电、运行速度都会跟着直线飙升,落地使用很困难。

MoE 混合专家模型相当于 “专家顾问团”

  1. 模型内部拆分成几十个 / 上百个独立的 “小专家模块”,每个专家各司其职,有的擅长语法、有的擅长翻译、有的擅长专业知识;
  2. 额外加一个调度器(门控 / 路由网络),拿到输入内容后,只挑选少数几个对口专家干活,其余专家全程 “摸鱼” 不参与计算;
  3. 简单说:模型整体规模可以做得极大,但每次实际运算只用到一小部分参数,完美解决 “模型变大就变卡、变贵” 的难题。

Instruction Following(OpenAI 2022)

InstructionFollowingGpt.png

初代 GPT-3 参数高达 1750 亿,体量巨大,但实际用起来毛病很多:

  1. 听不懂指令:你让它写总结、出方案,它经常答非所问,不按要求做事;
  2. 爱 “胡说八道”(幻觉):凭空编造不存在的事实、信息,一本正经地说谎;
  3. 输出不安全:偶尔会冒出攻击性、偏见、低俗等不良内容;
  4. 目标错位:GPT-3 原本的训练目标只是 “根据上文预测下一个字”,根本没学过怎么贴心、安全地帮人办事,和普通人的使用需求不匹配。

简单说:GPT-3 “知识面广”,但不会当合格的助手。所以团队目标很明确:让 AI 对齐人类需求,做到有用、诚实、无伤害

单纯把 AI 模型做的更大,并不能让它好好听懂、执行人类指令,OpenAI 用「人类反馈 + 强化学习」(RLHF)改造了 GPT-3,做出了更好用的 InstructGPT,还证明了 “优化使用体验” 比盲目堆模型参数更有效。

“有多少人工,就有多少智能”

InstructGPTTrainingProcess.png

这个是直接导致了ChatGPT诞生的一个项目,因为训练Instruction Following的模版只要改成多轮对话,其实就是ChatGPT的场景了。

Tool Use(Google 2022)

TALM-ToolUsePaper.png

现在主流的大语言模型(比如 GPT、T5 这类),主要靠堆参数、堆数据变强,但问题很明显:

  1. 记不住实时 / 私密信息:模型的知识全来自训练时的旧数据,遇到实时内容(比如今天天气、新出的网络热词)、私人数据(个人日程)完全抓瞎,还容易输出错误答案;
  2. 算力成本极高:模型做得越大,训练、运行、部署的费用就越贵,普通团队根本用不起;
  3. 数学计算、复杂推理弱:纯文本模型不擅长算数、处理大数,很容易算错;
  4. 依赖死记硬背:模型是 “背答案” 而非 “真理解”,一旦遇到训练数据里没有的新问题,表现会断崖式下滑。

TALM 设计了一套纯文本交互规则,不用改模型底层结构,任何语言模型都能套用,流程特别直观:

  1. 接收用户问题(比如 “纽约今天气温多少”“三科平均分是多少”);
  2. 模型自动生成工具指令(比如 “查询纽约天气”“计算三科平均分”);
  3. 系统触发对应的外部工具(天气查询、计算器、文献检索等),把工具返回的结果拼接在文本里;
  4. 模型结合工具结果,整理出最终答案回复用户。

Chain-of-Thought(Google 2022)

CoTPaper.png

大模型(比如 GPT-3、PaLM)虽然能流畅对话、回答简单问题,但遇到多步骤数学题、常识逻辑题、符号小游戏这类需要 “拐弯思考” 的任务时,表现很差。传统的提问方式很简单:只给「问题 + 最终答案」的示例,AI 学会直接报结果,就像学生做题只写答案、不写步骤,很容易算错。

而 Chain-of-Thought 教 AI先讲思考过程,再给最终答案,全程只用自然语言,不需要改模型、不用额外训练,只是调整提示词格式。用一个零成本的提示技巧,激活了大模型沉睡的推理能力,只要在提问示例里加上分步思考过程,就能让 AI 在数学、常识、逻辑题上大幅提分。

另外这篇论文还有一个发现,对比Codex和其他的GPT模型,代码训练会强化逻辑分支、状态追踪、结构化分步思维,这些能力和多步推理高度重合。

后来的事情大家都知道了,基本上主流模型都加入了Model native reasoning了。

ReAct(Google 2023)

ReActPaper.png

此前主流大模型分成了两类,各有缺陷:

  1. 只会 “空想推理”(代表:思维链 CoT) 这类模型全程只靠自己脑子里的知识推导答案,不联网、不调用外部工具。缺点特别突出:很容易 一本正经地胡说八道(幻觉),遇到自己不知道、过时的信息,会编造错误内容,而且推理错了还会一路错到底(错误传导)。
  2. 只会 “机械行动” 这类模型能调用工具、和外部环境互动(比如搜网页、玩文字游戏),但不会主动思考。做事没有规划,经常瞎操作、重复无效动作,环境稍微变一点就卡壳,也说不清自己为什么要这么做。

简单总结:纯推理 = 闭门造车,容易撒谎;纯行动 = 无脑干活,容易乱撞

ReAct 是 Reasoning(推理思考)+ Acting(行动执行) 的组合范式,核心逻辑就是模仿人类的解题流程,形成一套循环:思考 (Thought) → 行动 (Action) → 观察结果 (Observation),三步交替反复推进任务。

回顾一下语言模型的发展路线

LanguageModelsRoadMap.png

TaskRelatedViewRoadmap.png