如果你正在阅读这本书,你很可能已经探索过大型语言模型(LLMs)的领域,并且已经认识到它们潜在的应用价值以及可能存在的陷阱。本书将讨论 LLM 所面临的挑战,并提供一份实用指南,帮助你使用 LlamaIndex 构建数据驱动的 LLM 应用。它会带领开发者从基础概念出发,逐步走向实现检索增强生成(RAG)的高级技术,从而创建由外部数据增强的高性能交互式 AI 系统。
本章将介绍生成式 AI(GenAI)和 LLM。它会解释 LLM 如何在海量数据集上训练之后,生成类似人类的文本。我们还会概览 LLM 的能力以及它们的局限,例如它们倾向于提供过时知识和错误信息,以及缺乏推理能力。你将了解 RAG 这一潜在解决方案。RAG 将使用索引数据的检索模型与生成模型结合起来,以提高事实准确性、逻辑推理能力和上下文相关性。总体而言,你将获得对 LLM 的基本理解,并学习如何使用 RAG 克服 LLM 的一些弱点,为实际使用 LLM 奠定基础。
在本章中,我们将覆盖以下主题:
- 介绍 GenAI 和 LLM
- 理解 LLM 在现代技术中的角色
- 探索 LLM 面临的挑战
- 使用 RAG 增强 LLM
你的购买包含一份免费 PDF 副本 + 独家额外资料
你的购买包含本书的一份无 DRM PDF 副本、Packt+ 图书馆 7 天试用权限(无需信用卡),以及其他独家额外资料。请查看前言中的“Free benefits with your book”部分,立即解锁这些内容,并最大化你的学习收益。
介绍 GenAI 和 LLM
介绍部分有时会有些枯燥,但在这里,我们有必要先建立上下文,帮助你在深入 LlamaIndex 之前熟悉 GenAI 和 LLM。我会尽量简洁;如果读者已经熟悉这些信息,也请原谅这段简短的铺垫。
什么是 GenAI?
GenAI 指的是能够生成新内容的系统,例如文本、图像、音频或视频。不同于那些为特定任务而设计的更专门化的 AI 系统,例如图像分类或语音识别,GenAI 模型能够创建全新的资产,而且这些资产通常非常难以,甚至不可能,与人类创作的内容区分开来。
这些系统使用机器学习(ML)技术,尤其是深度神经网络,例如在海量数据上训练出来的 transformer。通过学习训练数据中的模式和结构,生成式模型能够建模数据背后的概率分布,并从这个分布中采样,以生成新的示例。换句话说,它们就像大型预测机器。就像一首钢琴旋律是一音一音地创作出来的一样,模型会基于前面已经出现的内容生成每一步,无论那一步是一个词、一个像素,还是一个声音,最终逐渐构建出一个连贯且原创的结果。
接下来,我们将讨论 LLM,它是 GenAI 中最热门的领域之一。
什么是 LLM?
GenAI 中最重要且发展最快的分支之一,是通过 LLM 进行自然语言生成(NLG)(图 1.1):
图 1.1 —— 生成式 AI 的当前格局
LLM 是专门为理解和生成人类语言而设计并优化的神经网络(NNs)。之所以称其为“大型”,是因为它们在海量文本上进行训练,这些文本包含从互联网以及其他来源抓取来的数十亿甚至数万亿个词,这些来源也可能包括经过策划的数据、合成数据或专有数据。更大的模型通常会在基准测试中表现更好,具有更强的泛化能力,并展现出新的涌现能力。与早期基于规则的生成系统相比,LLM 最主要的区别在于,它能够生成新颖、原创且读起来自然的文本。
也就是说,近年来模型架构方面的进展,例如混合专家模型以及其他效率优化技术,已经表明,原始参数数量并不是驱动性能的唯一因素;一些规模较小但优化良好的模型,有时也可以媲美大得多的模型。
通过从众多来源中学习模式,LLM 获得了训练数据中所包含的各种语言能力,从细腻的语法,到主题知识,甚至是基础的常识推理。这些被学习到的模式,使 LLM 能够以符合上下文的方式延展人类写下的文本。随着 LLM 持续发展,它们正在为大规模生成自然语言(NL)内容打开新的可能性。
在训练过程中,LLM 会从其庞大的训练数据集中,逐渐学习词与词之间的概率关系,以及支配语言结构的规则。一旦训练完成,它们就能够基于前面的词,预测序列中下一个词出现的概率,从而生成极其接近人类的文本。在很多情况下,它们生成的文本自然到会让人忍不住思考:难道我们人类不也是一种类似但更复杂的预测机器吗?不过,这就是另一本书的话题了。
在最具影响力且被广泛采用的 LLM 中,生成式预训练 Transformer(GPTs)无疑占据重要位置。这些模型将互联网规模数据上的大规模训练,与强大的 transformer 架构结合起来,从而生成流畅、连贯且上下文相关的语言。要理解 GPT 以及许多其他现代 LLM 为什么如此有效,就必须理解 transformer 是如何工作的。
其中一项关键架构创新就是 transformer,也就是 GPT 中的 T。它是一种仅解码器架构,使用注意力机制来学习词语之间的上下文关系。
注意力机制使模型能够学习文本中的长距离依赖关系,就像我们在对话中会认真倾听并关注上下文,以充分理解含义一样。这意味着 transformer 不仅能理解彼此靠近的词,还能理解句子或段落中相距很远的词之间是如何相互关联的。
注意力机制允许模型在进行预测时,有选择地关注输入序列中相关的部分,从而捕捉数据中的复杂模式和依赖关系。这个特性使得特别大的 transformer 模型,也就是拥有大量参数并在海量数据集上训练的模型,能够展现出一些令人惊讶的新能力,例如上下文学习:它们只需要在提示词中看到少量示例,就能完成任务。要了解更多关于 transformer,尤其是 GPT 的内容,你可以参考 Alec Radford、Karthik Narasimhan、Tim Salimans 和 Ilya Sutskever 的 Improving Language Understanding with Unsupervised Learning。
表现最好的 LLM,例如 GPT-4.5、Claude 3.7、Llama 4 和 Gemini 2.5,被认为包含数千亿甚至更多参数,并且使用先进的深度学习(DL)技术,在互联网规模的数据集上完成训练。由此得到的模型拥有庞大的词汇量,对语法、句法等语言结构,以及广泛的世界知识,都具有较深入的掌握。得益于这些独特特性,LLM 能够生成连贯、语法正确且语义相关的文本。它们生成的输出并不总是完全合乎逻辑或事实准确,但通常读起来很有说服力,仿佛是由人类写出来的。
但这并不完全取决于规模。数据质量和训练算法等因素,也会在特定模型最终的性能中发挥巨大作用。
许多模型都配有用户界面,允许用户通过提示词生成响应。此外,有些模型还提供 API,供开发者以编程方式访问模型。后一种方式将是本书后续章节的主要关注点。
接下来,我们会谈谈 LLM 如何给技术带来重大变化。它们不仅在帮助大公司,也在帮助每一个人。好奇吗?让我们继续读下去。
理解 LLM 在现代技术中的角色
啊!我们正生活在多么美好的时代。从来没有哪个时代像现在这样,对小企业和创业者如此有利。考虑到 LLM 的巨大潜力,它没有被严格控制在大公司或政府手中,而是真正被放到了每个人触手可及的地方,这简直是一个奇迹。现在,几乎任何人,甚至是非技术人员,都有可能实现自己的想法,并解决那些直到过去为止,如果没有大量资源就看似不可能解决的问题。
然而,LLM 在几乎所有行业中都具有巨大的颠覆潜力。
确实,有人担心这项技术会取代我们。不过,技术的作用是让生活更轻松,接管重复性的活动。和过去一样,我们很可能仍然做同样的事情,只是在 LLM 的帮助下做得更高效、更好。我们会用更少的资源完成更多的事情。
我敢说,LLM 已经成为 NLG 技术的基础。它们已经能够驱动聊天机器人、搜索引擎、编码助手、文本摘要工具,以及其他可以交互式或自动化合成书面文本的应用。而且它们还在快速发展,其中许多模型现在已经超越了纯文本能力。多模态 LLM 可以同时处理图像和文本,从而支持视觉推理和文档理解类应用。
与此同时,Llama、Mistral 和 Falcon 等强大的开源替代方案,已经让更多人能够接触到这项技术,使私有化部署和定制成为可能,而无需依赖 API。这些发展极大地扩展了语言模型在各行业中的能力边界和可访问性。
然后,还有智能体(agents)。这些动态系统能够自主解释输入、做出决策,并基于自身目标采取行动。在 LLM 的驱动下,智能体不再局限于静态提示词:它们会选择合适的工具,适应变化中的上下文,并迭代式地朝解决方案推进。它们代表了我们设计和构建高级 AI 应用方式上的根本转变。我们将在第 9 章“理解基础智能体架构”中更详细地讨论这一主题。
尽管 LLM 出现的时间相对较短,但它们已经证明自己具有惊人的多功能性和强大能力。借助合适的技术和提示词,它们的输出可以在大规模场景中被引导到有用的方向。随着生成能力不断演进,LLM 正在许多领域推动创新。它们的能力持续从细腻的对话扩展到多模态智能。而目前,由 LLM 驱动的跨行业、跨技术创新浪潮,丝毫没有放缓的迹象。
Gartner 技术成熟度曲线模型是一种战略框架,旨在帮助技术领导者评估新技术。它不仅关注技术本身的价值,也将技术置于组织自身的特定需求和目标之中进行考量。
根据当前技术成熟度和采用水平来看,在 2025 年初,LLM 正在越过“启蒙坡”(Slope of Enlightenment),并已经进入“生产力平台”(Plateau of Productivity),也就是技术能够在规模化场景中持续交付稳定、具体价值的阶段(图 1.2)。企业不再只是实验,而是在实施具备明确 ROI 指标的生产级 LLM 系统。这一转变标志着技术从潜力走向实际应用:它已经克服了早期局限,成为企业技术栈中的标准组件。
图 1.2 —— Gartner 技术成熟度曲线
然而,与其他更具体的技术不同,LLM 更像是一种新的基础设施形式,是一个生态系统。在这个生态系统中,新的概念将能够显现,毫无疑问,革命性的应用也将诞生。
这就是它们真正的潜力,而现在正是学习如何利用这些机会的理想时机。
在我们跳入那些可以最大化 LLM 能力的创新解决方案之前,让我们先退一步,看看 LLM 所面临的一些挑战和局限。
探索 LLM 面临的挑战
然而,并不是所有消息都是好消息。现在也该讨论 LLM 较为阴暗的一面了。
这些模型确实存在重要局限,也会带来一些附带影响。下面列出的是最重要的一些,但请将其视为非穷尽列表。可能还有其他没有被包含在这里的问题,而且下面的顺序也是任意的。
无法原生访问实时数据
默认情况下,LLM 无法访问实时数据。基础模型是在静态数据集上训练的,这意味着它们所掌握的信息,只能新到训练数据的时间点为止,可能不包含最新新闻、科学发现或社会趋势。
当用户寻求实时信息或近期信息时,这一局限可能非常关键,因为 LLM 可能会提供过时或无关的回答。此外,即使它们引用了数据或统计数字,这些数字也很可能已经发生变化或演进,从而导致潜在的错误信息。
虽然大多数商业托管模型已经通过集成实时检索机制,例如网页搜索或 API 访问,在很大程度上缓解了这一问题,但这种能力并不是语言模型本身固有的特性,而是构建在其之上的一层。例如,OpenAI 的 ChatGPT 浏览功能、Anthropic 带有网页访问能力的 Claude,或者 Perplexity AI 以搜索优先的方式,都允许模型动态拉取最新上下文。然而,这些集成仍然依赖于被检索来源的质量和可靠性,而且并非所有平台都能在检索过程的透明度或控制能力上提供相同水平的支持。
没有内置的真伪感或准确性感
它们并没有内在机制来区分事实真相与虚假信息。如果没有适当的监控,它们可能会生成很有说服力的错误信息。相信我,它们不是故意这么做的。用非常简单的话来说,LLM 基本上只是在寻找那些能搭配在一起的词。由于它们是随机性地生成文本,其输出并不能保证完全合乎逻辑、符合事实或没有危害。
此外,训练数据本身会使模型产生偏见,而 LLM 可能会在没有任何警告的情况下生成有毒、不正确或荒谬的文本。由于这些数据有时包含来自互联网各处的问题内容,LLM 可能会无意中延续并放大其来源材料中的偏见、有害观点和不恰当语言。请看图 1.3,那里给出了一个简单示例,展示了 GPT-3.5 模型的某个旧版本如何生成错误信息:
图 1.3 —— 来自 GPT-3.5-turbo-instruct playground 的截图
大多数现代商业界面现在都内置了高级护栏、内容审核系统,并且在某些情况下还加入了实时事实核查机制,这显著降低了幻觉回答出现的概率。然而,这种风险并没有被完全消除。即使有了更好的安全措施,LLM 仍然可能生成细微不准确、过时或具有误导性的回答,尤其是在处理细腻、模糊或不常见的话题时。事实核查和验证仍然是必要的。
上下文限制与记忆丢失
许多 LLM 无法在长时间聊天会话或上传文档中维持上下文和记忆。例如,早期 GPT-3.5 模型大约支持 8,000 个 token,而 GPT-5.4 或 Gemini 3.5 等较新模型可以达到 128,000 甚至 100 万个 token;其中一个 token 大约相当于四分之三个英文单词。与一个标准的、原生形态的 LLM 交互,在简单主题或快速问答场景中可以表现得非常好。但一旦超出模型的上下文窗口限制,你很快就会感受到它的局限:它会开始难以保持连贯性,并可能丢失对话或文档前面部分的重要细节。
LLM 是基于 token 运作的,而不是基于原始字符。Token 代表模型在接收提示词时处理的小段文本。
这可能导致输出碎片化或不完整,无法充分回应长篇交互或深入分析中的复杂性,就像一个遭受短期记忆丧失的人一样。
虽然 Anthropic 的 Claude Opus 4.6、Google 的 Gemini 3.5 或 Llama 4 等近期发布的 AI 模型,已经在上下文窗口限制方面显著提高了标准,但从成本角度来看,将整本书输入进去并在如此大的上下文上运行推理,仍然可能会非常昂贵。由于这种方式在计算上也非常密集,对于那些速度和效率至关重要的实时应用而言,使用如此庞大的输入也可能并不合适。
不恰当的推理能力
虽然 LLM 在自然语言生成方面已经变得令人印象深刻地流畅,但它们在推理和事实保持方面仍然会表现出不可预测的失败。图 1.4 展示了一个典型的逻辑推理问题,即使对于 GPT-4 这类相对现代的模型来说,它仍然具有挑战性。
图 1.4 —— 来自 GPT-4 playground 环境的截图
在这个例子中,模型给出了错误答案,因为它没有应用一致的演绎逻辑;唯一正确的解释是 Emily 说的是实话,这意味着宝藏既不在阁楼,也不在地下室。
近期的进展推动了面向推理优化的模型发展,例如 Google Gemini 2.5 Flash、OpenAI o3 和 DeepSeek-R1。这些模型被明确设计用于处理需要逻辑一致性、结构化思考和多步推理的任务。虽然它们在数学、代码生成和多跳问答等领域展现出很有希望的改进,但它们的推理能力仍远非完美。它们可能会在边界案例上失误,应用错误逻辑,或者幻觉出一些听起来合理但实际上错误的步骤。因此,它们的输出仍然可能存在缺陷,尤其是在需要精确性或关键决策的领域。
缺乏透明性和可解释性
庞大 LLM 的复杂性也降低了其运行过程的透明度。缺乏可解释性,使得审计问题或准确理解它们何时、为何失败变得困难。你能得到的只是输出,但并没有一种简单方式,让你知道导致该输出的实际决策过程是什么,或者该特定输出是基于哪一条有记录的事实。因此,LLM 仍然需要谨慎治理,以降低偏见、虚假或危险输出所带来的风险。
可持续性与环境影响
和很多其他事物一样,事实证明,我们还不能真正称它们为可持续的。至少现在还不能。由于规模巨大,它们的训练成本很高,并且因为庞大的计算需求,对环境也很昂贵。而且问题不只是训练本身,还包括它们的使用过程。
关于环境成本的估算,会因测量方法不同而差异很大。在一项研究中,ChatGPT 的用水量被估算为:20 到 50 次查询的一次会话消耗 500 毫升水。同样,训练一个单一大型模型的碳排放量,被估算为相当于数次跨大西洋飞行,而随着模型规模扩大,能源消耗也会增加。这绝不是可以忽略不计的。想想为了从 LLM 那里得到一个答案而进行的无数次失败尝试,然后再把它乘以每分钟都在练习提示工程技能的无数用户。还值得注意的是,这些估算通常被认为是偏乐观的,因为真实世界中的生产使用场景,包括重试、失败查询和基础设施开销,很可能比受控研究所显示的消耗更多资源。
合成文本与数据污染
还有更多坏消息:随着模型复杂性和训练技术不断进步,LLM 正在迅速成为机器生成文本的巨大来源。事实上,这个来源大到根据一些预测,它最终几乎会完全取代人类生成的文本。从某种意义上说,这意味着 LLM 可能会成为自身成功的受害者。
随着越来越多数据由 AI 生成,它会逐渐污染新模型的训练过程,降低它们的能力。研究人员正在探索一些应对措施,例如为 AI 生成文本加水印、从训练集中过滤合成数据,以及引入人在回路中的人工策展流程,但这些方法仍在成熟之中。就像生物学中一样,任何无法维持健康基因池多样性的生态系统,最终都会逐渐退化。
我把好消息留到了最后。
如果我告诉你,至少有一种解决方案能够部分解决几乎所有这些问题呢?事实上,上面提到的大多数缓解措施,都以某种形式采用了这种方法。
在许多方面,语言模型与操作系统非常相似。它提供了一个基础层,应用可以构建在其之上。正如操作系统管理硬件资源并为计算机程序提供服务一样,LLM 管理语言资源,并为各种自然语言处理(NLP)任务提供服务。使用提示词与它们交互,很像用汇编语言写代码。这是一种低层级交互。但正如你很快会发现的,还有更复杂、更实用的方式,可以将 LLM 的全部潜力发挥出来。
现在,是时候谈谈 RAG 了。
使用 RAG 增强 LLM
RAG 这个概念出自 2020 年 Patrick Lewis 等人的论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks。这篇由 Meta 研究人员发表的论文提出,RAG 是一种将检索方法和生成模型的能力结合起来回答用户问题的技术。RAG 背后的核心思想是:首先从一个已索引的数据源中检索相关信息,例如内部文档、网页或特定领域知识库;然后使用这些检索到的信息,通过生成模型生成更加有依据、上下文更丰富的回答(图 1.5):
图 1.5 —— 一个简单的 RAG 模型
让我们看看这在实践中意味着什么:
更好的事实保持能力:使用 RAG 的优势之一,是它能够从特定数据源中拉取信息,这可以改善事实保持能力。它不是完全依赖生成模型静态且通常较泛化的训练数据,而是使用外部文档来支撑回答,从而提高生成准确回答的可能性。
改进推理能力:检索过程允许 RAG 模型拉取与问题高度相关的信息。一般来说,这会通过填补知识缺口来带来更合乎逻辑、更连贯的推理,而这些知识缺口原本会导致独立 LLM 出错,尤其是在多步骤任务或特定领域任务上。
上下文相关性:由于 RAG 会基于查询从外部来源拉取信息,因此它比独立生成模型更有可能在上下文上准确。独立生成模型只能依赖自己的训练数据,而这些数据可能不是最新的,也可能并不符合当前上下文。不仅如此,你还可以让模型针对回答中实际使用的知识来源,给出真实引用。
降低幻觉风险:虽然 RAG 系统并不能免疫错误,但它们不太容易生成完全虚假或荒谬的答案。这意味着你收到有效输出的概率会提高。
更容易验证和追踪:在 RAG 设置中,通过建立一种机制来提供生成回答所使用的原始信息引用,通常更容易验证被检索文档的可靠性。这可以成为迈向更透明、更可信模型行为的一步。
值得注意的是,这些好处在很大程度上取决于检索系统设计得有多好。索引策略、分块方法和搜索方式等因素都会发挥重要作用,我们将在后续章节中进一步探讨。
即使 RAG 让 LLM 变得更好、更可靠,它也不能完全解决 LLM 有时给出错误或令人困惑回答的问题。并不存在一种银弹,可以彻底消除前面提到的所有问题。对它们的输出进行复核和评估仍然是一个好主意,我们会在本书后面讨论如何做到这一点。因为,正如你可能已经知道,或者现在大概已经猜到的那样,LlamaIndex 是使用 RAG 增强基于 LLM 的应用的众多方式之一。而且我要补充一句,它是一种非常有效的方式。
虽然一些商业 LLM 提供商,例如 OpenAI 在 ChatGPT 中提供的网页浏览功能,或 Google 在 Gemini 中提供的 grounded responses,已经开始将 RAG 组件集成到自己的产品中,以解决前面讨论的问题,但使用 LlamaIndex 这样的独立框架,可以提供显著更高的定制能力。它还支持使用本地托管的 AI 模型,从而实现自托管解决方案,并极大降低与托管模型相关的运营成本和隐私担忧。
总结
在本章中,我们快速介绍了 GenAI 和 LLM。你学习了 GPT 这样的 LLM 是如何工作的,以及它们的一些能力和局限。一个关键收获是:虽然 LLM 很强大,但它们也有弱点,例如可能提供错误信息以及缺乏推理能力,因此需要缓解技术。我们讨论了 RAG,作为克服部分 LLM 局限的一种方法。
这些内容为你提供了一些有用背景,帮助你在意识到 LLM 风险的同时,以务实方式使用它们。与此同时,你也学习了 RAG 这类技术的重要性,它们可以用来应对 LLM 潜在的不利方面。
在建立了这些基础之后,我们现在已经准备好进入下一章,探索 LlamaIndex 生态系统。LlamaIndex 提供了一个有效的 RAG 框架,可以用索引数据增强 LLM,使其生成更加准确、更加符合逻辑的输出。学习如何利用 LlamaIndex 工具,将是熟练驾驭 LLM 能力的自然下一步。