# 向量搜索走向成功，
探索 RAG 在开发复杂 LLM 中的作用

By [finance123.eth](https://paragraph.com/@finance123) · 2024-06-04

---

在 2022 年之前，如果你想快速回忆你最喜欢的书中的某个特定段落或你刚看过的电影中的一句台词，而又不想让作品本身摆在你面前，你可能会求助于搜索引擎。你会用精心设计的搜索输入提示它，解析返回的结果，访问似乎包含你的答案的 SparkNotes 或 IMDB 链接，并在几分钟内找到你在页面上寻找的文本。现在，你只需打开 ChatGPT，输入“最著名的终结者台词是什么？”或“写出《双城记》的开场白”，几秒钟内就能得到你的逐字答案。

大型语言模型 (LLM) 最简单的用途之一是作为知识数据库。LLM 已经在大量丰富的信息数据集上进行了训练，ChatGPT 等界面使检索变得容易。例​​如，当你提示 ChatGPT 返回电影或书籍的内容时，你只是在利用模型回忆它在训练过程中接触到的信息的能力。但是，如果它没有接受《终结者》剧本的训练，或者它的权重不重视狄更斯的作品，该怎么办？为了为最简单的用例（例如基本信息检索）提供最准确和最相关的结果，LLM 需要复杂的索引和检索机制，以便精确地访问广泛的信息。

**了解 LLM 内容生成和培训**

LLM 内容是通过称为下一个标记预测的过程生成的，该过程可确保响应符合上下文、多种多样，并且在某种程度上反映出类似人类的理解。以下是下一个标记预测的工作原理，分步说明：

1，输入处理：当您键入提示或问题时，该输入将转换为标记：单词或单词片段。

2，上下文理解：模型查看您为其提供的标记，并根据其训练尝试理解上下文，其中包括从当前主题到您可能使用的语气的所有内容。

3，下一个标记预测：使用所理解的上下文，模型会预测最有可能的下一个标记是什么。它不仅仅是根据紧接的上一个单词进行猜测；它考虑了到那时为止的整个对话上下文。

4，标记选择：一旦它预测了一系列可能的下一个标记，它就会选择一个。此选择基于概率——根据模型所训练的数据，最有可能出现的下一个标记。但值得注意的是，这里也有一些随机性，这有助于生成更多样、听起来更自然的响应。

5，输出生成：然后将选定的标记转换回人类可读的文本。如果响应不完整（通常在一个标记之后就不完整），则重复该过程。新标记被添加到序列中，模型根据更新后的上下文预测下一个标记。

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

**LLM 培训压缩的局限性**

当 LLM 预测一个 token 时，它实际上是在检索和利用嵌入在其权重中的压缩知识来产生适合上下文的输出。通过这种方式，LLM 训练反映了数据库压缩。正如数据库经过优化以快速调用经常访问的数据一样，LLM 旨在从其权重中检索信息（特定的插值记忆）。此功能使其能够对在训练期间遇到的熟悉材料的查询产生精确的响应，就像在数据库中查询索引良好的信息一样。但是，当模型遇到不太熟悉或晦涩难懂的内容时，就会出现限制。例如，当您向 LLM 询问圣经中的特定段落时，它会逐字逐句地引用它们，但它无法逐字逐句地引用它在训练期间没有冗余“见证”的任何概念，因为与该概念相关的权重太小了。从这个意义上讲，LLM 也类似于数据库。正如数据库可能只返回明确存储在其中的数据一样，LLM 可能难以生成在训练期间未广泛看到的主题的内容。

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

**LLM 培训的进一步局限性**

此外，下一个标记预测系统还有其他固有的局限性，这些局限性源于其生成文本的基本方法：

上下文窗口大小：主要约束之一是模型的上下文窗口大小——模型在进行预测时可以考虑的最大文本量（以标记为单位）。对于许多模型（包括早期版本的 GPT），此窗口不足以在长时间的对话或文档中保持上下文，这可能导致较长的文本或复杂的讨论失去连贯性，这些讨论需要在紧接的前面的标记之外保持上下文。

泛化与特异性：虽然这些模型是在庞大的数据集上进行训练的，但它们从这种训练中进行泛化的能力有时会导致它们产生通用或模糊相关的内容。它们可能无法生成高度具体或细致入微的响应，而这些响应需要详细理解或训练数据之外的最新知识。

缺乏外部知识访问：下一个标记预测模型仅限于其训练数据集中包含的信息。它们无法在训练后访问或整合新信息，这意味着它们很快就会过时或缺乏当前背景，例如最近的事件、发现或热门话题。

重复性和可预测性：下一个标记预测的算法性质有时会导致重复或可预测的文本生成。由于该模型通常倾向于统计上更有可能在给定上下文的情况下出现的标记，因此它可能会陷入循环或偏爱常用短语，从而降低输出的可变性。

**检索增强生成 (RAG) 详解**

如上所述，LLM 根据在训练期间分配给数据不同方面的权重来生成响应。这些权重反映了模型对输入数据中各种元素的重要性或重要性的感知。如果用户的提示包含训练数据中未显著表示的元素，则模型可能无法生成准确或相关的响应。

当对话超出 LLM 的上下文窗口时，或者当提示超出 LLM 自己的训练数据集中重要权重的限制（意味着它无法准确回忆起用户正在寻找的答案）时，模型通常依赖于外部向量搜索数据库，该数据库允许它搜索相关上下文或可附加到用户提示的新数据。此过程称为检索增强生成 (RAG)。

**“向量搜索成功”**

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

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

这些最近邻居提供上下文相关的附加信息，基础 LLM 可能无法在其自己的训练数据中访问这些信息，这可以显著提高 LLM 输出的准确性、相关性、丰富性和多样性。Sam Altman 等人提倡“向量搜索成功”方法——依靠 RAG 来开发代理，而不是单独进行模型微调。

**RAG 作为微调的替代方案**

对 LLM 进行微调涉及根据特定数据集的额外训练调整模型的权重，以提高特定任务的性能或提高对某些领域的理解。这个过程不仅比创新的速度慢，这意味着微调后的模型几乎和更新一样快地过时，而且它也没有解决新数据的问题。

相比之下，RAG 使模型能够实时访问外部数据库，以检索与当前查询相关的最新信息。即使底层模型最近没有更新或微调，它仍然可以生成包含最新数据的响应。模型保持相关性的时间更长，因为它们可以通过检索外部信息源来适应新数据和不断变化的环境。

RAG 有效地弥合了深度学习和传统信息检索技术之间的差距。通过这样做，它利用了两者的优势——深度学习强大的上下文理解和信息检索的精确性。这种混合方法使 LLM 能够产生更准确、更详细、上下文丰富的响应。

**解决LLMs的进一步限制**

除了微调之外，RAG 还解决了之前提到的与标准 LLM 相关的挑战：

扩展上下文理解：RAG 通过获取最新或详细信息来扩展传统 LLM 的上下文窗口，从而增强模型的响应。 增强特异性和准确性：RAG 不再仅仅依赖于训练期间学习到的模式，而是允许模型将检索到的文档中的特定细节注入到其响应中，使其不仅更加准确，而且还针对手头的特定查询进行量身定制。 减轻重复性和可预测性：通过动态提取每个查询的不同信息集，RAG 可以显著改变模型的响应。这种可变性有助于减少纯生成模型中经常出现的重复性和可预测性，因为外部数据会将新的措辞和细节引入对话中。

**RAG 面临的挑战和必要的演进**

然而，RAG 也有自己的挑战——即延迟和缺乏智能。想象一下一个回合制代理聊天机器人对话，用户提交提示，LLM 吐出一些标记，表示它需要更多上下文，向量搜索数据库通过用户的输入提示检索最近邻上下文，然后两者最终再次发送到 LLM 进行推理。然后，轮到用户回复，依此类推。

在这个系统中，每个用户提示都会启动一个多步骤操作，每个步骤都会增加总处理时间。整个过程的速度还取决于向量搜索数据库检索必要上下文的速度。如果数据库查询很复杂，或者数据库本身很大且没有最佳索引，则此检索可能会带来显着的延迟。此外，特别是在更复杂的对话中，可能需要多次重复此生成和检索序列才能充分优化响应。这种迭代循环可能会加剧延迟，导致交互速度比仅依赖内部数据的纯生成模型可能实现的速度慢。

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

即使检索到高质量的外部数据，挑战仍然是如何有效地将这些信息集成到 LLM 现有的响应框架中。模型不仅必须整合这些外部数据，而且还必须以适合上下文且连贯的方式进行整合。模型训练与外部数据性质之间的不一致可能会导致响应在技术上准确但在上下文上脱节。

**下一代LLMs**

下一代 LLM 可能会将基于向量搜索的 RAG 与传统训练/微调方法以及结构化数据处理（例如 TradFi 市场数据和相关财经新闻的 SQL 数据库）融合在一起。在“这里”拥有一个 LLM 提供商，在“那里”拥有一个单独的向量搜索数据库的概念将通过新模型进行整理，这些模型直观地将其索引工作内存扩展到具有 TB 级向量化上下文的本地 SSD。

Space and Time 已经向客户提供了 SQL 证明（一种验证 SQL 数据库处理的准确性和防篡改性的 ZK 证明），并且最近推出了向量搜索证明，它对向量搜索检索执行相同的操作。这些新颖的证明为未来开辟了道路，LLM 可以集成新的上下文，实时访问更广泛、更细致的数据，并集成结构化数据处理以产生更有洞察力的分析，所有这些都以可跟踪、可验证的方式进行。这些进步最终将拓宽法学硕士的应用范围，扩展其在严重依赖最新数据的领域的实用性，例如金融服务、新闻聚合和风险评估，从而推动下一波人工智能驱动的创新浪潮。

---

*Originally published on [finance123.eth](https://paragraph.com/@finance123/rag-llm)*
