矢量搜索致胜:探索RAG在发展复杂LLMs中的作用

https://www.spaceandtime.io/blog/vector-search-to-success

在2022年之前,如果您想要快速回忆起您最喜爱的书中的特定段落,或者您刚刚观看的电影中的一句台词,而又没有书或电影在面前,您可能会转向搜索引擎。您会用一个形式良好的搜索输入提示它,解析返回的结果,访问看起来包含您答案的SparkNotes或IMDB链接,并在几分钟内在页面上找到您正在寻找的文本。现在,您只需打开ChatGPT,键入“终结者最著名的台词是什么?”或“写出《双城记》的开场白”,然后在几秒钟内就能得到您的原话回答。

大型语言模型(LLM)最简单的用法之一是作为知识数据库。LLMs已经接受了丰富信息的庞大数据集的训练,ChatGPT等界面已经使得检索变得轻而易举。例如,当您提示ChatGPT返回电影或书籍内容时,您只是利用了模型回忆它在训练过程中接触过的信息的能力。但是,如果它没有被训练过终结者的剧本,或者它的权重没有给予狄更斯作品的重要性,该怎么办呢?为了即使在最简单的用例(如基本信息检索)中提供最准确和相关的结果,LLMs需要具有精密的索引和检索机制,以精确访问广泛的信息。

理解LLM内容生成和训练 LLM内容通过一种称为下一个标记预测的过程生成,这确保了响应在上下文中是合适的、多样的,并且在某种程度上反映了类似于人类理解的特点。以下是下一个标记预测的工作步骤:

  1. 输入处理:当您键入提示或问题时,该输入被转换为标记:单词或单词的一部分。

  2. 上下文理解:模型查看您给定的标记,并根据其训练尝试理解上下文,其中包括从手头的话题到您可能使用的语气的一切。

  3. 下一个标记预测:使用它所理解的上下文,模型然后预测最有可能的下一个标记是什么。它不仅仅是根据上一个词来猜测;它考虑到了直到这一点的整个对话的全部上下文。

  4. 标记选择:一旦它预测出一系列可能的下一个标记,它选择一个。这个选择是基于概率的——根据模型训练的数据,最有可能接下来出现的标记。值得注意的是,这里也有一些随机性,这有助于生成更多样化和更自然的响应。

  5. 输出生成:然后,选择的标记被转换回人类可读的文本。如果响应不完整(通常在只有一个标记之后),则该过程重复。新的标记被添加到序列中,模型根据这个更新的上下文预测下一个标记。

  6. 迭代细化:预测下一个标记并将其添加到序列的过程重复,直到模型达到停止点。这可能是响应达到一定长度时,模型预测到一个表示句子或段落结束的标记,或者当它满足了提示中嵌入的指令时。

LLM训练中压缩的局限性 当LLM预测一个标记时,它实际上是检索和利用嵌入在其权重中的压缩知识,以产生上下文适当的输出。从这个角度来看,LLM训练反映了数据库压缩。正如数据库被优化为快速检索频繁访问的数据一样,LLM被设计为检索信息——从其权重中检索特定的内插记忆。这种能力使它能够对其训练过程中遇到的熟悉材料的查询产生精确的响应,就像在为索引良好的信息查询数据库一样。然而,当模型遇到不太熟悉或晦涩的内容时,就会出现限制。例如,当您要求LLM引用《圣经》中的特定段落时,它会逐字引用它们,但是如果它在训练中没有多次“目睹”这些概念,它就无法逐字引用任何概念,因为与该概念相关的权重太微不足道了。在这个意义上,LLM也类似于数据库。正如数据库可能只返回明确存储在其中的数据一样,LLM可能会在生成涉及其训练过程中未广泛见过的主题的内容方面遇到困难。

当然,LLMs超出了这个类比的范围,因为它们在内部有一个世界模型,使它们能够“理解”超越简单查找的事物。然而,这种过度简化有助于我们理解LLMs在生成内容的训练方式中的一些关键限制。

LLM训练的进一步限制 此外,下一个标记预测系统存在其他固

有限制,这些限制源于其生成文本的基本方法:

上下文窗口大小:主要约束之一是模型的上下文窗口大小——模型在进行预测时可以考虑的文本量(以标记计)。对于许多模型,包括早期版本的GPT,这个窗口不够大,无法在长时间对话或文档中保持上下文,这可能导致较长文本或需要保持超出即时前导标记的上下文的复杂讨论的连贯性丧失。 泛化与特异性:尽管这些模型是在庞大的数据集上进行训练的,但它们从这种训练中泛化的能力有时会导致它们产生泛化或模糊相关的内容。它们可能无法生成高度特定或微妙的响应,这些响应需要详细的理解或超出它们的训练数据的最新知识。 缺乏外部知识访问:下一个标记预测模型局限于其训练数据集中包含的信息。它们不能访问或在训练后整合新信息,这意味着它们可能会很快变得过时或缺乏当前的上下文,如最近的事件、发现或热门话题。 重复性和可预测性:下一个标记预测的算法性质有时会导致重复或可预测的文本生成。由于模型通常更倾向于在给定上下文中更可能跟随的标记,它可能会陷入循环或更倾向于常见的短语,从而减少输出的变异性。 解释检索增强生成(RAG) 正如前面所述,LLMs基于它们在训练过程中分配给数据不同方面的权重来生成响应。这些权重反映了模型认为输入数据的各个元素有多重要或显著。如果用户的提示包含在训练数据中没有显著表示的元素,模型可能无法生成准确或相关的响应。

当一个对话超出了LLM的上下文窗口,或者当提示超出了LLM自己训练数据集中重要权重的限制(这意味着它无法准确地回想起用户正在寻找的答案),模型通常会依赖于外部矢量搜索数据库,该数据库允许它搜索相关的上下文或可以添加到用户提示的新鲜数据。这个过程被称为检索增强生成(RAG)。

“通过矢量搜索实现成功” 通过矢量搜索数据库实现了RAG过程:这是一种高级类型的数据库,它以向量的形式存储和管理数据。这些向量代表高维空间中的数据,其中每个维度捕获数据意义的一些方面,从而允许复杂关系和属性的表示。在文本和语言的背景下,矢量搜索数据库使用诸如嵌入之类的技术将文本转换为数值向量。这种转换使系统能够通过计算这个多维空间中相应向量之间的距离来测量不同文本之间的语义相似性。

在RAG期间,用户的查询(即用户对LLM的输入)和存储的数据(例如文章、文档或句子)都会使用文本嵌入转换为向量。这些嵌入将文本数据转换为数值向量,其中相似的含义被映射到向量空间中的近点。然后,数据库计算查询向量与存储数据向量之间的距离,以确定文本的含义之间的密切关联程度。数据库检索离查询向量最近的数据点(文本内容),即与输入最相关的数据。这些数据点被视为在上下文和含义方面“最近的邻居”。

这些最近的邻居提供了上下文相关的、额外的信息,这些信息在基础LLM可能无法在自己的训练数据中访问到,从而显著提高了LLM输出的准确性、相关性、丰富性和多样性。萨姆·阿尔特曼(Sam Altman)等人提倡“通过矢量搜索实现成功”的方法——依靠RAG来开发代理,而不仅仅是单纯地进行模型微调。

RAG作为微调的替代方法 微调LLM涉及根据对特定数据集的额外训练来调整模型的权重,以增强特定任务的性能或在某些领域提高理解能力。这个过程不仅比创新速度慢,意味着微调模型几乎和它们被更新一样快地过时,而且也没有解决新数据的问题。

相比之下,RAG使模型能够实时访问外部数据库,以检索与手头查询相关的最新信息。即使基础模型最近没有更新或微调,它仍然可以生成包含最新数据的响应。由于模型可以通过检索外部信息源来适应新数据和不断变化的上下文,因此模型的相关性更长。RAG有效地弥合了深度学习和传统信息检索技术之间的差距。通过这

样做,它充分利用了深度学习的强大的上下文理解和信息检索的精确性。这种混合方法使LLMs能够产生更准确、更详细和更具上下文丰富性的响应。

解决LLM进一步限制的挑战 除了微调之外,RAG还解决了与标准LLM相关的先前提到的挑战:

扩展上下文理解:RAG通过获取更新或详细信息来扩展传统LLM的上下文窗口,从而增强了模型的响应。 增强特异性和准确性:RAG允许模型将从检索到的文档中注入的具体细节注入其响应,而不仅仅依赖于训练期间学到的模式,从而使得响应不仅更准确,而且更适合特定的查询。 减少重复性和可预测性:通过为每个查询动态地提取不同的信息集,RAG可以大幅变化模型的响应。这种变化有助于减少纯生成模型中经常出现的重复性和可预测性,因为外部数据为对话引入了新的措辞和细节。 RAG的挑战和必要的进化 然而,RAG也带来了自己的挑战,即延迟和缺乏智能。想象一下一个基于回合的代理聊天机器人对话,用户提交提示,LLM spit出几个标记,表明它需要更多的上下文,矢量搜索数据库通过用户输入提示检索最近的邻域上下文,然后两者最终再次发送给LLM进行推断。然后,轮到用户回复,如此往复。

在这个系统中,每个用户提示都会启动一个多步操作,每一步都会增加总体处理时间。整个过程的速度还取决于矢量搜索数据库能够多快地检索到必要的上下文。如果数据库查询很复杂,或者数据库本身很大且没有优化索引,这种检索可能会引入显著的延迟。此外,在更复杂的对话中,这种生成和检索的序列可能需要多次重复,以充分改进响应。这种迭代循环可能会加剧延迟,导致与仅依赖于内部数据的纯生成模型相比,交互速度较慢。

此外,RAG丰富的LLM的智能在很大程度上取决于从矢量搜索数据库中检索到的信息的质量和相关性。如果数据库内容不全面、不及时或维护不善,检索到的信息的实用性可能会受到限制,影响响应的整体智能。

即使检索到了高质量的外部数据,挑战仍然存在于如何有效地将这些信息整合到LLM现有的响应框架中。模型不仅必须整合这些外部数据,而且必须以上下文适当和连贯的方式这样做。模型的训练与外部数据的性质之间的不匹配可能导致响应在技术上准确但上下文上不连贯。

LLMs的下一代 下一代LLMs很可能会将基于矢量搜索的RAG和传统的训练/微调方法以及结构化数据处理(例如TradFi市场数据和相关财经新闻的SQL数据库)结合起来。具有一个LLM提供者“这里”和一个单独的矢量搜索数据库“那里”的概念将通过新的模型融合在一起,这些模型直观地将它们的索引工作内存扩展到具有数千兆字节矢量化上下文的本地SSD。

Space and Time已经推出了Proof of SQL——一种可以验证SQL数据库处理准确性和防篡改性的ZK证明——以及最近推出的Proof of Vector Search,它对矢量搜索检索执行相同的操作。这些新颖的证明为未来打开了一条道路,LLMs可以集成新的上下文、实时访

问更广泛和更细致的数据,并整合结构化数据处理以产生更深入的分析,所有这些都以一种可追溯、可验证的方式进行。这些进步最终将扩大LLMs的应用范围,将它们的效用延伸到更多依赖最新数据的领域,如金融服务、新闻聚合和风险评估,从而推动人工智能驱动创新的下一波浪潮。