Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >M3E 可能是最强大的开源中文嵌入模型

M3E 可能是最强大的开源中文嵌入模型

作者头像
技术人生黄勇
发布于 2024-07-19 10:26:47
发布于 2024-07-19 10:26:47
2.3K02
代码可运行
举报
文章被收录于专栏:技术人生黄勇技术人生黄勇
运行总次数:2
代码可运行

介绍m3e开源中文嵌入模型,在中文的表现上,超过ChatGPT

01

最近在研究和部署使用 LangChain + LLM(ChatGPT/ChatGLM) 构建企业专有知识库时,接触到两个 embedding (嵌入)模型:text2vec,m3e-base。‍‍‍‍

感兴趣模型和项目的部署和教程可以看这几篇文章:‍

教程|使用免费GPU 资源搭建专属知识库 ChatGLM2-6B + LangChain

工程落地实践|基于 ChatGLM2-6B + LangChain 搭建专属知识库初步完成

工程落地实践|国产大模型 ChatGLM2-6B 阿里云上部署成功

例如配置文件中这段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
embedding_model_dict = {
    "text2vec-base": "shibing624/text2vec-base-chinese",
    "text2vec": "/home/featurize/data/text2vec-large-chinese", # 修改处
    "m3e-small": "moka-ai/m3e-small",
    "m3e-base": "moka-ai/m3e-base",
}

为什么要用到 embedding?

计算机只能处理数字,但我们希望它能够理解文字、图片或其他形式的数据。这就是embedding的作用。它将这些复杂的数据转换成数字表示,就像给它们贴上了标签一样。这些数字表示不仅保留了原始数据的重要信息,还能在计算机世界中更容易被处理和比较。

嵌入有点像字典,可以把不同的词、图片或对象转换成独特的数字编码。这样,我们就能用这些数字来进行计算、分类或做出预测。通过embedding,计算机可以变得更智能,因为它学会了如何用数字来理解和处理各种各样的数据。

例如,我们可以用一个三百维的数字向量(x1,x2,x3…x300)来表示一个词,这里每一个数字就是这个词在一个意义上的坐标。

举例来说,我们表述“猫”这个词,可以是(1,0.8,-2,0,1.5…)。

“狗”可以表示为(0.5,1.1,-1.8,0.4,2.2…)。

然后,我们可以通过这些数字的距离计算“猫”和“狗”的语义关系有多近。因为它们在某些数字上会更接近。

而与“桌子”的向量距离就会更远一些。

通过这种方法,embedding让词汇有了数学上的表示,计算机可以分析词汇间的关系了。

为什么把这个概念叫做 embedding (嵌入)呢?‍‍‍‍‍‍‍

嵌入的概念来源于拓扑学中,嵌入是在同胚基础上定义的,f把X映射到Z,若f是一个同胚且Z是Y的子空间。f称为一个X到Y的嵌入。

正如字面含义,嵌入强调的是X与Y的一部分结构相同.

若用神经网络把输入映射到更低维度的空间,实质强调的就是映射而已。

拓扑空间是指一个集合和在这个集合上定义的一组特定的开集构成的结构。而同胚关系是指两个拓扑空间之间存在一个双射(即一一对应),并且这个双射以及它的逆映射都是连续的。

换句话说,如果存在两个拓扑空间A和B,它们之间存在一个双射f:A → B,并且这个映射f以及它的逆映射f^{-1}:B → A都是连续的,那么我们就称A和B是同胚的。这种同胚关系意味着A和B在拓扑学的角度上是完全相同的,它们具有相同的拓扑性质和结构。

02

标题2

M3E Models :Moka(北京希瑞亚斯科技)开源的系列文本嵌入模型

模型地址:

https://huggingface.co/moka-ai/m3e-base

M3E Models 是使用千万级 (2200w+) 的中文句对数据集进行训练的 Embedding 模型,在文本分类和文本检索的任务上都超越了 openai-ada-002 模型(ChatGPT 官方的模型)

M3E的数据集,模型,训练脚本,评测框架都开源。

M3E 是 Moka Massive Mixed Embedding 的缩写

  • Moka,此模型由 MokaAI 训练,开源和评测,训练脚本使用 uniem ,评测 BenchMark 使用 MTEB-zh
  • Massive,此模型通过千万级 (2200w+) 的中文句对数据集进行训练
  • Mixed,此模型支持中英双语的同质文本相似度计算,异质文本检索等功能,未来还会支持代码检索
  • Embedding,此模型是文本嵌入模型,可以将自然语言转换成稠密的向量

模型对比‍‍‍‍

说明:

  • s2s, 即 sentence to sentence ,代表了同质文本之间的嵌入能力,适用任务:文本相似度,重复问题检测,文本分类等
  • s2p, 即 sentence to passage ,代表了异质文本之间的嵌入能力,适用任务:文本检索,GPT 记忆模块等
  • s2c, 即 sentence to code ,代表了自然语言和程序语言之间的嵌入能力,适用任务:代码检索
  • 兼容性,代表了模型在开源社区中各种项目被支持的程度,由于 m3e 和 text2vec 都可以直接通过 sentence-transformers 直接使用,所以和 openai 在社区的支持度上相当
  • ACC & ndcg@10,使用 MTEB 框架评测中文 Embedding 模型的 BenchMark,包含文本分类,文本重排,以及文本检索等任务。

Tips:

  • 使用场景主要是中文,少量英文的情况,建议使用 m3e 系列的模型
  • 多语言使用场景,建议使用 openai-ada-002
  • 代码检索场景,推荐使用 ada-002
  • 文本检索场景,请使用具备文本检索能力的模型,只在 S2S 上训练的文本嵌入模型,没有办法完成文本检索任务

特性

  • 中文训练集,M3E 在大规模句对数据集上的训练,包含中文百科,金融,医疗,法律,新闻,学术等多个领域共计 2200W 句对样本,数据集详见 M3E 数据集
  • 英文训练集,M3E 使用 MEDI 145W 英文三元组数据集进行训练,数据集详见 MEDI 数据集,此数据集由 instructor team 提供
  • 指令数据集,M3E 使用了 300W + 的指令微调数据集,这使得 M3E 对文本编码的时候可以遵从指令,这部分的工作主要被启发于 instructor-embedding
  • 基础模型,M3E 使用 hfl 实验室的 Roberta 系列模型进行训练,目前提供 small 和 base 两个版本,可以按需选用
  • ALL IN ONE,M3E 旨在提供一个 ALL IN ONE 的文本嵌入模型,不仅支持同质句子相似度判断,还支持异质文本检索,你只需要一个模型就可以覆盖全部的应用场景,未来还会支持代码检索

文本分类

  • 数据集选择,选择开源在 HuggingFace 上的 6 种文本分类数据集,包括新闻、电商评论、股票评论、长文本等
  • 评测方式,使用 MTEB 的方式进行评测,报告 Accuracy。

检索排序

T2Ranking 1W

  • 数据集选择,使用 T2Ranking 数据集,由于 T2Ranking 的数据集太大,openai 评测起来的时间成本和 api 费用有些高,所以我们只选择了 T2Ranking 中的前 10000 篇文章
  • 评测方式,使用 MTEB 的方式进行评测,报告 map@1, map@10, mrr@1, mrr@10, ndcg@1, ndcg@10
  • 注意!从实验结果和训练方式来看,除了 M3E 模型和 openai 模型外,其余模型都没有做检索任务的训练,所以结果仅供参考。

T2Ranking

  • 数据集选择,使用 T2Ranking,刨除 openai-ada-002 模型后,我们对剩余的三个模型,进行 T2Ranking 10W 和 T2Ranking 50W 的评测。(T2Ranking 评测太耗内存了... 128G 都不行) ‍
  • 评测方式,使用 MTEB 的方式进行评测,报告 ndcg@10

阅读推荐:

ChatGPT开发实战|实现英文字幕翻译为中文双语的小工具

为什么你在用 ChatGPT 的提示词 Prompt 似乎效果不如人意?

Claude 2 解读 ChatGPT 4 的技术秘密:细节:参数数量、架构、基础设施、训练数据集、成本

ChatGPT 如何用?12个场景的 Prompts &万能话术模板 & 四个提问技巧

为什么对ChatGPT、ChatGLM这样的大语言模型说“你是某某领域专家”,它的回答会有效得多?(二)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术人生黄勇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
玩转RAG应用:如何选对Embedding模型?
在打造检索增强生成(RAG)应用时,选择合适的Embedding模型就像挑选合适的工具,直接影响到应用的表现和效果。​那么,面对众多的模型,我们该如何轻松找到最适合的那一款呢?​
致Great
2025/03/19
1.7K0
玩转RAG应用:如何选对Embedding模型?
LangChain + ChatGLM2-6B 搭建个人专属知识库
之前教过大家利用 langchain + ChatGLM-6B 实现个人专属知识库,非常简单易上手。最近,智谱 AI 研发团队又推出了 ChatGLM 系列的新模型 ChatGLM2-6B,是开源中英双语对话模型 ChatGLM-6B 的第二代版本,性能更强悍。
程序员树先生
2023/07/14
6.1K6
LangChain + ChatGLM2-6B 搭建个人专属知识库
开源Embedding模型,有效提升中文语义理解与召回
此前,我们已经简单介绍了TextIn团队开发的开源acge_text_embedding模型及其下载和使用方法。本篇将展开讨论Embedding模型中使用的技术框架。
合合技术团队
2024/10/30
3270
开源Embedding模型,有效提升中文语义理解与召回
Prompt提示工程上手指南:基础原理及实践(四)-检索增强生成(RAG)策略下的Prompt
此篇文章已经是本系列的第四篇文章,意味着我们已经进入了Prompt工程的深水区,掌握的知识和技术都在不断提高,对于Prompt的技巧策略也不能只局限于局部运用而要适应LLM大模型的整体框架去进行改进休整。较为主流的LLM模型框架设计可以基于链式思考(CoT)、思维树 (ToT)和检索增强生成 (RAG)。其中RAG框架可以算得上是AI平台研发的老生常谈之一了,因为无论是个人还是企业,都想要培养出一个属于自己领域专业的AI。但伴随而来的问题,不限于产生幻觉、缺乏对生成文本的可解释性、专业领域知识理解差,以及对最新知识的了解有限。
fanstuck
2024/02/28
2.3K3
Prompt提示工程上手指南:基础原理及实践(四)-检索增强生成(RAG)策略下的Prompt
BGE M3-Embedding 模型介绍
BGE M3-Embedding来自BAAI和中国科学技术大学,是BAAI开源的模型。相关论文在https://arxiv.org/abs/2402.03216,论文提出了一种新的embedding模型,称为M3-Embedding,它在多语言性(Multi-Linguality)、多功能性(Multi-Functionality)和多粒度性(Multi-Granularity)方面表现出色。M3-Embedding支持超过100种工作语言,支持8192长度的输入文本,同时支持密集检索(Dense Retrieval)、多向量检索(Multi-Vector Retrieval)和稀疏检索(Sparse Retrieval),为现实世界中的信息检索(IR)应用提供了统一的模型基础,通过这几种检索方式的组合,取得了良好的混合召回效果。
JadePeng
2024/04/19
11.3K0
BGE M3-Embedding 模型介绍
ChatGLM实战:基于LangChain构建自己的私有知识库
在之前的 ChatGLM 微调训练的实验中,由于数据量较小,调试效果并不理想。同时,数据需要符合 Prompt 的 jsonl 格式,而短时间内整理出合适的项目训练数据并不容易。然而,在社区中了解到了langchain基于本地知识库的问答功能,这或许我也可以自己搭建一个本地知识库,直接导入本地文件,从而实现本地知识库的问答功能。这样,我只需导入一部小说,就能让系统理解小说内容,并回答相关问题。
MavenTalker
2023/09/06
6.6K3
ChatGLM实战:基于LangChain构建自己的私有知识库
介绍 Elastic Rerank:Elastic 的新语义重排模型
在我们系列的上一篇博客中,我们介绍了语义重排序的概念。在这篇博客中,我们将讨论我们训练并在技术预览中发布的重排序模型。
点火三周
2024/12/13
3770
介绍 Elastic Rerank:Elastic 的新语义重排模型
谷歌提出多语言BERT模型:可为109种语言生成与语言无关的跨语言句子嵌入
近日,谷歌AI研究人员提出了一种称为LaBSE的多语言BERT嵌入模型,该模型可为109种语言生成与语言无关的跨语言句子嵌入。
新智元
2020/08/28
2.7K0
谷歌提出多语言BERT模型:可为109种语言生成与语言无关的跨语言句子嵌入
如何选择合适的 Embedding 模型?
RAG 通常会用到三种不的AI模型,即 Embedding 模型、Rerankear模型以及大语言模型。本文将介绍如何根据您的数据类型以及语言或特定领域(如法律)选择合适的 Embedding 模型。
Zilliz RDS
2024/06/27
2.1K0
如何选择合适的 Embedding 模型?
再见嵌入模型?META提出GEM,用一个大模型搞定生成与理解
在当下诸如 RAG 等应用系统中,“生成”与“理解”常由两个不同模型完成。一个用于文本生成的解码式语言模型(如 GPT),另一个用于语义匹配的嵌入模型(如 OpenAI Embedding、BGE 等)。虽然这种组合取得了不错的效果,但也带来了一些长期痛点:
AgenticAI
2025/06/12
1050
再见嵌入模型?META提出GEM,用一个大模型搞定生成与理解
从零开始了解语义搜索中的嵌入模型
正如大多数矢量搜索供应商所宣传的那样,语义搜索系统的基本设计有两个简单的(这很讽刺) 步骤:
点火三周
2023/08/25
4K0
从零开始了解语义搜索中的嵌入模型
本地化部署文本嵌入向量模型(AI知识库中间最重要一环)的爬坑过程
前言:嵌入向量模型排行榜,可以在这个网站上进行查看。可以手动选择不同的模型进行横向对比:
Wesky
2025/04/04
3670
本地化部署文本嵌入向量模型(AI知识库中间最重要一环)的爬坑过程
文本向量化模型新突破——acge_text_embedding勇夺C-MTEB榜首
在人工智能的浪潮中,以GPT4、Claude3、Llama 3等大型语言模型(LLM)无疑是最引人注目的潮头。这些模型通过在海量数据上的预训练,学习到了丰富的语言知识和模式,展现了出惊人的能力。在支撑这些大型语言模型应用落地方面,文本向量化模型(Embedding Model)的重要性也不言而喻。
中杯可乐多加冰
2024/04/23
3.1K0
搜索引擎RAG召回效果评测MTEB介绍与使用入门
RAG 评测数据集建设尚处于初期阶段,缺乏针对特定领域和场景的专业数据集。市面上常见的 MS-Marco 和 BEIR 数据集覆盖范围有限,且在实际使用场景中效果可能与评测表现不符。目前最权威的检索榜单是 HuggingFace MTEB,今天我们来学习使用MTEB,并来评测自研模型recall效果。
JadePeng
2024/02/27
9770
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的检索增强生成(RAG)大模型知识库项目。
汀丶人工智能
2024/05/07
1.7K0
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
击败OpenAI,权重、数据、代码全开源,能完美复现的嵌入模型Nomic Embed来了
一周前,OpenAI 给广大用户发放福利,在下场修复 GPT-4 变懒的问题后,还顺道上新了 5 个新模型,其中就包括更小且高效的 text-embedding-3-small 嵌入模型。
机器之心
2024/02/06
2.8K0
击败OpenAI,权重、数据、代码全开源,能完美复现的嵌入模型Nomic Embed来了
如何高效提升大模型的RAG效果?多种实用策略一次掌握
持续提升RAG(检索增强生成,Retrieval-Augmented Generation)的效果是当前许多企业应用大模型时非常关注的一个关键问题。虽然RAG看起来简单,但真正要做到效果持续提升,还真不是一件容易的事。咱们今天就用更轻松的语言,结合实际案例,聊聊如何通过多种策略持续增强RAG能力,帮助你在实际落地项目中游刃有余。
fanstuck
2025/03/13
3952
如何高效提升大模型的RAG效果?多种实用策略一次掌握
拿下SOTA!最强中文Embedding模型对标OpenAI,技术路线公开
商汤「日日新 5.0」在中文大模型测评基准SuperCLUE中,成为首个超越GPT-4 Turbo的国产大模型;在OpenCompass的基准表现中,客观评测超过GPT-4 Turbo,主观评测已超过GPT-4o位列第一。
新智元
2024/06/17
6460
拿下SOTA!最强中文Embedding模型对标OpenAI,技术路线公开
教程|使用免费GPU 资源搭建专属知识库 ChatGLM2-6B + LangChain
“ 搭建私人定制化AI知识库!详解如何使用云计算资源,部署ChatGLM和LangChain模型,打造专属智能问答工具。”
技术人生黄勇
2024/07/19
3120
教程|使用免费GPU 资源搭建专属知识库 ChatGLM2-6B + LangChain
LLM资料大全:文本多模态大模型、垂直领域微调模型、STF数据集、训练微调部署框架、提示词工程等
自ChatGPT为代表的大语言模型(Large Language Model, LLM)出现以后,由于其惊人的类通用人工智能(AGI)的能力,掀起了新一轮自然语言处理领域的研究和应用的浪潮。尤其是以ChatGLM、LLaMA等平民玩家都能跑起来的较小规模的LLM开源之后,业界涌现了非常多基于LLM的二次微调或应用的案例。本项目旨在收集和梳理中文LLM相关的开源模型、应用、数据集及教程等资料,目前收录的资源已达100+个!
汀丶人工智能
2024/04/29
3.2K0
LLM资料大全:文本多模态大模型、垂直领域微调模型、STF数据集、训练微调部署框架、提示词工程等
推荐阅读
玩转RAG应用:如何选对Embedding模型?
1.7K0
LangChain + ChatGLM2-6B 搭建个人专属知识库
6.1K6
开源Embedding模型,有效提升中文语义理解与召回
3270
Prompt提示工程上手指南:基础原理及实践(四)-检索增强生成(RAG)策略下的Prompt
2.3K3
BGE M3-Embedding 模型介绍
11.3K0
ChatGLM实战:基于LangChain构建自己的私有知识库
6.6K3
介绍 Elastic Rerank:Elastic 的新语义重排模型
3770
谷歌提出多语言BERT模型:可为109种语言生成与语言无关的跨语言句子嵌入
2.7K0
如何选择合适的 Embedding 模型?
2.1K0
再见嵌入模型?META提出GEM,用一个大模型搞定生成与理解
1050
从零开始了解语义搜索中的嵌入模型
4K0
本地化部署文本嵌入向量模型(AI知识库中间最重要一环)的爬坑过程
3670
文本向量化模型新突破——acge_text_embedding勇夺C-MTEB榜首
3.1K0
搜索引擎RAG召回效果评测MTEB介绍与使用入门
9770
基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)
1.7K0
击败OpenAI,权重、数据、代码全开源,能完美复现的嵌入模型Nomic Embed来了
2.8K0
如何高效提升大模型的RAG效果?多种实用策略一次掌握
3952
拿下SOTA!最强中文Embedding模型对标OpenAI,技术路线公开
6460
教程|使用免费GPU 资源搭建专属知识库 ChatGLM2-6B + LangChain
3120
LLM资料大全:文本多模态大模型、垂直领域微调模型、STF数据集、训练微调部署框架、提示词工程等
3.2K0
相关推荐
玩转RAG应用:如何选对Embedding模型?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验