|
1.引言 在RAG系统中,常见的两种优化方式包括: - 混合检索(Hybrid Retrieval):结合 dense embedding 和 sparse embedding 的检索方式;
- 两阶段排序(Two-Stage Ranking):先通过 embedding 模型进行初步召回(粗排),再通过 rerank 模型进行精排。
这引出两个关键问题: - Dense Embedding 与 Sparse Embedding 有何本质区别?它们各自适用于哪些检索场景?
- Embedding 模型与 Rerank 模型在结构和能力上有何不同?各自适合用于系统的哪一阶段?
最近,qwen3-embedding模型发布后,备受关注,那llm-emb和上面独立-emb又有什么不同呢? 2.Dense-Embedding 与Sparse-EmbeddingSparse-Embedding:基于词频统计的关键词匹配(代表算法如BM25和TF-IDF),利用词频(TF)和逆文档频率(IDF)计算词的重要性。最终文本被表示为高维稀疏向量,非零元素对应出现的词项。 适用场景:关键词的精确匹配 Dense-Embedding: 基于深度学习模型(如BERT)将文本编码为低维稠密向量,捕捉语义信息。通过余弦、L2等向量的相似度计算获取相关向量的重要性。最终文本被表示为低维稀疏向量。 适用场景:识别同义词和语义相近的表达 3.Embedding 与 Rerank Embedding-model和Rerank-model分别采用了两种模型架构:Bi-Encoders 和Cross-Encoder。 | | | | | 交叉编码器:单编码器处理拼接文本,cls标记生成最终结果 | | | 查询和文档拼接后输入交叉编码器进行联合编码,直接输出相似度分数 | | | | | | | | | | | 损失函数:对比损失(InfoNCE)、三元组损失。训练目标:拉近正样本对的向量距离,推远负样本对。数据增强:依赖负采样策略(如困难负样本挖掘) | 损失函数:交叉熵(分类任务)、均方误差(回归任务)。训练目标:直接预测相似度分数或类别标签。输入格式:拼接文本 |

4.llm-Embedding 与 Embedding-model llm-embedding:其训练是和所有的transformer block一起训练的,最终的优化目标是为了提高下一个token的准确率,其输出的向量内含“上下文理解”和“未来指向性”的信息浓度,这是embedding模型所不具备的。 Embedding模型:采用对比学习进行训练,文本对,存在正负样本。损失函数:在向量空间中,拉近正例对的向量距离,推远负例对的向量距离。生成的向量在衡量句子间“意思是否相近”这个问题上表现得极其出色,是专门为语义搜索、聚类、RAG(检索增强生成)等任务量身定做的。 qwen3-emb采用decoder-only架构实现,其具备instruct能力,通过给到适当的prompt 去“调节任务逻辑”,让同一个模型能适配不同类型的召回或匹配任务。(兴奋兴奋) 举例:"岗位召回简历的匹配场景" 在emb时添加指令"Given a resume and a job description, determine whether the candidate strictly meets the job requirements"即可切换该场景
|