探索 RAG 在开发复杂的 LLMs 中的作用
Co-Founder & CTO 联合创始人兼首席技术官
在 2022 年之前,如果你想在没有作品本身的情况下快速回忆起你最喜欢的书中的特定段落或你刚刚看过的电影中的台词,你可能会转向搜索引擎。您可以使用精心设计的搜索输入来提示它,解析返回的结果,访问似乎包含您的答案的 SparkNotes 或 IMDB 链接,并在几分钟内在页面上找到您要查找的文本。现在,您只需打开 ChatGPT,输入“最著名的《终结者》名言是什么?”或者“写出《两个城市的故事》的开头段落”并在几秒钟内得到你的逐字回答。
大型语言模型 (LLM) 最简单的用途之一是作为知识数据库。 LLMs 已接受过包含丰富信息的海量数据集的训练,像 ChatGPT 这样的界面使得检索变得很容易。例如,当您提示 ChatGPT 返回电影或书籍中的内容时,您只是利用模型的能力来回忆其在训练期间接触过的信息。但是,如果它没有接受《终结者》剧本的训练,或者它的权重不重视狄更斯的作品,该怎么办?为了即使是最简单的用例(例如基本信息检索)也能提供最准确和相关的结果,LLMs 需要复杂的索引和检索机制,能够精确地访问广泛的信息。
LLM 内容是通过称为下一个标记预测的过程生成的,该过程可确保响应上下文适当、多样化,并且在一定程度上反映了类似人类的理解。以下是下一个令牌预测的工作原理,一步一步:
1.输入处理:当您键入提示或问题时,该输入将转换为标记:单词或单词片段。
2.上下文理解:模型会查看您给它的标记,并根据其训练尝试理解上下文,其中包括从当前主题到您可能使用的语气的所有内容。
3.下一个标记预测:使用它所理解的上下文,模型然后预测最有可能的下一个标记是什么。这不仅仅是根据前一个单词进行猜测;而是根据前一个单词进行猜测。它正在考虑到目前为止对话的整个背景。
4.令牌选择:一旦预测了一系列可能的下一个令牌,它就会选择一个。这种选择基于概率——根据模型训练的数据,最有可能出现的标记。然而,值得注意的是,这里也存在一些随机性,这有助于生成更加多样化和听起来更自然的响应
5.输出生成:然后将选定的标记转换回人类可读的文本。如果响应不完整(通常不是仅在一个令牌之后),则该过程会重复。新的标记被添加到序列中,模型根据更新的上下文预测下一个标记。
6.迭代细化:重复预测下一个标记并将其添加到序列中的过程,直到模型到达停止点。这可能是当响应达到一定长度时,模型预测一个表示句子或段落结束的标记,或者当它满足提示中嵌入的指令时。
当 LLM 预测一个标记时,它会有效地检索并利用嵌入在其权重中的压缩知识来生成上下文适当的输出。通过这种方式,LLM训练镜像数据库压缩。正如数据库经过优化以快速调用频繁访问的数据一样,LLM 旨在从其权重中检索信息(特定的插值记忆)。这种功能使其能够对训练期间遇到的熟悉材料的查询产生精确的响应,就像在数据库中查询索引良好的信息一样。然而,当模型遇到不太熟悉或模糊的内容时,就会出现限制。例如,当您向 LLM 询问圣经中的特定段落时,它会逐字引用它们,但它不能逐字引用任何它在训练期间没有冗余“见证”的概念,因为权重与这个概念相关的东西太微不足道了。从这个意义上来说,LLM 也类似于数据库。正如数据库可能只返回已显式存储在其中的数据一样,LLM 可能很难生成其在训练期间未广泛见过的主题的内容。
此外,下一个令牌预测系统还具有其他固有的局限性,这些局限性源于其生成文本的基本方法:
上下文窗口大小:主要约束之一是模型的上下文窗口大小 - 模型在进行预测时可以考虑的最大文本量(以标记为单位)。对于许多模型(包括早期版本的 GPT)来说,此窗口不够大,无法维护较长对话或文档的上下文,这可能会导致较长文本或复杂讨论失去连贯性,而这些文本或复杂讨论需要维护超出前一个标记的上下文。
泛化与特异性:虽然这些模型是在大量数据集上进行训练的,但它们从训练中泛化的能力有时会导致它们产生通用或模糊相关的内容。他们可能无法生成高度具体或细致入微的响应,这些响应需要详细的理解或训练数据之外的最新知识
缺乏外部知识访问:下一个令牌预测模型仅限于其训练数据集中包含的信息。他们无法在培训后访问或整合新信息,这意味着它们可能很快就会过时或缺乏当前背景,例如最近的事件、发现或热门话题。
重复性和可预测性:下一个标记预测的算法性质有时会导致重复或可预测的文本生成。由于该模型通常倾向于在给定上下文的情况下在统计上更有可能遵循的标记,因此它可能会陷入循环或更喜欢常见短语,从而减少输出的可变性。
如前所述,LLMs 根据训练期间分配给数据不同方面的权重生成响应。这些权重反映了模型感知输入数据的各种元素的重要性或重要性。如果用户的提示包含训练数据中未显着表示的元素,则模型可能无法生成准确或相关的响应。
当对话超出 LLM 的上下文窗口时,或者当提示超出 LLM 自己的训练数据集中的重要权重限制时(意味着它无法准确回忆起答案)用户正在寻找),该模型通常依赖于外部向量搜索数据库,该数据库允许其搜索可附加到用户提示的相关上下文或新数据。此过程称为检索增强生成 (RAG)。
RAG 过程是通过矢量搜索数据库实现的:矢量搜索数据库是一种以矢量形式存储和管理数据的高级数据库。这些向量表示高维空间中的数据,其中每个维度捕获数据含义的某些方面,从而允许表示复杂的关系和属性。在文本和语言的背景下,向量搜索数据库使用嵌入等技术将文本转换为数值向量。这种转换使系统能够通过计算多维空间中不同文本片段对应向量之间的距离来测量不同文本片段之间的语义相似性。
在 RAG 期间,查询(即用户对 LLM 的输入)和存储的数据(例如文章、文档或句子)都使用文本嵌入转换为向量。这些嵌入将文本数据转换为数值向量,其中相似的含义被映射到向量空间中的邻近点。然后,数据库计算查询向量与存储数据向量之间的距离,以确定文本含义的相关程度。数据库检索向量最接近查询向量的数据点(文本内容),即语义上与输入最相似的数据点。这些数据点在上下文和含义方面被认为是“最近的邻居”。
这些最近的邻居提供了上下文相关的附加信息,而基 LLM 在其自己的训练数据中可能无法访问这些信息,这可以显着提高 < 的准确性、相关性、丰富性和多样性。 /b1002> 的输出。 Sam Altman 等人提倡“向量搜索成功”方法,即依靠 RAG 来开发代理,而不是单独进行模型微调。
微调LLM涉及根据特定数据集的额外训练来调整模型的权重,以增强特定任务的性能或增进对某些领域的理解。这个过程不仅慢于创新的速度,这意味着经过微调的模型几乎和更新一样快地过时,而且它也没有解决新数据的问题。
相比之下,RAG 使模型能够实时访问外部数据库,以检索与当前查询相关的最新信息。即使底层模型最近没有更新或微调,它仍然可以生成包含最新数据的响应。模型可以更长时间地保持相关性,因为它们可以通过检索外部信息源来适应新数据和不断变化的环境。
RAG 有效地弥合了深度学习和传统信息检索技术之间的差距。通过这样做,它充分利用了深度学习强大的上下文理解和信息检索的精确性的优势。这种混合方法使 LLMs 能够生成更准确、更详细且上下文更丰富的响应。
除了微调之外,RAG 还解决了之前提到的与标准 LLMs 相关的挑战:
扩展上下文理解:RAG 通过获取增强模型响应的最新或详细信息来扩展传统 LLMs 的上下文窗口
提高特异性和准确性:RAG 允许模型将检索到的文档中的特定详细信息注入到其响应中,而不是仅仅依赖于训练期间学习的模式,从而使它们不仅更加准确,而且可以针对当前的特定查询进行定制。
减少重复性和可预测性:通过为每个查询动态提取不同的信息集,RAG 可以显着改变模型的响应。这种可变性有助于减少纯生成模型中常见的重复性和可预测性,因为外部数据在对话中引入了新的措辞和细节。
然而,RAG 也有其自身的挑战,即延迟和缺乏智能。考虑一个基于回合的代理聊天机器人对话,其中用户提交提示,LLM吐出一些标记,表明它需要更多上下文,矢量搜索数据库通过用户的输入提示检索最近邻居上下文,然后最后都再次发送到LLM进行推理。然后,轮到用户回复,等等。
在此系统中,每个用户提示都会启动一个多步骤操作,其中每个步骤都会增加总处理时间。整个过程的速度还取决于矢量搜索数据库检索必要上下文的速度。如果数据库查询很复杂或者数据库本身很大并且没有最佳索引,则此检索可能会导致严重的延迟。此外,特别是在更复杂的对话中,这种生成和检索的顺序可能需要重复多次才能充分细化响应。这种迭代循环会加剧延迟,导致交互速度比仅依赖内部数据的纯生成模型慢。
此外,富含 RAG 的 LLM 的智能很大程度上取决于从矢量搜索数据库检索到的信息的质量和相关性。如果数据库内容不全面、不最新或维护良好,则检索到的信息的效用可能会受到限制,从而影响响应的整体智能。
即使检索到高质量的外部数据,挑战仍然在于如何有效地将这些信息集成到 LLM 的现有响应框架中。该模型不仅必须包含这些外部数据,而且必须以适合上下文和连贯的方式进行。模型的训练与外部数据的性质之间的不一致可能会导致技术上准确但上下文脱节的响应。
下一代LLMs可能会将基于矢量搜索的RAG和传统的训练/微调方法以及结构化数据处理(例如TradFi市场数据和相关财经新闻的SQL数据库)混合在一起。 “这里”有一个 LLM 提供商和“那里”有一个单独的矢量搜索数据库的概念将通过新模型进行整理,这些模型直观地将其索引工作内存扩展到具有 TB 向量化上下文的本地 SSD。
Space and Time 已经向客户提供了 Proof of SQL(一种 ZK 证明,用于验证 SQL 数据库处理的准确性和防篡改性),并且最近还提供了 Proof of Vector Search(矢量搜索检索),它对矢量搜索检索具有相同的作用。这些新颖的证明为未来开辟了道路,LLMs可以集成新的上下文,实时访问更广泛、更细致的数据范围,并集成结构化数据处理以产生更有洞察力的分析,所有这些都以可追踪的方式进行。 ,可验证的方式。这些进步最终将扩大LLMs的应用范围,扩展其在严重依赖最新数据的领域的效用,例如金融服务、新闻聚合和风险评估,从而推动推动下一波人工智能驱动的创新浪潮。
Scott Dykstra 是 Space and Time 的联合创始人兼首席技术官,也是包括 Sotero 在内的多家数据库和 Web3 技术初创公司的战略顾问。斯科特拥有围绕复杂的绿地挑战和研究驱动的开发建立和扩展大型工程团队的长期历史。 Scott 专长于企业级分析,此前曾担任 Teradata 云解决方案副总裁,他花了近八年的时间将 Teradata 从本地部署转向下一代基于云的 SaaS。 Scott 是一位富有远见的产品领导者,拥有 Web3、数据仓库、云和衍生品交易领域的产品开发专业知识。 Scott 痴迷于美丽的用户体验/用户界面。作为一名彻头彻尾的企业家,《时空》是斯科特作为研究驱动型初创公司高管的第二次成功尝试。