M3E 开源中文 Embedding 模型新 SOTA开源项目

我要开发同款
匿名用户2023年06月14日
131阅读
开发技术Python
所属分类LLM(大语言模型)、人工智能
授权协议未知

作品详情

M3E是MokaMassiveMixedEmbedding的缩写

Moka,此模型由MokaAI训练,开源和评测,训练脚本使用 uniem ,评测BenchMark使用 MTEB-zhMassive,此模型通过千万级 (2200w+)的中文句对数据集进行训练Mixed,此模型支持中英双语的同质文本相似度计算,异质文本检索等功能,未来还会支持代码检索Embedding,此模型是文本嵌入模型,可以将自然语言转换成稠密的向量M3Emodels使用的数据集中包括大量非商用的数据集,所以M3Emodels也是非商用的,仅供研究使用。官方在M3E数据集上标识了商用和非商用的数据集,用户可以根据自己的需求自行训练。

模型对比 参数数量维度中文英文s2ss2ps2c开源兼容性s2sAccs2pndcg@10m3e-small24M512是否是否否是优0.58340.7262m3e-base110M768是是是是否是优0.61570.8004text2vec110M768是否是否否是优0.57550.6346openai-ada-002未知1536是是是是是否优0.59560.7786说明:

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

使用场景主要是中文,少量英文的情况,建议使用m3e系列的模型多语言使用场景,并且不介意数据隐私的话,我建议使用openai-ada-002代码检索场景,推荐使用ada-002训练方案M3E使用in-batch负采样的对比学习的方式在句对数据集进行训练,为了保证in-batch负采样的效果,我们使用A10080G来最大化batch-size,并在共计2200W+的句对数据集上训练了1epoch。训练脚本使用 uniem,您可以在这里查看具体细节。

特性中文训练集,M3E在大规模句对数据集上的训练,包含中文百科,金融,医疗,法律,新闻,学术等多个领域共计2200W句对样本,数据集详见 M3E数据集英文训练集,M3E使用MEDI145W英文三元组数据集进行训练,数据集详见 MEDI数据集,此数据集由 instructorteam 提供指令数据集,M3E使用了300W+的指令微调数据集,这使得M3E对文本编码的时候可以遵从指令,这部分的工作主要被启发于 instructor-embedding基础模型,M3E使用hfl实验室的 Roberta 系列模型进行训练,目前提供small和base两个版本,大家则需选用ALLINONE,M3E旨在提供一个ALLINONE的文本嵌入模型,不仅支持同质句子相似度判断,还支持异质文本检索,你只需要一个模型就可以覆盖全部的应用场景,未来还会支持代码检索评测评测模型,text2vec,m3e-base,m3e-small,openai-ada-002评测脚本,具体参考[MTEB-zh](https://github.com/wangyuxinwhy/uniem/blob/main/mteb-zh)
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论