认识大语言模型:一位博学却健忘的朋友
第 1 章 认识大语言模型:一位博学却健忘的朋友
1.1 一个令人困惑的现象:为什么聪明的助手也会"胡说八道"
2024 年的某一天,一个叫小明的六年级学生向一款著名的人工智能助手提问:"请告诉我 2024 年巴黎奥运会开幕式上最精彩的节目是什么?"屏幕上立刻涌现出一段流畅的文字,不仅描述了节目内容,还引用了所谓的"现场观众评价"。然而,当小明把这个回答告诉在法国留学的表哥时,表哥却瞪大了眼睛:"这段描述是我没看过的,巴黎奥运会开幕式的实际节目表完全不是这样。"小明感到非常奇怪:这个能够写出诗歌、解答数学题、甚至模拟医生开药的人工智能,为什么会如此笃定地编造一段根本不存在的事情?
这不是个别现象,而是当前所有顶尖大语言模型共有的一个根本性挑战。无论是国外的 GPT 系列、Claude 系列、Gemini 系列,还是国内的文心一言、通义千问、Kimi、豆包,它们在面对超出自身训练范围的问题时,往往会"一本正经地胡说八道"。研究界给这种现象起了一个形象的名字——"幻觉"(Hallucination),即模型生成的内容看似合乎逻辑、语法正确、语气自信,但实际上与事实不符,甚至是凭空捏造。
这种现象带来了一个核心疑问:既然大语言模型已经通过海量数据学习,为什么它不能像一个真正博学的老师那样,准确告诉我们每一件事情的真相?要回答这个问题,我们必须先弄清楚大语言模型究竟是如何工作的,以及它的能力边界在哪里。
本章将带领读者系统地认识大语言模型这位"博学却健忘的朋友":先了解它的基本工作原理,再剖析它的三大固有局限,最后引出本书的核心主题——检索增强生成(RAG,Retrieval-Augmented Generation)技术,是如何为这位朋友配备一座实时更新的"外部图书馆",让它既能保持博学的特质,又能弥补健忘的短板。
---
1.2 大语言模型的基本工作原理:从海量文本中学习语言模式
要理解大语言模型为什么会"编造"内容,我们首先需要明白它本质上究竟在做一件什么事情。大语言模型本质上是一个基于概率的"下一个词预测器",它的核心训练目标是:在给定一段上文的情况下,预测下一个最有可能出现的词(Token)。
想象一下,你在玩一个"接龙游戏":老师说"今天天气",你会自然而然地接上"很好"、"不错"、"晴朗"之类的词,而不会接"香蕉"或者"外星人"。这种直觉来自于你从小到大阅读的大量文字以及日常对话经验。大语言模型的训练过程,本质上就是把这个游戏放大到极致。
1.2.1 训练数据:从书籍、网页到百科全书
训练一个大语言模型需要准备一份规模惊人的"教材"。这份教材由以下几类来源构成:
第一类是书籍,包括小说、教材、论文、杂志、新闻报道等公开出版物。例如,一家研究机构训练的模型,其训练数据中可能包含几百万本电子书,覆盖文学、历史、科学、艺术等各个领域。
第二类是网页文本,即通过爬虫程序从互联网上抓取的公开网页内容。这些网页内容数量更为庞大,但也更加嘈杂——其中既有严谨的学术博客,也有未经核实的论坛帖子,甚至还有故意编造的虚假信息。
第三类是百科数据,例如维基百科、各类专业百科全书等结构化知识。
第四类是代码与对话数据,包括 GitHub 上的开源代码,以及公开的对话数据集。
把这些数据汇总起来,一个旗舰级的大语言模型在训练阶段所"阅读"的文字量,往往达到数千亿个词(Token)甚至更多。这个数字是什么概念?假设一个人每天阅读 8 小时,每分钟阅读 300 字,那么他需要连续不断阅读大约 7000 多年,才能读完等量的文字。这正是大语言模型被称为"大"的根本原因——它在一个单一模型中压缩了人类数千年文明所产生的海量文本知识。
1.2.2 学习机制:从统计规律到知识关联
大语言模型究竟从这些海量数据中学到了什么?它学到了三类关键内容。
第一类是语言模式,即词与词之间的搭配规律。例如,"吃"后面常常接"饭、药、亏、力",而"喝"后面常常接"水、酒、茶、汤"。模型通过统计数十亿次这样的搭配,掌握了几乎符合人类语言习惯的表达方式。这也是为什么模型生成的句子听起来总是流畅自然——因为它的每一个词都基于历史统计中最有可能接续的选项。
第二类是知识关联,即概念与概念之间的联系。例如,模型在学习过程中会发现"巴黎"和"法国"、"奥运会"和"体育"这些概念频繁出现在同一段文字中,于是它学会了这些知识之间的关联。这种学习并不是把"巴黎是法国的首都"作为一条规则死记硬背下来,而是通过无数段文本中"巴黎"和"法国"反复共现,统计性地建立了它们之间的语义关联。
第三类是推理模式,即从一组信息推导出另一组信息的逻辑结构。例如,模型看到大量的"因为……所以……"、"如果……那么……"句式后,能够学会一定的因果推理能力。
这里有一个关键点必须强调:大语言模型学习的是"模式",而不是"事实数据库"。它的内部存储并非像字典那样一一对应地记录"巴黎 = 法国首都"这样的条目,而是以数十亿个参数构成的复杂数学网络,编码了这些词与词、概念与概念之间的概率关系。这种存储方式的优势是灵活性高、泛化能力强;劣势则是无法精确检索,且很容易把不同来源的信息"混淆重组"。
1.2.3 模型推理:生成回答的真实过程
当你向一个大语言模型提问时,模型其实在做以下几件事情:
第一步,接收输入。模型把你输入的文字(包括问题、系统提示、对话历史等)编码成一串数字向量,送入神经网络。
第二步,逐词生成。模型根据上文,预测下一个最有可能出现的词。例如,对于问题"中国的首都是什么?",模型可能会依次生成"中国"、"的"、"首"、"都"、"是"、"北"、"京"。每生成一个词,这个词就会被加入到上文之中,作为预测下一个词的依据。
第三步,多轮迭代。模型会反复执行第二步,直到生成一个表示回答结束的标记(例如特殊的 `<END>` 标记),或者达到预设的最大长度。
第四步,采样策略。在每一步预测中,模型实际上会输出一个概率分布,列出每一个候选词的可能性。系统会从这个分布中按照一定策略采样一个词。这种采样机制有两个效果:一是每次回答可能略有不同(取决于采样),二是模型有机会跳出"最常见的回答",探索一些不那么普遍但同样合理的表述。
理解了这一点,我们就能更清楚地看到大语言模型的本质:它不是一个"知识查询系统",而是一个"语言生成系统"。它并不从数据库中检索答案,而是基于已经学会的语言模式"续写"答案。当这种"续写"基于的事实可靠、模式匹配准确时,它会产生精彩的回答;当续写涉及模型不熟悉的内容时,它就会用相近的、合理的、似是而非的语言去"填补空白"——这就是幻觉的根本来源。
---
1.3 大模型的三大局限:知识陈旧、容易编造、无法访问私有数据
基于上一节对工作原理的分析,我们可以系统地总结大语言模型存在的三大根本性局限。这些局限并非偶然的 bug,而是当前架构和训练范式下不可避免的内在约束。只有清晰地认识到这些局限,我们才能理解为什么需要 RAG 技术。
1.3.1 局限一:知识截止日期问题
大语言模型的知识存在一个硬性时间边界,这个边界被称为"知识截止日期"(Knowledge Cutoff Date)。
所谓知识截止日期,是指模型训练数据所覆盖的最晚时间。例如,一个宣称截止日期为 2024 年 6 月的模型,意味着它所学习的最后一批文档基本都在 2024 年 6 月之前撰写完成。之后发生的任何事情——新的电影上映、新的政策颁布、新的科学发现、新的体育赛事——它都不知道。
为什么会这样?因为大语言模型的训练是一个耗资巨大、耗时漫长的工程。一个旗舰级模型的训练往往需要数千张高性能图形处理器(GPU)连续运行数月,消耗的电费可能高达数百万美元。一旦训练完成,模型内部的参数就固定下来,之后的推理(即回答用户问题的过程)并不会自动更新模型的知识。
这个局限带来的实际影响非常具体:
第一,关于最新事件的问题几乎必然出错或回避。例如,你问一个 2023 年训练的模型"2024 年奥运会谁获得了男子 100 米金牌",它要么承认不知道,要么基于其掌握的历史数据"猜测"一个答案,而这个猜测极有可能是错的。
第二,关于快速变化领域的问题容易过时。科技、金融、时尚、流行文化等领域的信息更新极快,即使是去年训练的模型,其掌握的知识也可能已经严重落后。
第三,补救措施带来额外成本。一些公司会定期重新训练模型来更新知识,但这既昂贵又缓慢,无法做到实时更新。另一种做法是给模型增加浏览网页的能力,但这种方式受限于网络质量和时效,且不能保证可靠性。
知识截止日期的根源在于:模型的"知识"是"烧"进数十亿参数中的静态结构,而现实世界的信息是动态变化的。这两者之间存在天然的时序错位,这是任何固定参数模型都无法彻底解决的问题。
1.3.2 局限二:幻觉生成现象
幻觉是指大语言模型生成看似合理但与事实不符、甚至完全虚构的内容。
幻觉有几种不同的形态:
第一种称为"事实性幻觉"(Factual Hallucination)。即模型生成的内容与客观事实不符。比如声称"爱因斯坦在 1955 年获得了诺贝尔文学奖"(实际是物理学奖)。这类幻觉通常源于模型对训练数据中错误信息的继承,或者对多个事实的错误拼接。
第二种称为"忠实性幻觉"(Faithfulness Hallucination)。即模型生成的内容与其所依据的上下文或指令不一致。例如,用户给模型一段文档,要求"基于这段文档回答问题",模型却给出了文档中没有的信息。这些信息可能本身是真实的,但相对于用户提供的资料而言就是"幻觉"——它"忠于事实"但不"忠于给定的资料"。
第三种称为"捏造性幻觉"。即模型凭空生成了不存在的实体或不存在的引用。比如编造一个根本不存在的论文、虚构一个从未举办过的会议、甚至伪造历史人物的演讲。这种幻觉是最危险的,因为它具有"造假的全部特征"——细节具体、措辞正式、看起来极其可信。
为什么幻觉如此普遍?根本原因仍然是模型是"续写器"而非"检索器"。模型在生成每一个词时,只关心这个词在当前上下文中出现的概率是否高,而不去关心整段话是否与事实相符。当被问到模型不确定的问题时,它仍然会继续"接龙",只不过此时它接的依据是其掌握的"通用语言模式"——而恰好,在它的训练数据中,关于任何主题都有大量"看起来像那么回事"的文字,包括虚构小说、营销文案、夸张表述、未经验证的论坛发言。模型会把这些碎片信息"拼接"成一段流畅的回答,但这段回答并不对应于任何一份真实的、原始的文档。
更糟糕的是,当前的大语言模型被训练得"乐于助人",其训练目标就包括"回答用户的问题"。当模型不知道答案时,它倾向于"硬编一个"以避免回答"我不知道"。这种倾向在用户体验上很受欢迎,但在事实准确性上却代价沉重。
1.3.3 局限三:无法访问私有数据
大语言模型无法访问训练数据之外的、用户私有的、未公开的信息。
所谓"私有数据",包括但不限于:企业内部的产品手册、项目文档、客户合同、会议纪要;学校教师自编的习题、教材、教案;个人的日记、笔记、家庭相册;医疗机构内部的病历系统;律师事务所的判例库;科研团队的实验数据,等等。
这一局限的根源是双重的:
第一,从训练数据角度看,这些私有数据从未进入过模型的训练过程。模型在公开网络上学到了大量通用知识,但它对你所在公司的具体业务流程一无所知,对你家孩子在某次考试中的作文内容一无所知。模型并不是"记得这些信息但不想告诉你",而是它真的不知道。
第二,从数据安全角度看,私有数据往往涉及个人隐私、商业机密、国家机密,不应进入公共模型的训练流程。即使技术上有能力获取这些数据,法律和伦理也严格禁止这样做。这意味着,未来即便训练数据再庞大,私有数据也始终是模型无法通过"训练"获取的盲区。
这是一个非常重要的认知。许多用户在和大语言模型交互时,会下意识地把模型当作一个"看过所有资料的全知全能者"。但事实上,模型从未"看到"绝大多数私有数据。它只能基于通用知识进行回答,因此对于企业内部的特定问题、家庭内部的私人问题,它给出的答案往往非常泛泛,甚至完全风马牛不相及。
这三大局限综合起来,就构成了本章开篇那个困惑的核心:大语言模型虽然能力强大,但它既没有最新知识,又会编造内容,还看不到你的私有资料。要解决这些问题,不能单纯地期待模型更大、训练数据更多——因为知识截止和私有数据访问是结构性问题,不是规模问题。必须有一种外部机制来补充和约束模型的输出。这正是 RAG 技术要解决的根本问题。
---
1.4 博学图书管理员比喻:用直觉理解模型的认知方式
为了帮助读者(尤其是青少年读者)更直观地理解大语言模型,我们可以引入一个贯穿全书的比喻:把大语言模型想象成一位博学的图书管理员。
1.4.1 比喻的三个角色
这个比喻中有三个角色:
第一个角色是大语言模型本身——一位博学但特殊的图书管理员。这位管理员读过海量的书籍(训练数据),记忆力惊人,几乎可以说出每一个领域的常识。但是,他有一个特别的限制:他只在"图书馆闭馆期间"读过这些书。换句话说,他不会一边翻书一边回答你的问题,所有的"知识"都已经压缩到他的记忆深处,无法精准地"指给你看"某一页某一行的原文。
第二个角色是知识截止日期——图书馆的"闭馆日"。这位管理员只读到了 2024 年 6 月之前的书,之后出版的新书、新报纸、新杂志,他一本都没看过。如果你问他"2025 年最新的畅销书是什么",他要么承认不知道,要么根据他对图书市场的理解"猜"一个——但这个猜测可能完全是错的。
第三个角色是私有数据——这位管理员从未进入过的"私人藏书楼"。每个家庭、每个学校、每个公司都有自己的"私人藏书楼",里面存放着他们独有的笔记、合同、教材、报告。这位管理员从未踏入过这些私人藏书楼,因此对于"你妈妈上周写的那封信说了什么"或者"你们公司去年发布的白皮书第 47 页讲了什么",他完全不知道。
1.4.2 三种典型场景的比喻解读
用这个比喻,我们可以很清晰地理解大语言模型在三种典型场景下的表现:
场景一:询问广为人知的常识。比如"太阳从东方升起吗?"图书管理员快速回答:"是的,这是基本的天文常识,地球自转导致太阳看起来从东边升起。"回答正确,因为这个问题在他读过的无数本书中都出现过。
场景二:询问最近的新闻。比如"今天 NBA 总决赛谁赢了?"图书管理员皱起眉头:"我读到的最后一份报纸是 6 月份的,今年的总决赛结果我真不知道。但如果让我猜,基于我对历届 NBA 总决赛的了解……"他可能会编造一个看似合理但完全不真实的回答。这就是幻觉。
场景三:询问私人信息。比如"我女儿上周考试考了多少分?"图书管理员只好遗憾地回答:"对不起,我从来没有见过您女儿的成绩单,您需要去问您自己家的记录。"或者更糟的是,他可能根据"通常小学六年级学生的平均分"给出一个看似合理但完全错误的数字。
1.4.3 比喻的关键启示
这个比喻带给我们三个关键启示:
第一,大语言模型是一个"读书破万卷"但无法实时查阅的"博学者"——它本质上是把知识压缩进记忆里的系统,不是实时检索系统。
第二,要解决"知识过时"问题,需要在模型之外接入"新鲜的书"——这就是实时更新的知识库。
第三,要解决"私有数据访问"问题,需要让模型能够进入"私人藏书楼"——这就是企业级或个人的私有知识库。
这三个启示,正是 RAG 技术在做的事情。RAG 是 Retrieval-Augmented Generation(检索增强生成)的缩写,其核心思想可以浓缩为一句话:在模型生成回答之前,先让它"查阅"相关资料。
这就好比给图书管理员配备了一套"实时文献检索系统"。当用户提出问题时,管理员不再仅仅依靠自己的记忆回答,而是先去一个实时更新的图书馆(可以是互联网、企业内部文档库、个人笔记系统)查找相关资料,然后基于这些资料给出回答。这样一来,他既能保持博学,又能回答最新问题,还能进入私人藏书楼——三全其美。
---
1.5 检索增强生成(RAG)的核心思想:让模型在回答前先查阅相关资料
1.5.1 RAG 是什么:从"闭卷考试"到"开卷考试"
为了更好地理解 RAG 的价值,我们可以把大语言模型回答问题的方式类比为一场考试:
在没有 RAG 的传统模式下,大语言模型回答问题就像一场"闭卷考试"——模型只能依靠自己训练时学到的"记忆"来回答,无法查看任何外部资料。这种模式的优点是速度快、成本低;缺点是一旦问题超出训练知识的范围,就只能凭印象作答,准确率无保障。
在引入 RAG 之后,回答问题的方式转变为"开卷考试"——模型在回答用户问题之前,可以先去查阅预先准备好的"参考资料"(通常是经过检索系统筛选后的若干段文本)。这种模式的核心转变是:模型的输出不再单纯依赖参数化的记忆,而是建立在显性的、可追溯的外部资料之上。
"开卷考试"带来了三个显著的好处:
第一,答案可追溯。RAG 系统通常会在给出回答的同时,注明信息来源(哪份文档、哪一章节、哪一句原文)。用户可以验证答案的真实性,避免被幻觉欺骗。
第二,知识可更新。只要更新"参考资料库"(知识库),而不需要重新训练模型,整个系统就能掌握最新信息。这是真正的"实时更新"。
第三,可访问私有数据。只要把企业内部的文档、个人笔记等私有数据加入知识库,RAG 系统就能让模型回答这些专属问题,而这些数据永远不需要进入模型的训练过程。
1.5.2 RAG 的工作流程:三步曲
一个典型的 RAG 系统在回答用户问题时,会经历以下三个步骤:
第一步:问题理解与检索触发。当用户输入问题时,RAG 系统首先对问题进行处理,包括分词、向量化(转化为数字向量)等。然后,系统会拿着这个"问题向量",去一个叫"向量数据库"的特殊数据库中搜索与该问题最相关的若干段文本。这个搜索过程叫做"语义检索"——它不依赖于关键词的精确匹配,而是基于含义的相似性。
第二步:上下文整合。系统把检索到的若干段相关文本,连同用户的原始问题,按照特定的格式拼接成一段"提示词(Prompt)",送给大语言模型。这段提示词通常包括一个简短的指令(例如"请基于以下参考资料回答用户问题")、检索到的文本片段、以及用户的问题。
第三步:模型生成回答。大语言模型基于这段包含了"参考资料"和"用户问题"的提示词,生成最终回答。由于模型在生成时看到了真实的文档内容,它"编造"的概率显著下降,答案的准确性和可追溯性大幅提升。
这三步环环相扣,构成了 RAG 的基本工作流。后续章节会详细介绍每一步的具体实现技术