

























向量嵌入(Embedding)是一种将真实世界中复杂、高维的数据对象(如文本、图像、音频、视频等)转换为数学上易于处理的、低维、稠密的连续数值向量的技术。
想象一下,我们将每一个词、每一段话、每一张图片都放在一个巨大的多维空间里,并给它一个独一无二的坐标。这个坐标就是一个向量,它“嵌入”了原始数据的所有关键信息。这个过程,就是 Embedding。
[0.16, 0.29, -0.88, ...]。这个向量的维度(长度)通常在几百到几千之间。
Embedding 的真正意义在于,它产生的向量不是随机数值的堆砌,而是对数据语义的数学编码。
在RAG流程中,Embedding 扮演着无可替代的重要角色。
RAG 的“检索”环节通常以基于 Embedding 的语义搜索为核心。通用流程如下: (1)离线索引构建:将知识库内文档切分后,使用 Embedding 模型将每个文档块(Chunk)转换为向量,存入专门的向量数据库中。
(2)在线查询检索:当用户提出问题时,使用同一个 Embedding 模型将用户的问题也转换为一个向量。
(3)相似度计算:在向量数据库中,计算“问题向量”与所有“文档块向量”的相似度。
(4)召回上下文:选取相似度最高的 Top-K 个文档块,作为补充的上下文信息,与原始问题一同送给大语言模型(LLM)生成最终答案。
Embedding 的质量直接决定了 RAG 检索召回内容的准确性与相关性。一个优秀的 Embedding 模型能够精准捕捉问题和文档之间的深层语义联系,即使用户的提问和原文的表述不完全一致。反之,一个劣质的 Embedding 模型可能会因为无法理解语义而召回不相关或错误的信息,从而“污染”提供给 LLM 的上下文,导致最终生成的答案质量低下。
Embedding 技术的发展与自然语言处理(NLP)的进步紧密相连,尤其是在 RAG 框架出现后,对嵌入技术提出了新的要求。其演进路径大致可分为以下几个关键阶段。
Word2Vec 通过 Skip-gram 和 CBOW 架构,利用局部上下文窗口学习词向量,并验证了向量运算的语义能力(如 国王 - 男人 + 女人 ≈ 王后)。GloVe 则融合了全局词-词共现矩阵的统计信息。2017年,Transformer 架构的诞生带来了自注意力机制(Self-Attention),它允许模型在生成一个词的向量时,动态地考虑句子中所有其他词的影响。基于此,2018年 BERT 模型利用 Transformer 的编码器,通过掩码语言模型(MLM)等自监督任务进行预训练,生成了深度上下文相关的嵌入。同一个词在不同语境中会生成不同的向量,这有效解决了静态嵌入的一词多义难题。
在开篇我们就提到了 RAG 框架的提出1,是为了解决大型语言模型 知识固化(内部知识难以更新)和 幻觉(生成的内容可能不符合事实且无法溯源)的问题。它通过“检索-生成”范式,动态地为 LLM 注入外部知识。这一过程的核心是 语义检索,很大程度上依赖于高质量的向量嵌入。
后续 RAG 的兴起对嵌入技术提出了更高、更具体的要求:
了解了嵌入模型的发展,我们来简单探究一下当前主流的嵌入模型(通常是基于 BERT 的变体)是如何通过训练获得强大的语义理解能力的。
现代嵌入模型的核心通常是 Transformer 的编码器(Encoder)部分,BERT 就是其中的典型代表。它通过堆叠多个 Transformer Encoder 层来构建一个深度的双向表示学习网络。
BERT 的成功很大程度上归功于 自监督学习 策略,它允许模型从海量的、无标注的文本数据中学习知识。
[MASK] 标记。虽然 MLM 和 NSP 赋予了模型强大的基础语义理解能力,但为了在检索任务中表现更佳,现代嵌入模型通常会引入更具针对性的训练策略。
度量学习 (Metric Learning) :
对比学习 (Contrastive Learning) :
distance(Anchor, Positive) 尽可能小,同时让 distance(Anchor, Negative) 尽可能大。理论已经了解,那么该如何选择最适合你项目的嵌入模型?
MTEB (Massive Text Embedding Benchmark) 是一个由 Hugging Face 维护的、全面的文本嵌入模型评测基准。它涵盖了分类、聚类、检索、排序等多种任务,并提供了公开的排行榜,为评估和选择嵌入模型提供了重要的参考依据。

下面这张图是网站中的模型评估图像,直观地展示了在选择开源嵌入模型时需要权衡的四个核心维度:

MTEB 榜单可以帮助我们快速筛选掉大量不合适的模型。但需要注意,榜单上的得分是在通用数据集上评测的,可能无法完全反映模型在你特定业务场景下的表现。
在查看榜单时,除了分数,还需要关注以下几个关键维度:
Retrieval (检索) 任务下的排名。不要只依赖公开榜单做最终决定。
(1)确定基线 (Baseline) :根据上述维度,选择几个符合要求的模型作为你的初始基准模型。
(2)构建私有评测集 :根据真实业务数据,手动创建一批高质量的评测样本,每个样本包含一个典型用户问题和它对应的标准答案(或最相关的文档块)。
(3)迭代优化 : - 使用基线模型在你的私有评测集上运行,评估其召回的准确率和相关性。 - 如果效果不理想,可以尝试更换模型,或者调整 RAG 流程的其他环节(如文本分块策略)。 - 通过几轮的对比测试和迭代优化,最终选出在你的特定场景下表现最佳的那个“心仪”模型。
Lewis et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks ↩
RoBERTa: A Modified BERT Model for NLP
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。