赞
踩
- 中文名:C-Pack:推进一般中文嵌入的打包资源
- 英文名:C-Pack: Packaged Resources To Advance General Chinese Embedding
- 最新版本:v4:12 May 2024
- 资源下载:https://github.com/FlagOpen/FlagEmbedding,5.7k Star
- 作者: Shitao Xiao, Zheng Liu, Peitian Zhang, Niklas Muennighoff, Defu Lian, Jian-Yun Nie
- 机构出处:北京人工智能研究院,抱抱脸,中国人民大学,中国科技大学,蒙特利尔大学,智源正文:7 页
这篇论文的核心是:通用的中文文本嵌入。
读完之后,会对中文嵌入的模型效果、模型架构、评测方法和训练数据有更直观的了解。文档风格简洁明了,行动导向。
文中介绍的 BGE 模型是 Obsidian 插件 Smart Connection 的默认嵌入模型。我使用过,效果不错,速度也很。
目标: 介绍了 C-Pack,这是一个显著推进通用中文嵌入领域的资源包。
方法: C-Pack 包括三个关键资源:C-MTEB(涵盖 6 项任务和 35 个数据集的综合基准)、C-MTP(从标记和未标记中文语料中整理的大规模文本嵌入数据集)以及 BGE(BAAI 通用嵌入:覆盖多种规模的嵌入模型家族)。
结果: 模型 BGE/C-TEM 参数少,成本低,效果好,在 C-MTEB 上比之前的所有中文文本嵌入表现高出最多 10%,并且我们的英文文本嵌入模型在 MTEB 基准上达到了最新的性能标准。
应用场景的多样性要求一个统一的嵌入模型。这个通用模型需要能够处理任何应用场景(例如,问答、语言建模、对话)中的各种用法(如检索、排序、分类)。
开发通用文本嵌入需要综合考虑多个因素,包括数据、编码器模型、训练方法和基准测试。这些因素共同驱动模型的改进。
为了全面评估中文嵌入的通用性,创建了 C-MTEB。我们进行了以下重要工作:
总共收集了 35 个与中文文本嵌入评估相关的公共数据集。评估任务分为以下 6 组:
C-MTEB 的 Python 工具已在 GitHub 上提供,可直接使用。
用于一般中文嵌入的训练。成对的文本构成了文本嵌入训练的数据基础,例如,一个问题及其答案、关于同一主题的两个文档。大多数数据来源于对大量未标记数据的整理,约有 1 亿个配对文本;另一小部分来自高质量标记数据的全面集成,即 C-MTP(标记),总计约有 100 万个配对文本。
未标记数据:从纯文本中提取丰富的语义成对结构,例如释义、标题和正文。为保证数据质量,采用复合数据清理策略优化原始数据。首先,进行一般过滤,去除非文本内容、重复内容和恶意内容。其次,通过语义过滤进一步处理数据,确保文本对在语义上相关。使用第三方模型 Text2VecChinese 对每个文本对的关系强度进行评分,并删除评分过低的数据。
标记数据来自 TRanking、DuReader、mMARCO、CMedQA-v2、multi-cpr、NLI-Zh、cmnli 和 ocnli 数据集。
考虑到规模和质量的差异,可以将 C-MTP(未标记)和 C-MTP(标记)应用于不同的训练阶段。
模型基于类似 BERT 的架构,有三种可用的刻度:大(326M 参数)、基础(102M 参数)和小型(24M 参数)。验证表明,与 BGE 中的原始模型及其他通用预训练编码器(如 BERT)的微调模型相比,微调模型在应用中表现更好。
训练过程由三个主要组成部分:
主实验是中文 Embedding 评测,结果如表 -2 所示:
BGE 在中文文本嵌入性能上显著优于现有方法。它在检索任务中表现尤为出色,其次是在 STS、配对分类和重新排名任务中。尽管模型大小和嵌入维度的增加会提升性能,但即使是最小的 BGE 模型,效果也相当不错。
表 3 和表 4 分别展示了消融实验以证明训练步骤的有效性以及不同批量大小(batch size)的影响。表 5 则是英文排行榜,这里不再展示图片。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。