⚡ Labs

深入浅出 RAG 核心:一文读懂向量嵌入与检索算法

深入浅出 RAG 核心:一文读懂向量嵌入与检索算法

在检索增强生成(RAG)系统中,当文本被切分为文本块(Chunks)后,接下来的核心步骤就是向量嵌入(Embedding)。这一步将每个文本块转换为向量空间中的多维点。在基于向量的 RAG 系统中,这种转换使得高效的语义搜索成为可能。

为什么我们需要将文本块转换为向量?RAG 应用的核心目标是实现语义搜索。以“feline(猫科)”和“cat(猫)”为例,尽管拼写完全不同,但它们在语义上高度相关。语义相似度结合了用户的意图(Intent)、上下文(Context)和实际含义(Meaning),旨在建立用户查询与 RAG 系统中存储文档之间的关联。语义相关的词汇在多维向量空间中通常会被存储在相近的位置。

为了衡量这些向量之间的接近程度,业界通常使用余弦相似度(Cosine Similarity)。当用户提出查询时,查询会被转换为向量,系统计算该向量与存储向量之间的余弦相似度,并检索出最接近的向量。如果两个向量高度相关,其余弦值接近 1;随着夹角增大,余弦值减小,表示相关性降低。相比之下,正弦(Sine)或正切(Tangent)在小角度下数值不稳定或波动过大,不适合用于稳定的语义比较。

在具体检索方法上,主要有两种主流技术:
1. KNN(K-最近邻算法):逐一对比查询向量与所有存储向量,检索精度极高,但在海量数据集下速度较慢。
2. ANN(近似最近邻算法):不进行逐一对比,而是快速寻找近似的最近向量,适用于文档量庞大、对检索速度有极高要求的场景,虽牺牲了微小的精度,但大幅提升了响应速度。

此外,嵌入模型的维度通常在 256 到 3000 维或更高。维度大小取决于所选的嵌入模型及其捕获上下文信息的能力。通常,更高的维度能够捕捉到更丰富的语义信息。

【AgentUpdate 深度解析】 向量嵌入与检索不仅是 RAG 的基石,更是构建具有长期记忆和复杂规划能力的 AI Agent 的底层逻辑。随着 Agent 迈向多模态与长上下文时代,传统的静态嵌入逐渐暴露出对复杂任务动态演进建模不足的缺陷。未来,Agent 记忆检索将不仅停留在“语义相似”,而是转向“意图与行为图谱的相关性”。在这种趋势下,结合 ANN 的混合检索(如结合稀疏向量与稠密向量)以及支持动态上下文感知、可自适应调整维度的嵌入模型(如 Matryoshka Embeddings),将成为多 Agent 协同和复杂工具调用(Tool-use)场景中的关键技术。优化检索效率和精度,将直接决定 Agent 在执行长期任务时的认知边界与响应速度。

↗ 阅读原文