Embedding原理、方法以及Embedding大模型的选择
Embedding是大模型的核心技术,将文本等非结构化数据转换为低维稠密向量,使计算机能理解语义关联。传统方法(如TF-IDF)存在维度高、稀疏等问题,而现代方法(如Word2Vec)能捕捉语义关系。大模型Embedding通过MTEB榜单评估性能,不同模型各有优势。选择embedding模型需考虑业务场景、评估指标和测试数据,综合性能、推理速度和成本做出决策。
什么是Embedding(嵌入)
在大模型的技术体系中,embedding(嵌入) 是一个核心基础概念,简单说就是将非结构化信息(如文本、图像、音频等)映射成计算机可理解的低维稠密向量的过程 。(向量化)
因为计算机天然只能处理数字,而大模型的输入(文本、图像等)都是非结构化信息。比如文本里的 “猫”“狗”,人能理解它们都是动物,但计算机无法直接 “读懂” 这种语义关联。
embedding的作用就是搭建 “语义 - 数字” 的桥梁:把 “猫”“狗”“桌子” 这些信息转换成一串数字(比如一个 1024 维的向量),并且让 “语义越相近的信息,对应的向量距离越近”。比如 “猫” 的向量和 “狗” 的向量之间的距离,会比 “猫” 和 “桌子” 的向量距离近得多 —— 这样计算机就能通过计算向量距离,间接 “感知” 语义关联了。
Embedding方法
传统提取特征方法
-
One-hot / Bag of Words:最早期的做法,只考虑词出现与否或词频。(一元)
-
N-Gram:提取连续 N 个词或字作为特征。
-
TF-IDF:词频和逆向文档频率,衡量词的重要性。TF:一个单词的重要性和它在文档中出现的次数呈正比。IDF: 一个单词在文档中的区分度。这个单词出现的文档数越少,区分度越大,IDF越大。
特点:简单直观,但是计算量大,维度高,稀疏(很多0),不考虑语义。
词向量方法 Word Embedding
降维方式,将不同特征转换为维度相同的向量。用一组向量来表示词语。
-
Word2Vec(Skip-gram中心词预测上下文 / CBOW上下文预测中心词):Google提出的,通过上下文预测词,得到低维稠密词向量。主要通过训练一个3层的神经网络MLP,学习隐藏层的权重矩阵。具体实现可以采用python中已经封装好的gensim模块。
特点:能捕捉到词的语义关系(比如 king - man + woman ≈ queen),但只能表示“词”,对长文本(句子/段落/文档)需要平均或拼接。没有考虑同义词,窗口长度有限,没有全局文本信息。
大模型 Embedding
Embedding模型将文本等离散数据转换为低维、稠密的向量,捕捉其语义信息。
通常embedding模型会把它经过编码层(transformer层),在某个隐藏层 / 专门的投影层上,取出一个 固定维度的向量(比如 1024维),作为这个输入的 embedding。这个 embedding 已经编码了语义信息,因此语义相似的文本会对应到向量空间里相近的位置。
对于embedding模型的性能,可以参考MTEB (Massive Text Embedding Benchmark)榜单。这是一个全面的评测基准,它涵盖了分类、聚类、检索、排序等8 大类任务和58个数据集。https://huggingface.co/spaces/mteb/leaderboard
通过MTEB榜单,可以清晰地看到不同模型(如BGE系列, GTE, Jina 等)在不同任务类型上的性能表现。 比如某些模型在检索任务上表现优异,而另一些则可能在聚类或分类任务上更具优势。这有助于我们根据具体应用场景,做出初步的模型筛选。
维度的影响
向量维度直接影响模型的表达能力、计算开销和内存占用。
-
高维度(如1024, 4096): 编码更丰富、语义更细致,适用于需要深度语义理解的复杂场景,如大规模、多样化的信息检索,或者细粒度的文本分类。但计算成本更高,所需存储空间更大。
-
低维度(如256, 512): 计算速度快,内存占用小,更适合计算资源有限,或实时性要求高的场景,比如移动端。
介绍Jina Embedding
Jina-embeddings训练时使用了一种特殊技术(Matryoshka Representation Learning, MRL)=> 俄罗斯套娃,生成完整向量。
模型总是先在内部生成一个最完整、维度最高(比如2048维)的向量。 按需截断:这个长向量有一个非常神奇的特性,它的前128维、前256维、前512维……本身就是一组高质量的、 独立的、可以正常使用的短向量。
动态调整维度是Jina-embedding模型赋予开发者的一个强大选项,可以根据不同的场景来选择。
单语言模型/多语言模型
-
单语言模型: 如BGE-large-zh,专门针对单一语言(如中文)进行训练。对于特定语言任务上,理解可以更深入,性能更优越。
-
多语言模型: 如m3e-base 或multilingual-e5-large。能够处理多种语言的文本,并映射到统一的语义空间中。
如何选择适合的Embedding模型?
模型选型是一个系统的过程,不能仅依赖于公开榜单MTEB。
包括以下关键步骤:
-
明确业务场景与评估指标: 首先定义核心任务是检索、分类还是聚类?并确定衡量业务成功的关键指标,如搜索召回率(Recall@K)、准确率(Accuracy) 或NDCG。
-
构建“黄金”测试集: 准备一套能真实反映您业务场景和数据分布的高质量小规模测试集。 比如,构建一系列“问题-标准答案”对=> 评估模型好坏的“金标准”。
-
小范围对比测试(Benchmark):从MTEB榜单中挑选几款排名靠前且符合需求(如语言、维度)的候选模型。 使用“黄金”测试集,对这些模型进行评测。
Embedding模型的选择属于综合评估,即结合测试结果、模型的推理速度、部署成本=> 做出最终决策。
更多推荐
所有评论(0)