# 成功的矢量搜索

By [Untitled](https://paragraph.com/@0x0cb3c48256a18c9dd67fd6d8d5e7eb25d3b8bbee) · 2024-05-17

---

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

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

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

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

LLM内容是通过一个称为_下一个令牌预测_，这确保了响应在上下文中是适当的，多样的，并在一定程度上反映了类似人类的理解。以下是下一个令牌预测的工作原理:

1.  \*\*输入处理:\*\*当您键入提示或问题时，该输入被转换为标记:单词或单词片段。
    
2.  \*\*上下文理解:\*\*该模型会查看你给它的令牌，并根据其训练试图理解上下文，其中包括从手头的话题到你可能使用的语气的所有内容。
    
3.  \*\*下一个令牌预测:\*\*使用所理解的上下文，该模型然后预测最有可能的下一个令牌是什么。这不仅仅是基于上一个单词的猜测；它会考虑到对话的整个背景。
    
4.  \*\*令牌选择:\*\*一旦它预测了一系列可能的下一个令牌，它就会选择一个。该选择基于概率，即基于模型训练数据最有可能出现的令牌。然而，值得注意的是，这里也有一些随机性，这有助于生成更多样和听起来更自然的响应。
    
5.  \*\*输出生成:\*\*然后将选定的令牌转换回人类可读的文本。如果响应不完整（通常在一个令牌后就不完整了），则重复该过程。新的令牌被添加到序列中，并且模型基于该更新的上下文来预测下一个令牌。
    
6.  \*\*迭代优化:\*\*预测下一个标记并将其添加到序列中的过程重复进行，直到模型到达停止点。这可能是当响应达到一定长度时，模型预测一个标志着一句话或一段话结束的标记，或者当它满足提示中嵌入的指令时。
    

**LLM训练中压缩的局限性**
----------------

当LLM预测一个令牌时，它会有效地检索和利用嵌入其权重中的压缩知识来产生适合上下文的输出。通过这种方式，LLM培训可以镜像数据库压缩。正如数据库经过优化可以快速调用频繁访问的数据一样，LLM旨在从其权重中检索信息（特定的插值内存）。这种能力使它能够对训练中遇到的关于熟悉材料的查询做出精确的响应，就像在数据库中查询索引良好的信息一样。然而，当模型遇到不太熟悉或模糊的内容时，就会出现限制。例如，当你向LLM询问圣经中的特定段落时，它会逐字逐句地引用它们，但它不能逐字逐句地引用任何它在训练期间没有多余地“见证”过的概念，因为与该概念相关联的权重太微不足道了。从这个意义上讲，LLM类似于一个数据库。就像数据库可能只返回明确存储在其中的数据一样，LLM可能很难就培训期间没有广泛见过的主题生成内容。

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

**法律硕士培训的进一步限制**
----------------

此外，next token预测系统还有其他固有的限制，这些限制源于其生成文本的基本方法:

*   \*\*上下文窗口大小:\*\*主要约束之一是模型的上下文窗口大小-模型在进行预测时可以考虑的最大文本量（以标记为单位）。对于许多模型（包括早期版本的GPT）来说，此窗口不够大，无法在长对话或文档中维护上下文，这可能会导致较长文本或复杂讨论中失去连贯性，而这些文本或讨论需要维护紧接在前面的标记之外的上下文。
    
*   \*\*普遍性与特殊性:\*\*虽然这些模型是在庞大的数据集上训练的，但它们从这种训练中归纳的能力有时会导致它们产生通用或模糊相关的内容。他们可能无法做出高度具体或细微的反应，而这些反应需要详细的理解或培训数据之外的最新知识。
    
*   \*\*缺乏外部知识获取渠道:\*\*Next token预测模型仅限于其训练数据集中包含的信息。他们无法在培训后访问或整合新信息，这意味着他们很快就会过时或缺乏当前背景，例如最近的事件、发现或趋势话题。
    
*   \*\*重复性和可预测性:\*\*下一个令牌预测的算法性质有时会导致重复或可预测的文本生成。由于该模型通常倾向于在给定上下文的情况下统计上更有可能遵循的标记，因此它可能会陷入循环或偏好常用短语，从而降低输出的可变性。
    

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

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

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

#### **“矢量搜索成功”**

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

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

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

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

微调LLM涉及根据特定数据集上的附加训练调整模型的权重，以增强特定任务的性能或提高对某些领域的理解。这一过程不仅慢于创新的速度，意味着微调模型的过时速度几乎与更新速度一样快，而且也没有解决新数据的问题。

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

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

#### **解决LLM的进一步限制**

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

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

#### **RAG面临的挑战和必要的发展**

然而，RAG也有自己的挑战——即延迟和缺乏智能。考虑一个基于turn的agent chatbot对话，其中用户提交一个提示，LLM吐出几个令牌表示它需要更多上下文，向量搜索数据库通过用户的输入提示检索最近邻上下文，然后两者最终再次发送到LLM进行推断。然后，轮到用户回复，以此类推。

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

此外，富含RAG的LLM的智能在很大程度上取决于从向量搜索数据库中检索的信息的质量和相关性。如果数据库内容不全面、不最新或维护不当，检索到的信息的效用可能会受到限制，从而影响答复的整体智能。

即使检索到高质量的外部数据，挑战仍然在于如何有效地将这些信息集成到LLM的现有响应框架中。该模型不仅必须纳入这些外部数据，而且必须以一种上下文适当和一致的方式这样做。模型的训练和外部数据的性质之间的不一致会导致技术上准确但上下文脱节的响应。

### **下一代LLM**

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

时空公司已经向客户提供了SQL证明——一种ZK证明，用于验证SQL数据库处理的准确性和防篡改性——以及最近推出的vector search证明，该证明同样适用于Vector Search检索。这些新颖的证据为未来开辟了道路，在未来，LLMs可以集成新的上下文，实时访问更广泛、更细微的数据范围，并集成结构化数据处理以产生更具洞察力的分析，所有这些都以可跟踪、可验证的方式进行。这些进步最终将扩大LLM的应用范围，扩大其在金融服务、新闻聚合和风险评估等严重依赖最新数据的行业中的应用，从而推动下一波人工智能驱动的创新。

---

*Originally published on [Untitled](https://paragraph.com/@0x0cb3c48256a18c9dd67fd6d8d5e7eb25d3b8bbee/flj0Z2K28Gs40DdVAvhF)*
