大语言模型,例如您通过API接触到的那些,是在包含互联网文本、代码和数字化书籍的海量数据集上训练的。此训练过程使它们获得了对语言、事实、推理模式以及不同方面的全面认识。然而,这些知识基本是静态的,反映的是训练数据收集时的信息状态。这种特性在构建实际应用程序时,带来多项主要局限。知识截止日期问题每个预训练的大语言模型都有一个“知识截止日期”。这是指模型在训练阶段之后不再接触新信息的时间点。您可以将其想象成信息的快照,固定在某个特定时刻。因此,模型不了解以下内容:近期事件: 在模型训练完成后发生的主要政治事件、科学发现或文化动态。新数据: 截止日期之后出现的网上发布信息、新的研究论文或更新的统计数据。变化趋势: 比其知识库更新的公众意见变化、市场走向或技术进步。如果您询问模型上周发生的事情,或者查询昨天发布产品的最新规格,它很可能没有答案。好一点的情况,它会说明其知识局限;差一点的情况,它可能会试图根据旧数据推断或猜测,这可能导致不准确或过时的回复。请设想,询问一个知识截止日期为2023年初的大语言模型,关于2023年末举行的一场重要选举的获胜者。它根本不会知道,因为该信息不存在于其训练语料库中。无法获取实时信息与知识截止日期相关的是,标准大语言模型无法访问实时、动态的数据流。它们不能:查看当前股价。提供即时天气预报。报告实时体育比赛分数。获取突发新闻。需要真正最新信息的应用程序不能仅依赖于大语言模型的内部知识。无法访问私有或专有数据在企业或个性化应用程序开发中,最常遇到的局限可能是大语言模型本身无法访问私有数据源。标准模型没有内置的查询能力,无法查询:公司内部数据库或知识库。私有代码库。用户专属文档或电子邮件。专有研究数据。您组织专属的客户支持日志。设想您正在构建一个客户支持机器人。虽然通用大语言模型知道如何礼貌地对话和回答常见问题,但它无法访问您公司的具体产品手册、故障排除指南或客户历史数据库,从而无法提供定制化、准确的支持。由于上下文窗口大小限制和安全问题,将所有可能相关的私有数据作为提示每次都输入,通常不现实。虚构(幻觉)的可能性当面对超出其知识范围或需要它们不具备信息(如近期或私有数据)的查询时,大语言模型有时会“虚构”或“产生幻觉”。这意味着它们生成的回复听起来合理且语法正确,但实际不准确或毫无意义。它们可能会编造细节,错误回忆训练数据中的事实,或以误导性方式组合不相关的信息。出现这种情况,是因为模型的目的通常是根据训练期间学到的模式生成连贯的文本序列,不一定保证事实准确性,特别是对于从未训练过的信息。digraph G { rankdir=LR; node [shape=box, style=rounded, fontname="sans-serif", color="#4263eb", fontcolor="#4263eb"]; edge [color="#adb5bd"]; subgraph cluster_llm { label = "大语言模型内部知识"; bgcolor="#e7f5ff"; llm_knowledge [label="静态知识\n(截至截止日期)", shape=cylinder, color="#1c7ed6", fontcolor="#1c7ed6"]; } subgraph cluster_external { label = "外部数据"; bgcolor="#fff9db"; node [color="#f59f00", fontcolor="#f59f00"]; real_time [label="实时信息\n(新闻、股价)"]; private_data [label="私有数据\n(文档、数据库)"]; recent_events [label="截止日期后事件"]; } llm_knowledge -> query [label="处理查询", dir=none, style=dashed, color="#adb5bd"]; query [label="用户查询", shape=ellipse, color="#495057", fontcolor="#495057"]; query -> llm_knowledge [label="?"]; query -> real_time [label="?", style=dotted, color="#fa5252"]; query -> private_data [label="?", style=dotted, color="#fa5252"]; query -> recent_events [label="?", style=dotted, color="#fa5252"]; {rank=same; llm_knowledge; query;} {rank=same; real_time; private_data; recent_events;} label="大语言模型知识鸿沟"; fontsize=12; fontcolor="#495057"; }大语言模型的内部知识限于其训练数据,这在其所知内容与回答某些查询所需的外部环境实时、私有或近期信息之间形成一个差异。红色虚线表示标准大语言模型通常无法获取的信息。这些局限表明,需要有机制让大语言模型在生成过程中查阅外部信息源。仅依赖于模型预训练的参数,不足以完成要求当前、特定或专有知识的任务。这正是检索增强生成(RAG)要解决的问题,也是本章的侧重内容。通过首先获取相关外部信息,然后将其作为上下文提供给大语言模型,RAG系统使模型能够生成更准确、及时和相关的回复。