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

By [MrLy8621](https://paragraph.com/@mrly8621) · 2024-06-02

---

![](https://storage.googleapis.com/papyrus_images/5b7fa5ca146b4fcbd23c6f263f6ca269657ba457c62920e57cc6b8d524f72be9.png)

在2022年之前，如果你想快速回忆起你最喜欢的书中的某个特定段落，或者是刚刚看过的一部电影中的一句台词，而手头没有这本书或电影，你可能会转向搜索引擎。你会输入一个精心设计的搜索词，然后浏览返回的结果，访问看似包含答案的SparkNotes或IMDB链接，并在几分钟内找到你要找的文字。现在，你只需打开ChatGPT，输入“终结者中最著名的台词是什么？”或者“写出《双城记》的开头段落”，几秒钟内就能得到准确的答案。

大型语言模型（LLM）最简单的用途之一是作为知识数据库。LLM经过大量丰富信息的数据集训练，像ChatGPT这样的接口使得检索这些信息变得容易。例如，当你提示ChatGPT返回某部电影或书籍的内容时，你只是利用了模型在训练过程中接触到的信息的回忆能力。但如果它没有被训练过《终结者》的剧本，或者其权重没有强调狄更斯的作品呢？为了在最简单的用例中（如基本信息检索）也能提供最准确和相关的结果，LLM需要复杂的索引和检索机制，以便精确地访问广泛的信息。

**理解大型语言模型（LLM）的内容生成和训练**

LLM内容是通过一种称为下一个词预测的过程生成的，这确保了响应在上下文上是适当的、多样化的，并在某种程度上反映了类似人类的理解。以下是下一个词预测的工作原理，逐步说明：

1、输入处理：当你输入一个提示或问题时，该输入会被转换成词元，即单词或单词的片段。

2、上下文理解：模型会查看你提供的词元，并根据其训练内容尝试理解上下文，包括当前话题以及你可能使用的语气。

3、下一个词元预测：利用它所理解的上下文，模型预测最有可能的下一个词元。它不仅基于前一个词进行猜测，而是考虑到对话到目前为止的整个上下文。

4、词元选择：一旦预测出一系列可能的下一个词元，模型就会选择一个。这一选择基于概率——根据模型训练数据，下一个最有可能出现的词元。然而，值得注意的是，这里也有一些随机性，这有助于生成更多样化且自然的响应。

5、输出生成：所选择的词元随后会转换回人类可读的文本。如果响应尚未完成（通常仅经过一个词元时并未完成），则这一过程会重复。新词元被添加到序列中，模型基于更新的上下文预测下一个词元。

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

**大型语言模型（LLM）训练中的压缩局限性**

当LLM预测一个词元时，它实际上是在检索和利用其权重中嵌入的压缩知识来生成上下文上适当的输出。这样，LLM的训练就像数据库的压缩一样。就像数据库被优化为能够快速回忆经常访问的数据一样，LLM也被设计为从其权重中检索信息——特定的插值记忆。这种能力使它能够对熟悉的材料产生精确的响应，就像查询数据库中的良好索引信息一样。然而，当模型遇到较少熟悉或晦涩的内容时，就会出现局限性。例如，当你要求LLM引用《圣经》的特定段落时，它能够逐字引用，但它无法逐字引用任何在训练期间没有反复“见证”的概念，因为与该概念相关的权重太微不足道。从这个意义上说，LLM类似于数据库。正如数据库可能只返回显式存储在其中的数据一样，LLM在生成关于其训练中未广泛见过的主题的内容时也可能遇到困难。

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

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

此外，下一个词元预测系统在生成文本的基本方法上还有其他固有的局限性：

上下文窗口大小：其中一个主要限制是模型的上下文窗口大小，即模型在进行预测时可以考虑的最大文本量（以词元计算）。对于包括早期版本的GPT在内的许多模型来说，这个窗口不够大，无法在长对话或文档中保持上下文，这可能导致在较长文本或需要超越紧邻前词元的复杂讨论中失去连贯性。

泛化与具体性：虽然这些模型在庞大数据集上进行了训练，但它们从这种训练中泛化的能力有时会导致生成的内容过于泛泛或与上下文稍有相关。它们可能无法准确生成需要详细理解或超出其训练数据范围的最新知识的高度具体或细致的响应。

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

重复性和可预测性：下一个词元预测的算法性质有时会导致生成的文本重复或可预测。由于模型常常倾向于选择在给定上下文中统计上更可能出现的词元，它可能会陷入循环或偏好常见短语，从而减少输出的多样性。

**检索增强生成（RAG）解释**

如前所述，LLMs根据它们在训练过程中分配给数据不同方面的权重来生成响应。这些权重反映了模型对输入数据各个元素的重要性或显著性的感知。如果用户的提示中包含了在训练数据中没有被显著表示的元素，模型可能无法生成准确或相关的响应。

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

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

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

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

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

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

微调一个LLM涉及基于特定数据集的额外训练来调整模型的权重，以增强其在特定任务中的表现或改善对特定领域的理解。这一过程不仅比创新的步伐慢，这意味着微调后的模型几乎在更新后就变得过时，而且也无法解决新数据的问题。

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

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

**解决LLM的进一步局限性**

除了微调，RAG还解决了标准LLM所面临的先前提到的挑战：

扩展上下文理解：RAG通过获取最新或详细的信息来增强模型的响应，从而扩展了传统LLM的上下文窗口。 提高具体性和准确性：RAG不仅依赖于训练过程中学习到的模式，还允许模型将检索到的文档中的具体细节注入其响应，使其不仅更准确，而且更符合具体查询的需求。 缓解重复性和可预测性：通过为每个查询动态提取不同的信息集，RAG可以显著改变模型的响应。这种变化性有助于减少纯生成模型中常见的重复性和可预测性，因为外部数据引入了新的措辞和细节。

**RAG的挑战和必要的发展**

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

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

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

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

下一代大型语言模型（LLM）

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

Space and Time已经向客户交付了Proof of SQL——一种验证SQL数据库处理准确性和防篡改性的零知识证明（ZK proof），并最近发布了Proof of Vector Search，后者同样适用于向量搜索检索。这些新颖的证明为未来铺平了道路，使LLM能够集成新的上下文，实时访问更广泛且更细致的数据光谱，并整合结构化数据处理，从而产生更有洞察力的分析，所有这些都是可追踪和可验证的。这些进步最终将拓宽LLM的应用范围，扩展其在依赖最新数据的行业中的实用性，例如金融服务、新闻聚合和风险评估，从而推动下一波AI驱动的创新。

---

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