从 RAG 应用中你能学到什么? (文本-Embedding)

B站影视 港台电影 2025-04-02 17:30 1

摘要:在 RAG 中前面讲解了文本切块方式,对于切块之后的语义块单元,接下来就是进行文本embedding 操作,以供下一步的文本块检索(retriever);准确的文本embedding 对下游召回任务的准确性至关重要.前面有过两篇文章介绍过文本embedding

在 RAG 中前面讲解了文本切块方式,对于切块之后的语义块单元,接下来就是进行文本embedding 操作,以供下一步的文本块检索(retriever);准确的文本embedding 对下游召回任务的准确性至关重要.前面有过两篇文章介绍过文本embedding 方法;Text Embedding 模型演进Text Embedding—Matryoshka Representation Learning今天这篇文章再做一个系统梳理;

一、Word2vec,Fasttext,Glove 时代

开启文本embedding 的开山之作,这个阶段的Word2vec 属于浅层神经网络,表达力有限,解决不了一词多义问题.这类算法在搜、推、广领域当前还在发挥着作用.

二、Bert 及相关衍生结构模型

在当前大模型普遍以Decoder 横行天下的时代,如果问Bert 是否还有一席之地?那么就是在embedding 领域;原始的Bert 基于文本掩码训练出来,主要用来做文本理解;

2.1、Sentence-Bert

后续出现基于Bert 改进,开源社区出现Sentence-Transformer; 严格来说采用Sentence-Bert ,以 Bert 为基础,输出embedding,构造有监督数据集进行微调;在共享Bert 结构基础上,具体采用对比学习(Contrastive Learning),其目的可以简单概括为:拉近相似数据,推开不相似数据,进而有效地学习数据的特征信息;

代表算法模型 (SimCSE: Simple Contrastive Learning of Sentence Embeddings)

M3E模型(Moka Massive Mixed Embedding) ——Moka 表示模型由MokaAI训练,开源和评测,训练脚本使用uniem ,评测BenchMark使用 MTEB-zh;

Massive:表示此模型通过千万级(2200w+)的中文句对数据集进行训练。

Mixed:表示此模型支持中英双语的同质文本相似度计算,异质文本检索等功能,未来还会支持代码检索, M3E 使用 Roberta 系列模型进行训练,目前提供 small 和 base 两个版本,同样使用对比学习进行训练;

总结一下,这类embedding 解决方案一般在MLLM 的Bert基础模型上,基于对比学习进行微调模型;这种方式需要构造较多的正负样本对;

2.2.bge模型 —RetroMAE

RetroMAE 算法基本思路基于自重构思路,简单来说就是mask 一部分做encoder,然后做decoder;decoder 部分分为两阶段;

RetroMAE 架构

H1,H2 表达式

(A)编码阶段:将输入进行一定比例的mask操作,并编码为句子嵌入(绿色矩形)

(B)解码阶段:对输入使用很高比例的mask操作,并与句子嵌入连接以恢复被mask的部分(阴影符号)

(C)增强解码阶段:基于每行的句子嵌入和可见上下文来重建所有输入符号;主对角线位置填充为-∞(灰色,因为其代表自身,故不可见),可见上下文的位置填充为0(蓝色)

RetroMAE 算法要求编码性能极强(mask 部分达到15%~30%),才能较好的恢复出被mask 的token,这种算法优点不受限于监督数据集,海量文本数据可以纳入训练。

基于RetroMAE 算法 智源研究院 开源了 BAAI/bge-large-zh-v1.5、BGE-M3 等模型;

BGE-M3模型训练分为三个阶段:

1.RetroMAE预训练,在105种语言的网页数据和wiki数据上进行,提供一个可以支持8192长度和面向表示任务的基座模型

2.无监督对比学习,在194种单语言和1390翻译对数据共1.1B的文本对上进行的大规模对比学习

3.多检索方式统一优化,在高质量多样化的数据上进行多功能检索优化,使模型具备多种检索能力

2.3、Matryoshka Representation Learning

2.1、2.2 讲解了两种基于Bert embedding 的思路; Matryoshka Representation Learning 是为了解决 embedding 维度问题,即可以选择输出不同维度的embedding,以满足实际场景需要;OpenAI 最新发布的text-embedding-3 内部就体现了该技术的使用;

在RAG 具体 text-embedding 模型方案选择时候,除了模型embedding性能是第一考虑;还有切块的文本长度,embedding 模型的输入窗口;embedding 模型支持的语种,是否需要支持跨语种检索、代码检索,以及embedding 输出维度等都是需要去考量的因素。

来源:AIGC-LANDING

相关推荐