在人工智能的浪潮中,以 GPT4、Claude3、Llama 3 等大型语言模型(LLM)无疑是最引人注目的潮头。这些模型通过在海量数据上的预训练,学习到了丰富的语言知识和模式,展现了惊人的能力。在支撑这些大型语言模型应用落地方面,文本向量化模型(Embedding Model)的重要性也不言而喻。
近期,国产自研文本向量化模型 acge_text_embedding(以下简称'acge 模型')已经在业界权威的中文语义向量评测基准 C-MTEB(Chinese Massive Text Embedding Benchmark)中获得了第一名。本文将围绕以下问题,为大家带来 acge_text_embedding 模型解读以及应用思考:
- 文本向量化 acge 模型是什么?原理是什么?
- acge 模型能达到什么样的效果,取得了什么样的成绩?
- 文本向量化模型的突破与检索增强生成 RAG 的联系?
一、文本向量化模型新突破——acge 模型
1.1、文本向量化模型概述
文本向量化模型是自然语言处理(NLP)中的一项核心技术,它可以将单词、句子或图像特征等高维的离散数据转换为低维的连续向量,从而将文本数据转换为计算机能够处理的数值型向量形式。文本向量化模型通过将文本信息表示成能够表达文本语义的向量,使得机器能够理解人类语言的内在含义。
当文本信息被转换为向量形式后,输出的结果能够进一步地为多种后续任务提供有力支持,如:
- 搜索:向量化使得搜索引擎能够根据查询字符串和文档之间的向量相似性来排名搜索结果,排名靠前的结果通常与查询字符串最相关。
- 聚类:在文本聚类任务中,向量化可以被用来度量文本之间的相似性,从而将文本分组成不同的类别或簇。
- 推荐:向量化可帮助构建用户和项目的表示特征,使得推荐系统可以根据用户历史行为或偏好,计算用户向量与项目向量之间的相似度,从而向用户推荐具有相关性的项目。
- 异常检测:在异常检测任务中,向量化可用于将文本数据映射到一个向量空间中,并通过度量文本向量与正常数据之间的距离或相似性来识别与正常行为不同的异常值。
- 多样性测量:通过向量化,可以分析文本数据在向量空间中的分布情况,从而评估文本数据的多样性。
- 分类:向量化能够将文本数据转换为数值型向量表示,从而使得分类算法可以根据文本向量与不同类别之间的相似性来将文本数据分类到最相似的标签或类别中。
而 acge 模型则是文本向量化模型的一种创新实现。
1.2、acge 模型简述
在主体框架上,acge_text_embedding 模型主要运用了俄罗斯套娃表征学习(Matryoshka Representation Learning,以下简称 MRL)这一灵活的表示学习框架。
类似于俄罗斯套娃结构,MRL 产生的嵌入向量也是一个嵌套结构,其旨在创建一个嵌套的、多粒度的表示向量,每个较小的向量都是较大向量的一部分,并且可以独立用于不同的任务。在训练时,MRL 根据指定维度 [64, 128, ..., 2048, 3072] 的向量来计算多个 loss。使得用户在推理时,可以根据自己的实际需求,输入维度参数,来得到指定维度的向量。
MRL 的优化问题可以表示为:
$$ \min_{{W(m)}{m \in M}, \theta_F} \frac{1}{N} \sum{i \in [N]} \sum_{m \in M} c_m \cdot L(W(m) \cdot F(x_i; \theta_F)_{1:m}; y_i) $$
其中,$L: \mathbb{R}^{L \times [L]} \rightarrow \mathbb{R}^+$ 是多类 softmax 交叉熵损失函数,而 $F(\cdot; \theta_F): X \rightarrow \mathbb{R}^d$ 是由参数 $\theta_F$ 参数化的深度神经网络,$N$ 是数据点的数量,$L$ 是类别的数量。
这种方法的核心思想是学习不同粒度的信息,允许一个嵌入向量在保持准确性和丰富性的同时,适应不同计算资源的需求,并可以无缝地适应大多数表示学习框架,并且可以扩展到多种标准计算机视觉和自然语言处理任务。
运用 MRL 技术,实现一次训练,获取不同维度的表征,acge 模型实现了从粗到细的层次化表示,从而提供了一种在推理和部署时不需要额外成本的灵活表示。另外,具体实践上,为做好不同任务的针对性学习,acge 模型使用策略学习训练方式,显著提升了检索、聚类、排序等任务上的性能;引入持续学习训练方式,克服了神经网络存在灾难性遗忘的问题,使模型训练迭代能够达到相对优秀的收敛空间。
二、acge 模型效果评估
2.1、acge 模型结果复现
下面我们对 acge 模型进行结果复现,acge 模型提供了预训练好的模型供试用与性能复现,首先安装 sentence_transformers 依赖:


