← 全部极客知识库

大模型通识 / 大模型技术演进

1. 2022 年末:从语言生成到自然对话,ChatGPT 为什么成为转折点

原文备份 · 第 2 / 26 篇 · 查看极客时间原知识库 ↗

来源:大模型技术演进

2022 年 11 月 30 日,OpenAI 发布 ChatGPT,向公众提供免费的研究预览。用户打开网页,在输入框里说出需求,就能得到一段回答,还可以围绕回答继续追问、修改要求。当时的 ChatGPT 基于 GPT-3.5 系列模型进行训练。ChatGPT 原始发布公告

这个时间点适合作为我们观察大模型应用发展的起点。此前,语言模型已经能够生成文章、回答问题和编写代码;ChatGPT 把这些能力组织成了一种容易理解的使用方式:和它交谈。

对于准备开发个人项目的人,理解这次变化很有价值。此后几年的许多产品创新,都发生在类似的交汇处:模型多了一项能力,产品让人更方便地使用它,开发者随之发现新的应用场景。第一篇先把这条关系讲清楚,也为后面判断各种新产品的意义建立一个起点。

先看一段可以想象的使用过程。

假设你在构思一个个人读书笔记工具,希望它帮忙整理随手记下的内容。你可以这样描述需求:

我准备做一个读书笔记工具。请把下面这段笔记整理成一个标题、三个要点和一个待思考的问题,尽量保留我的原意。

看完回答,你发现措辞太正式,又补充:

写得像我记给自己看的笔记,不用公文风格。找不到依据的内容不要补充。

这是一段用于解释交互方式的构造示例,并非 2022 年产品的原始对话记录,也不是效果保证。它展示了一个值得注意的变化:用户可以通过连续表达意图,逐步调整结果。

传统软件通常要求用户先找到对应的功能入口,再学习按钮、菜单或配置项。对话式产品增加了另一条路径:先用自然语言说明目的,再通过反馈缩小偏差。对不熟悉技术的人,这种入口很直观;对开发者,它意味着许多过去要分别设计交互流程的任务,可以共享一个对话入口。

不过,一个自然的入口并不能说明背后的系统已经可靠。要理解它为什么能做到这些,又为什么经常出错,需要先向前看几步。

对话能力背后,是多年积累的模型能力。

2017 年发表的《Attention Is All You Need》提出 Transformer 架构。论文最初围绕机器翻译任务展开,让注意力机制承担了组织序列信息的核心工作,并改善了训练的并行性。Transformer 后来成为许多大模型的重要基础。Transformer 原始论文

这里可以先把“注意力”理解成一种计算机制:模型处理某个位置的信息时,可以根据任务需要,参考输入中其他位置的信息。例如,读到“我把书借给小李,他第二天还了回来”时,要理解“他”以及“还了什么”,就需要联系前面的内容。这个例子帮助理解信息关联的用途,并不意味着模型真的像人一样进行阅读。

对于初学者,更需要掌握的是预训练。许多生成式语言模型先在大量文本上训练,学习根据前面的内容预测接下来出现的 token。Token 是模型处理文本的基本单位,可能对应一个字、一个词的一部分或其他文本片段,不必与自然语言里的“词”一一对应。

“预测接下来是什么”听起来像输入法,但要在各种文章、对话和代码里做好这件事,模型需要学到丰富的语言模式与关联。它生成一段回答时,会反复预测后续 token,再把它们连成完整内容。这解释了文本生成的基本过程;至于模型在其中形成了怎样的内部表示,可以留到理论部分进一步讨论。

2020 年的 GPT-3 论文展示了另一个对应用开发很关键的现象:在不少任务中,人们可以把任务说明和少量示例直接写进输入,让同一个模型尝试完成不同工作,而不必为每个任务重新更新模型参数。这通常被称为少样本提示或上下文学习。GPT-3 原始论文

比如,你先给出两组“原始笔记 → 整理后的笔记”,再放入第三段原始笔记。模型可能参照前面的格式生成结果。这里的“学习”发生在本次输入提供的上下文中,不能直接理解成模型已经永久学会了你的习惯。

这个区别以后会经常出现:把资料放进输入,与训练一个模型,是两种不同的操作。 前者改变模型这次回答时能参考的信息;后者会涉及模型参数的更新。开发一个小应用,往往可以先从前者开始。

能生成文字之后,还要让模型更会遵循要求。

预训练提供了广泛的文本处理能力,但“接着写得合理”和“按用户要求完成任务”之间仍然有距离。用户输入“请把这段话压缩成三句话”,通常期待直接得到三句话,而不是围绕这条要求继续生成一篇讨论。

OpenAI 在 2022 年 1 月介绍 InstructGPT 时,就把遵循用户意图作为改进方向。这个工作早于 ChatGPT 面向公众发布。InstructGPT 官方介绍

相关研究采用了一套包含人工反馈的训练流程:先用人工示范教模型怎样回应,再让人比较不同回答,训练一个估计人类偏好的奖励模型,最后利用强化学习继续调整语言模型。RLHF 指的就是基于人类反馈的强化学习。InstructGPT 研究论文

可以用“整理笔记”理解这几种材料的作用。人工示范告诉模型,一份符合要求的答案大致是什么样;回答比较提供偏好信号,例如哪份更忠于原文、哪份更清楚;后续优化则推动模型更常生成得到较高评价的回答。这只是对训练作用的教学解释,不代表该研究实际使用了这个笔记任务。

这里也有一个容易混淆的地方:人工反馈用于训练过程,并不表示用户每次提问时,都有一个人在后台审核答案。奖励模型能够估计偏好,也不等于拥有一个保证答案正确的真伪判定器。

因此,指令遵循、表达自然和事实正确,需要分别看待。模型可能很好地执行了“用三句话回答”的格式要求,同时在三句话中写入错误信息。

ChatGPT 把这些能力变成了可以反复沟通的产品。

从应用开发的角度看,ChatGPT 的转折意义可以归纳为三个相互配合的变化。这是对产品形态的分析,并不意味着所有后来的增长都能用单一原因解释。

第一,用户用自己的语言提出任务。总结、解释、改写、翻译、构思方案等需求,都可以从同一个输入框开始。用户不必先学会调用接口,也不必为每种任务寻找一款新工具。

第二,任务可以在交流中逐步明确。很多人最初并不知道自己需要什么样的结果,看到初稿后才能发现问题。“太长了”“换一个面向初学者的例子”“保留原文里的数字”,都可以成为下一轮输入。

第三,同一种交互可以连接多种工作。例如,先讨论读书笔记工具要有哪些功能,再请它给出页面文案,最后尝试生成一段代码。这种跨任务的连续性,让人容易联想到一个通用助手。

但“像在和同一个助手交流”也容易造成误解。在一次对话中参考前文,与跨天、跨会话永久记住用户,是不同的能力。把对话放进模型可参考的上下文,可以帮助它理解“刚才那段代码”指什么;这并不自动产生一个可靠的长期记忆系统。

随着个人项目变复杂,开发者就会遇到新的工程问题:保留哪些历史内容、哪些信息值得单独保存、怎样避免旧信息干扰当前任务。这些问题会在后面的长上下文、RAG、记忆和 Agent 篇目中陆续出现。

先分清模型、产品和应用,后面的历史会更容易理解。

层次 在本篇中的例子 开发者需要关心的问题
模型 支撑早期 ChatGPT 的 GPT-3.5 系列模型 能处理什么输入,生成什么结果,准确性和速度怎样
产品 ChatGPT 的网页对话体验 用户怎样表达需求,怎样追问,系统怎样组织交互
自己的应用 个人读书笔记工具 笔记从哪里来,结果存在哪里,怎样检查和修改

模型提供能力,产品把能力组织成可使用的体验,而一个具体应用还要把它连接到真实任务。

假设模型已经能整理读书笔记,你的应用仍然需要接收用户输入、保存原文、展示整理结果,并允许用户纠错。这些工作不会因为模型会写文字就自动完成。随着能力增强,模型可以参与更多环节,但应用始终需要明确数据和动作是怎样发生的。

这个区别尤其适用于判断产品宣传里的“能做”:能生成一份操作建议、能调用工具实施操作、能可靠地完成整个任务,分别对应不同的能力边界。

回到 2022 年末:它已经很有用,也仍然很容易让人误判。

ChatGPT 发布时,官方就明确列出了多项局限,包括生成看似合理却错误的回答,以及对提问措辞敏感。也就是说,流畅的对话体验从一开始就伴随着可靠性问题。发布公告中的局限说明

对初学者来说,最需要建立的习惯是把“表达得很好”和“有足够依据”分开检查。回答越完整、越像专家,越容易让人忽略其中某个事实其实没有来源。

还有两类边界,可以直接从个人项目理解。

一类是信息边界。你的私人笔记如果没有提供给系统,模型不能因为很会谈论读书,就知道你昨天记了什么。模型是否能够使用某份资料,取决于应用有没有把资料送到它能访问的位置。关于最新事件的回答,也需要区分模型已有的信息与额外接入的检索信息。

另一类是执行边界。如果系统只有文本输入和输出,模型回答“笔记已保存”,并不能证明硬盘或数据库里真的新增了记录。真实保存需要程序完成相应操作,还需要确认操作结果。后来围绕工具调用、工作流和 Agent 的许多进展,都会涉及怎样连接语言与行动。

这些边界并不会让应用失去价值。对于草稿、整理、改写、辅助解释等任务,只要用户能够查看原始材料并修改结果,模型就可能节省大量操作。开发者需要做的是把它放在合适的位置,并设计可检查的结果。

用一个小练习,检查自己是否理解了这条边界。

下面是一段虚构的项目笔记。无需注册任何产品,先用自己的判断完成练习:

试用版只支持粘贴文字。PDF 导入以后再做。周末先做一个页面,上线日期还没有确定。

假设你要求模型把它整理成“当前范围、后续功能、上线日期”三个字段,符合原文的结果应该是:

字段 有原文依据的结果
当前范围 试用版支持粘贴文字;周末计划先做一个页面
后续功能 PDF 导入,具体时间未确定
上线日期 未确定

如果答案写成“周末上线,支持 PDF 导入”,即使表格很整齐、语气很肯定,也没有通过检查。它把计划中的页面制作等同于产品上线,又把后续功能放进了当前范围。

这给个人项目提供了一个很实用的起点:先选择一个输入范围清楚、输出能够对照检查的小任务,再判断模型能否稳定帮上忙。一个能让用户核对原文的笔记整理工具,就比“无论什么问题都保证答对”的目标更容易落实。

2022 年末的变化,让越来越多人可以直接体验通用语言模型,也让开发者开始重新思考软件的入口。紧接着的问题是:如果模型能够更好地处理复杂指令,产品会把它带到哪些工作里?下一篇会沿着这个问题,进入 2023 年的 GPT-4、Claude,以及搜索和办公场景中的第一轮应用扩张。