核心要点

  • 能讲清训练目标:用对比学习(contrastive)优化,让语义相近的文本对在向量空间靠近、不相关的推远,常以余弦相似度衡量

  • 能说清架构差异:Embedding 模型多为编码器(双向),把整段文本经 mean pooling 等压成一个定长向量;生成式 LLM自回归解码器,逐 token 预测

  • 能讲清输出差异:前者输出一个语义向量用于检索/聚类/相似度;后者输出文本

  • 能给出应用:RAG 检索、语义搜索、去重、聚类、推荐——靠向量近邻召回

标准回答

Embedding 模型怎么训练

目标是把文本映射到一个定长向量,使语义相近的文本在向量空间中靠得近。主流做法是对比学习:构造正样本对(如问题-相关答案、同义句)和负样本(不相关文本,常用 in-batch negatives),用对比损失拉近正样本、推远负样本,相似度通常用余弦距离衡量。

与生成式 LLM 的不同

架构上,Embedding 模型多基于双向编码器,对整段文本编码后做 mean pooling(或取 CLS)得到一个向量,关注「整体语义表示」;生成式 LLM 是自回归解码器,带因果掩码逐 token 预测下一个词,关注「续写生成」。

训练目标上,前者是对比/相似度目标,后者是 next-token 的交叉熵。输出上,前者吐出一个向量,后者吐出文本。

用途

Embedding 是 RAG、语义搜索、聚类、去重、推荐的基础:把文档向量化后存入向量库,按近邻召回,详见 向量数据库原理RAG 检索增强生成架构指南

常见误区

⚠️ 常见踩坑

别认为可以直接拿生成式 LLM 的隐藏态当 embedding 用——未经对比训练的自回归表示在检索上往往效果一般;也别混淆「相似度」和「生成」:embedding 衡量语义接近度,不产生文本,二者目标和评测方式都不同。

追问

追问 1为什么 embedding 相似度常用余弦而不是欧氏距离?

余弦相似度只看向量方向、忽略模长,对文本长度和向量尺度更鲁棒,契合「语义方向一致即相似」的直觉,也与对比学习中常用的归一化训练目标一致。许多模型在训练和检索时都会对向量做 L2 归一化,此时余弦与内积等价。

追问 2in-batch negatives 是什么?为什么有效?

训练时把同一个 batch 内其他样本的正例当作当前样本的负例,无需额外采负样本即可获得大量负例。batch 越大、负例越多,对比信号越强,能高效地把不相关文本推远,是训练高质量 embedding 的常用技巧。

追问 3如何评估一个 embedding 模型的好坏?

常用检索/相似度类基准(如 MTEB 综合评测),看检索召回、重排、聚类、语义相似度等多任务表现。实务中还要结合具体业务的召回率与下游 RAG 效果,并关注向量维度、推理速度与多语言覆盖。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。