网易首页 > 网易号 > 正文 申请入驻

一文通透Text Embedding模型:从text2vec、openai-text embedding到m3e、bge(上)

0
分享至

文末大模型项目开发线上营》春节开秒!

前言

而本文一开始是属于:因我司第三项目组「知识库问答项目」而起的此文《知识库问答LangChain+LLM的二次开发:商用时的典型问题及其改进方案 》中的1.2节(该1.2节初稿来自我司LLM项目团队第三项目组的bingo),但为把Text Embedding模型阐述的更为精准、全面,特把那部分的内容抽取出来,不断完善成此文

最终尽可能相比网上已有的其他资料都更细致化

01

第一部分 衡量文本向量表示效果的榜单:MTEB、C-MTEB

1.1 《MTEB: Massive Text Embedding Benchmark(海量文本嵌入基准)》

判断哪些文本嵌入模型效果较好,通常需要一个评估指标来进行比较,《MTEB: Massive Text Embedding Benchmark(海量文本嵌入基准)》就是一个海量文本嵌入模型的评估基准

  • 论文地址: https://arxiv.org/abs/2210.07316 MTEB包含8个语义向量任务,涵盖58个数据集和112种语言。通过在MTEB上对33个模型进行基准测试,建立了迄今为止最全面的文本嵌入基准。我们发现没有特定的文本嵌入方法在所有任务中都占主导地位。这表明该领域尚未集中在一个通用的文本嵌入方法上,并将其扩展到足以在所有嵌入任务上提供最先进的结果

1.2 中文海量文本embedding任务排行榜:C-MTEB

从 Chinese Massive Text Embedding Benchmark 中可以看到目前最新的针对中文海量文本embedding的各项任务的排行榜,针对不同的任务场景均有单独的排行榜。

任务榜单包括:

  • Retrieval

  • STS

  • PairClassification

  • Classification

  • Reranking

  • Clustering

目前检索任务榜单下效果最好的是bge系列的 bge-large-zh 模型,langchain-chatchat项目中默认的 m3e-base 也处于比较靠前的位置

02

第二部分 OpenAI的text-embedding模型:从ada-002到3-small/3-large

2.1 text-embedding-ada-002

2.1.1 模型简介

text-embedding-ada-002是OpenAI于2022年12月提供的一个embedding模型,但需要调用接口付费使用。其具有如下特点:

  • 统一能力:OpenAI通过将五个独立的模型(文本相似性、文本搜索-查询、文本搜索-文档、代码搜索-文本和代码搜索-代码)合并为一个新的模型 在一系列不同的文本搜索、句子相似性和代码搜索基准中,这个单一的表述比以前的嵌入模型表现得更好

  • 上下文:上下文长度为8192,使得它在处理长文档时更加方便

  • 嵌入尺寸:只有1536个维度,是davinci-001嵌入尺寸的八分之一,使新的嵌入在处理矢量数据库时更具成本效益

2.1.2 模型使用

以下是OpenAI官方文档中给出的用于文本搜索的代码实例


from openai.embeddings_utils import get_embedding, cosine_similarity

def search_reviews(df, product_description, n=3, pprint=True):embedding = get_embedding(product_description, model='text-embedding-ada-002')df['similarities'] = df.ada_embedding.apply(lambda x: cosine_similarity(x, embedding))res = df.sort_values('similarities', ascending=False).head(n)return res

res = search_reviews(df, 'delicious beans', n=3)

2.3 最新发布的text-embedding-3之small/large的缩短嵌入技术

2.3.1 OpenAI三大嵌入模型的嵌入维度对比

ada v2

text-embedding-3-small

text-embedding-3-large

Embedding size

1536

512

1536

256

1024

3072

Average MTEB score

61.0

61.6

62.3

62.0

64.1

64.6

从上图可知,text-embedding-3-small/large这两个新嵌入模型允许开发者通过在 dimensions API 参数中传递嵌入而不丢失其概念表征属性,从而缩短嵌入(即从序列末尾删除一些数字)

  1. 例如在 MTEB 基准上,text-embedding-3-large 可以缩短为 256 的大小, 同时性能仍然优于未缩短的 text-embedding-ada-002 嵌入(大小为 1536)

  2. 当然,仍然可以使用最好的嵌入模型 text-embedding-3-large 并指定 dimensions API 参数的值为 1024,使得嵌入维数从 3072 开始缩短,牺牲一些准确度以换取更小的向量大小

2.3.2 Matryoshka Representation Learning

OpenAI 所使用的「缩短嵌入」方法,随后引起了研究者们的广泛注意,最终发现,这种方法和 2022 年 5 月的一篇论文所提出的「 Matryoshka Representation Learning 」方法是相同的(MRL 的一作 Aditya Kusupati 也评论道:OpenAI 在 v3 嵌入 API 中默认使用 MRL 用于检索和 RAG!其他模型和服务应该很快就会迎头赶上)

不同于常规的fix的embedding表征,Matryoshka representation learning提出了一个方法,生成的表征是按照x下标进行重要性排序的,所以在资源受限的环境,可以只使用前面top-k维表征就可以

再比如,在ImageNet-1K上训练ResNet50,将224×224像素的图像嵌入d=2048表示向量,然后通过线性分类器在 个标签中进行预测

  1. 对于MRL,选择 作为嵌套维度 假设得到了一个带标签的数据集 ,其中 是输入点, 是所有 中 的标签

  2. MRL采用标准的经验风险最小化方法,通过使用独立的线性分类器对每个嵌套维度 进行多类分类损失优化,参数化为 之后,所有损失分别按各自的重要性 进行适当缩放后,做最终聚合MRL optimizes the multi-class classification loss for each of the nested dimension m ∈M using standard empirical risk minimization using a separatelinear classifier, parameterized by W(m) ∈RL×m .

    All the losses are aggregated after scaling withtheir relative importance (cm ≥0)m∈M respectively 尽管只对嵌套维度进行优化,MRL仍能产生精确的表示,并对介于所选表示粒度之间的维度进行插值

03

第三部分 m3e模型

3.1 m3e模型简介

M3E是Moka Massive Mixed Embedding的简称,解释一下

  • Moka,表示模型由MokaAI训练,开源和评测,训练脚本使用uniem ,评测BenchMark使用 MTEB-zh

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

  • Mixed,表示此模型支持中英双语的同质文本相似度计算,异质文本检索等功能,未来还会支持代码检索

其有多个版本,分为m3e-small、m3e-base、m3e-large,m3e GitHub地址:GitHub - wangyingdong/m3e-base,其

  • 使用in-batch负采样的对比学习的方式在句对数据集进行训练,为了保证in-batch负采样的效果,使用A100来最大化batch-size,并在共计2200W+的句对数据集(包含中文百科,金融,医疗,法律,新闻,学术等多个领域)上训练了 1 epoch

  • 使用了指令数据集,M3E 使用了300W+的指令微调数据集,这使得 M3E 对文本编码的时候可以遵从指令,这部分的工作主要被启发于 instructor-embedding

  • 基础模型,M3E 使用 Roberta 系列模型进行训练,目前提供 small 和 base 两个版本 此文《知识库问答LangChain+LLM的二次开发:商用时的典型问题及其改进方案》中的langchain-chatchat便默认用的m3e-base

3.1.1 m3e与openai text-embedding-ada-002

以下是m3e的一些重大更新

  • 2023.06.08,添加检索任务的评测结果,在 T2Ranking 1W 中文数据集上,m3e-base 在 ndcg@10 上达到了 0.8004,超过了 openai-ada-002 的 0.7786 见下图s2p ndcg@10那一列(其中s2p, 即 sentence to passage ,代表了异质文本之间的嵌入能力,适用任务:文本检索,GPT 记忆模块等)

此外,m3e团队建议

  1. 如果使用场景主要是中文,少量英文的情况,建议使用 m3e 系列的模型

  2. 多语言使用场景,并且不介意数据隐私的话,作者团队建议使用 openai text-embedding-ada-002

  3. 代码检索场景,推荐使用 openai text-embedding-ada-002

  4. 文本检索场景,请使用具备文本检索能力的模型,只在 S2S 上训练的文本嵌入模型,没有办法完成文本检索任务

3.2 m3e模型微调

微调脚本:m3e是使用uniem脚本进行微调


from datasets import load_dataset

from uniem.finetuner import FineTuner

dataset = load_dataset('shibing624/nli_zh', 'STS-B')# 指定训练的模型为 m3e-smallfinetuner = FineTuner.from_pretrained('moka-ai/m3e-small', dataset=dataset)finetuner.run(epochs=3)

详细教程暂放在「大模型项目开发线上营」中,至于本文后续更新

详细教程暂放在七月在线的「大模型项目开发线上营」中

「大模型项目开发线上营」一上线就受到了学员和各企业的青睐,报名数即将破200!

开课时间:23年11月29, 已讲前20课(都有回放),每周两到三次课,均在晚8-10点上课。

本课大纲从10月下旬起,几乎每周都在新增内容(10.11日上线时原定19次课,增加到了现在的31次课。

现在报名加送:
① 一年GPU,封装了诸如ChatGLM3等各大主流大模型
② 一个VIP年卡

↓↓↓扫码抢购↓↓↓

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
日媒:百年世界杯继续扩军可能性降低;日球迷:中国男足不参赛誓不罢休

日媒:百年世界杯继续扩军可能性降低;日球迷:中国男足不参赛誓不罢休

烟浔渺渺
2026-06-23 10:32:02
重磅2换9交易!字母哥加盟热火联手阿德巴约 雄鹿获希罗等筹码

重磅2换9交易!字母哥加盟热火联手阿德巴约 雄鹿获希罗等筹码

罗说NBA
2026-06-23 11:56:47
英国首相斯塔默含泪辞职!将接任的“北境之王”什么来头

英国首相斯塔默含泪辞职!将接任的“北境之王”什么来头

iWeekly周末画报
2026-06-23 09:06:40
项立刚:EUV光刻机,中国不仅可以做出来,还会把它搞成白菜价

项立刚:EUV光刻机,中国不仅可以做出来,还会把它搞成白菜价

混沌录
2026-06-22 17:48:16
“顺德渔村”避雨事件反转,宝妈带1岁多孩子图方便不想挪电动车

“顺德渔村”避雨事件反转,宝妈带1岁多孩子图方便不想挪电动车

九方鱼论
2026-06-23 07:02:35
火出圈!哈兰德世界杯“偷喝”对手门将水 带头划船庆祝太燃

火出圈!哈兰德世界杯“偷喝”对手门将水 带头划船庆祝太燃

醉卧浮生
2026-06-23 11:30:44
股价跌停!北大荒被追缴税款及滞纳金14亿元

股价跌停!北大荒被追缴税款及滞纳金14亿元

界面新闻
2026-06-23 10:46:24
广西北流警方通报油罐车与水泥车碰撞致3死

广西北流警方通报油罐车与水泥车碰撞致3死

界面新闻
2026-06-23 11:32:30
以色列总理内塔尼亚胡、国防部长卡茨和国防军总参谋长扎米尔联合声明

以色列总理内塔尼亚胡、国防部长卡茨和国防军总参谋长扎米尔联合声明

政知新媒体
2026-06-23 08:31:26
阿尔及利亚2比1约旦,“救赎之战”完成逆转掌握出线主动权

阿尔及利亚2比1约旦,“救赎之战”完成逆转掌握出线主动权

澎湃新闻
2026-06-23 13:02:28
因模仿老师爆火的19岁网红“钟美美”被波士顿大学录取

因模仿老师爆火的19岁网红“钟美美”被波士顿大学录取

大象新闻
2026-06-23 08:53:21
一觉醒来,美股7巨头崩了5个

一觉醒来,美股7巨头崩了5个

贩财局
2026-06-23 09:16:46
Shams:凯尔特人对字母哥的交易报价为杰伦-布朗+两个首轮签

Shams:凯尔特人对字母哥的交易报价为杰伦-布朗+两个首轮签

懂球帝
2026-06-23 12:32:08
三部门:支持外资企业参与提振消费行动

三部门:支持外资企业参与提振消费行动

证券时报
2026-06-22 14:35:50
油尽灯枯!梅西封神之战后坦言身心俱疲,身体早已不堪重负

油尽灯枯!梅西封神之战后坦言身心俱疲,身体早已不堪重负

夜白侃球
2026-06-23 11:26:16
马云携阿里高管下田插秧 全员挽裤光脚劳作 田间笑容灿烂

马云携阿里高管下田插秧 全员挽裤光脚劳作 田间笑容灿烂

快科技
2026-06-22 17:56:07
1-0!约旦队创造历史,打入世界杯首球,比赛过程把球迷看睡着了

1-0!约旦队创造历史,打入世界杯首球,比赛过程把球迷看睡着了

汪星人哟
2026-06-23 11:44:52
老板饭局上一句“我不喝自家饮料”蒸发掉20亿,东鹏特饮损失大了

老板饭局上一句“我不喝自家饮料”蒸发掉20亿,东鹏特饮损失大了

今朝牛马
2026-06-22 21:02:37
周冬雨回应“演话剧不背台词”:导演跟我说不用背台词,舞台上可以随意发挥;此前其出演话剧《文城》被指不背台词、对着剧本还读错

周冬雨回应“演话剧不背台词”:导演跟我说不用背台词,舞台上可以随意发挥;此前其出演话剧《文城》被指不背台词、对着剧本还读错

极目新闻
2026-06-23 09:41:38
安徽广德2死1伤车祸:黄毛女社交账号扒出,闺蜜发声庇护,求宽恕

安徽广德2死1伤车祸:黄毛女社交账号扒出,闺蜜发声庇护,求宽恕

李晚书
2026-06-22 18:19:19
2026-06-23 13:23:00
七月在线
七月在线
AI与智能网联汽车职教平台
837文章数 37关注度
往期回顾 全部

科技要闻

48名中国开发者联名举报苹果

头条要闻

公安局原副局长出狱后公开举报信访局长 最新进展来了

头条要闻

公安局原副局长出狱后公开举报信访局长 最新进展来了

体育要闻

哈兰德国家队52场59球 世界杯狂刷6大纪录

娱乐要闻

喜剧大师曝光肖战拍戏状态!

财经要闻

智谱万亿市值,国产Anthropic真来了?

汽车要闻

华为智驾ADS限时优惠月底结束 7月1日前下订立省3000元

态度原创

家居
教育
手机
时尚
本地

家居要闻

绿意盎然 自然之境

教育要闻

今日起,高考出分!复旦、南大、西交、东南、同济、南开、山大等校,宣布扩招

手机要闻

苹果屏幕供应链:三星LG瓜分iPhone18 Pro面板,折叠屏独锁三星

今年夏天一定要拥有的6条绝美裙子,太好看了!

本地新闻

吃一次广东龙舟饭,才懂什么是豪华盛宴

无障碍浏览 进入关怀版