当前位置: 首页 > article >正文

【论文解读】《C-Pack: Packed Resources For General Chinese Embeddings》

论文链接:https://arxiv.org/pdf/2309.07597

本论文旨在构建一套通用中文文本嵌入的完整资源包——C-Pack,解决当前中文文本嵌入研究中数据、模型、训练策略与评测基准缺失的问题。论文主要贡献体现在以下几个方面:

  • 大规模训练数据(C-MTP)
  • 统一的评测基准(C-MTEB)
  • 多尺度中文嵌入模型(BGE)
  • 完整的训练方案

下面逐节对论文内容进行详细解读。


1. 摘要

  • 资源组成
    论文介绍了 C-Pack 这一资源包,它包含三大关键资源:

    1. C-MTP:一个大规模的训练数据集,用于文本嵌入模型的学习,其中既包含从海量无标签语料中抽取的文本对,也整合了高质量标注数据;
    2. C-MTEB:一个专门为中文文本嵌入设计的评测基准,覆盖 6 种任务和 35 个数据集,能全面评估嵌入模型的各项能力;
    3. BGE:一系列预训练的中文嵌入模型,提供小型、基础和大型三个版本,用户可根据计算资源与任务需求进行选择。
  • 性能提升与扩展
    BGE 模型在 C-MTEB 上的整体表现比此前中文嵌入模型提升了超过 10%,此外,论文还同步发布了英文文本嵌入的训练数据和模型,其英文数据量甚至是中文数据的两倍。


2. 引言

  • 文本嵌入的重要性
    文本嵌入技术通过将文本映射到低维语义向量空间,成为搜索、问答、检索增强生成等多种任务的基础。随着大语言模型(LLMs)的快速发展,文本嵌入在连接外部知识库和工具模块方面扮演着至关重要的角色。

  • 通用嵌入 vs. 任务特定嵌入
    与仅针对某一任务优化的嵌入方法不同,通用文本嵌入要求模型具备足够的泛化能力,能够应对检索、排序、分类等多种应用场景。这对训练数据的规模、数据的多样性、清洗质量以及训练策略提出了更高要求。

  • 当前挑战与动因
    尽管近年来英文领域在此方向上取得了不少成果(如 Contriever、E5、GTR、OpenAI Text Embedding 等),但中文领域由于数据和基准缺失,仍面临严重制约。因此,构建适用于中文场景的通用嵌入系统尤为重要。


3. C-Pack 框架

论文的核心贡献是搭建了一个由数据、模型、评测以及训练方案构成的完整系统,下文详细介绍各个组成部分。
在这里插入图片描述

3.1 C-MTEB:中文文本嵌入评测基准

  • 数据集构成
    C-MTEB 汇集了 35 个公开数据集,并根据文本嵌入模型的能力分为 6 大任务:

    • 检索(Retrieval):
      给定查询,在大规模文档库中找出最相关文档。主要评测指标为 NDCG@10。
    • 重排序(Re-ranking):
      针对候选文档(通常包含一个正样本和多个负样本)进行排序,主要指标为 MAP(平均精度)。
    • 语义文本相似度(STS):
      测量两个句子的语义相似性,采用 Spearman 相关系数作为指标。
    • 分类(Classification):
      使用逻辑回归等方法对文本进行分类,评测指标为平均准确率。
    • 句对分类(Pair Classification):
      针对句子对之间的二元关系进行分类,同样以平均准确率为评测指标。
    • 聚类(Clustering):
      采用 mini-batch k-means 聚类方法,通过 V-measure 分数来评估聚类质量。
  • 统一评测流程
    论文中构建了标准化评测协议和自动化评测管道,使得不同嵌入模型能在统一标准下进行公平对比,并且评测结果可直接提交至 C-MTEB 排行榜。

3.2 C-MTP:大规模中文文本对训练数据

  • 数据规模与来源
    C-MTP 包含两大部分:

    • 无标签部分(C-MTP unlabeled):
      主要从开放网页(如百度百科、知乎、新闻网站等)中提取,构成 1 亿对文本对。这些文本对通过从标题-正文、问题-答案、摘要-全文等多种结构中抽取。
    • 有标签部分(C-MTP labeled):
      整合了来自 T2-Ranking、DuReader、mMARCO、NLI 等数据集,总计约 83.8 万对文本对,具备较高标注质量。
  • 数据清洗策略
    由于直接从海量数据中抽取的文本对可能存在噪声,论文采用了两步清洗:

    1. 一般过滤: 去除非文本、重复或恶意内容。
    2. 语义过滤: 利用第三方模型 Text2Vec-Chinese 对每对文本计算语义相关性分数,并设定阈值(0.43)筛除相关性不足的样本。

3.3 BGE:BAAI 通用嵌入模型

  • 模型架构与规模
    BGE 模型基于 BERT 类架构,并经过三阶段训练:

    1. 预训练;
    2. 对比学习;
    3. 任务特定微调。
      提供三种模型规模:
    • Small: 参数量 24M,适用于高吞吐量场景;
    • Base: 参数量 102M,性能与效率兼顾;
    • Large: 参数量 326M,在多个任务上表现最佳。
  • 优势
    实验表明,无论在检索、语义相似度还是分类等任务上,BGE 模型均大幅超越现有中文嵌入模型。此外,BGE 模型不仅可以直接用于下游应用,也为进一步任务特定的微调提供了坚实基础。

3.4 训练方案

训练方案分为三个阶段,每个阶段均针对提升文本嵌入的泛化能力设计。

3.4.1 预训练
  • 目标与方法
    在大规模未标注的文本数据上,使用自编码思想训练嵌入编码器。论文借鉴了 RetroMAE 的 MAE 风格预训练方法。其预训练目标如下:

    min ⁡ ∑ x ∈ X − log ⁡ D e c ( x ∣ e ( x ~ ) ) , e ( x ~ ) ← E n c ( x ~ ) \min \sum_{x \in X} -\log \mathrm{Dec}(x | e(\tilde{x})), \quad e(\tilde{x}) \leftarrow \mathrm{Enc}(\tilde{x}) minxXlogDec(xe(x~)),e(x~)Enc(x~)

    其中, X X X 表示干净文本集合, x ~ \tilde{x} x~ 为经过噪声处理的文本; E n c \mathrm{Enc} Enc D e c \mathrm{Dec} Dec 分别为编码器和解码器。

3.4.2 对比学习
  • 目的
    利用从 C-MTP 无标签数据中获得的文本对,通过对比学习提升模型的辨识能力,使得正样本对的嵌入更为接近,而与负样本的距离更远。

  • 损失函数
    对比学习采用 in-batch 负样本,损失函数形式为:

    min ⁡ ∑ ( p , q ) − log ⁡ e ⟨ e p , e q ⟩ / τ e ⟨ e p , e q ⟩ / τ + ∑ q ′ ∈ Q ′ e ⟨ e p , e q ′ ⟩ / τ \min \sum_{(p,q)} -\log \frac{e^{\langle e_p, e_q \rangle/\tau}}{e^{\langle e_p, e_q \rangle/\tau} + \sum_{q' \in Q'} e^{\langle e_p, e_{q'} \rangle/\tau}} min(p,q)logeep,eq/τ+qQeep,eq/τeep,eq/τ

    其中, ( p , q ) (p,q) (p,q) 为正样本对, q ′ q' q 表示负样本, τ \tau τ 为温度超参数, ⟨ ⋅ , ⋅ ⟩ \langle \cdot,\cdot \rangle , 表示向量内积。

  • 批次策略
    论文通过梯度检查点和跨设备嵌入共享等技术,实现了高达 19,200 的大批次规模,从而充分利用 in-batch 负样本,尤其对检索任务效果显著。

3.4.3 任务特定微调
  • 数据与目标
    使用 C-MTP 的有标签数据进行微调,以使模型在具体任务(如检索、分类、句对判断等)上获得更好的表现。

  • 策略

    1. 指令微调(Instruction-based Fine-tuning):
      为每个文本对附加一个任务指令 I t I_t It(例如“为查询搜索相关段落”),将输入由 ( p , q ) (p, q) (p,q) 转换为 q ′ = q + I t q' = q + I_t q=q+It,以帮助模型区分不同任务需求。
    2. 硬负样本采样:
      除了 in-batch 的负样本,还从任务原始语料中采样一个硬负样本,以进一步增强模型区分能力。

4. 实验与分析

论文通过大量实验验证了 C-Pack 的有效性,主要分为总体评估和详细消融分析两部分。

4.1 总体评估

在这里插入图片描述

  • 评测设置
    在 C-MTEB 基准上,论文评测了检索、STS、句对分类、分类、重排序和聚类等多个任务,并计算了各任务的平均性能作为整体指标。

  • 对比模型
    实验对比了 Text2Vec、Luotuo、M3E、多语种 E5 以及 OpenAI-Ada-002 等多种现有中文文本嵌入模型。

  • 主要发现

    • 显著超越: BGE 模型在各项任务上均取得了明显提升,特别是在检索和语义相似度任务上优势突出。
    • 模型规模效应: 随着模型规模从 Small、Base 到 Large,整体性能呈现一致上升趋势。
    • 跨语言扩展: 基于相同训练策略训练的英文嵌入模型在 MTEB 英文基准上也实现了最先进水平。

4.2 详细消融分析

在这里插入图片描述

  • 训练数据的影响

    • C-MTP (unlabeled): 单独使用无标签数据训练得到的中间模型(BGE-pretrain)在检索任务上就能明显超越其他基线模型;
    • C-MTP (labeled): 通过在 BGE-pretrain 基础上进行有标签数据微调(BGE-finetune),整体平均性能从 59.0 提升到 63.96,尤其在检索、重排序、STS 和句对分类任务上效果尤为显著。
  • 批次大小对比学习的作用
    实验表明,增大批次大小(如从 256 到 19,200)能够稳定提升模型性能,主要原因在于更多的 in-batch 负样本使得嵌入向量具有更强的判别能力,尤其适用于大规模检索任务。

  • 指令微调的效果
    消融实验显示,若去除任务指令(即不采用 instruction-based 微调),模型在多任务上的表现会有所下降,证明任务指令在帮助模型适应不同任务中的关键作用。

  • 预训练编码器的选择
    实验还验证了专门预训练的文本编码器相较于通用预训练模型(如 Chinese-RoBERTa)的优势,特别在检索性能上,专用预训练的编码器能提供更优的语义表示。


5. 结论与贡献

  • 资源开放性:
    论文公开了最大规模的中文文本嵌入训练数据、统一的评测基准以及多尺度的 BGE 嵌入模型,为研究人员和应用开发者提供了一站式解决方案。

  • 技术创新:
    通过集成预训练、对比学习和任务特定微调的全链路训练方案,BGE 模型在多项任务上取得了显著性能提升,证明了大规模数据与精心设计训练策略在提升文本嵌入泛化能力方面的有效性。

  • 应用前景:
    除了直接支持搜索、问答、聚类等应用外,BGE 模型还可以作为下游任务微调的基础,从而推动中文自然语言处理各个方向的进步。


总的来说,本论文通过构建一整套从数据到评测再到模型训练的闭环体系,显著推动了中文文本嵌入领域的发展。C-Pack 不仅为当前研究提供了重要资源,也为后续方法的改进和应用落地奠定了坚实基础。

相关文章:

【论文解读】《C-Pack: Packed Resources For General Chinese Embeddings》

论文链接:https://arxiv.org/pdf/2309.07597 本论文旨在构建一套通用中文文本嵌入的完整资源包——C-Pack,解决当前中文文本嵌入研究中数据、模型、训练策略与评测基准缺失的问题。论文主要贡献体现在以下几个方面: 大规模训练数据&#xf…...

Cramér-Rao界:参数估计精度的“理论底线”

Cramr-Rao界:参数估计精度的“理论底线” 在统计学中,当我们用数据估计一个模型的参数时,总希望估计结果尽可能精确。但精度有没有一个理论上的“底线”呢?答案是有的,这就是Cramr-Rao界(Cramr-Rao Lower …...

ClickHouse 的分区、分桶和分片详解

在大数据场景下,数据的存储和查询效率至关重要。ClickHouse 作为一款高性能的列式存储数据库,提供了多种数据组织方式来优化存储和查询,其中最常见的就是 分区(Partition)、分桶(Sampling)、分片…...

【操作系统、数学】什么是排队论?如何理解排队论?排队论有什么用处?Queueing Theory?什么是 Little’s Law?

排队论(Queueing Theory)是研究系统中排队现象的数学理论,旨在分析资源分配、服务效率及等待时间等问题。它广泛应用于计算机科学、通信网络、交通规划、工业工程等领域。 【下文会通过搜集的资料,从各方面了解排队论&#xff0c…...

2209. 用地毯覆盖后的最少白色砖块

2209. 用地毯覆盖后的最少白色砖块 题目链接&#xff1a;2209. 用地毯覆盖后的最少白色砖块 代码如下&#xff1a; class Solution { public:int minimumWhiteTiles(string floor, int numCarpets, int carpetLen) {vector<vector<int>>memo (numCarpets 1, vec…...

DeepSeek赋能大模型内容安全,网易易盾AIGC内容风控解决方案三大升级

在近两年由AI引发的生产力革命的背后&#xff0c;一场关乎数字世界秩序的攻防战正在上演&#xff1a;AI生成的深度伪造视频导致企业品牌声誉损失日均超千万&#xff0c;批量生成的侵权内容使版权纠纷量与日俱增&#xff0c;黑灰产利用AI技术持续发起欺诈攻击。 与此同时&#…...

(0)阿里云大模型ACP-考试回忆

这两天通过了阿里云大模型ACP考试&#xff0c;由于之前在网上没有找到真题&#xff0c;导致第一次考试没有过&#xff0c;后面又重新学习了一遍文档才顺利通过考试&#xff0c;这两次考试内容感觉考试题目90%内容是覆盖的&#xff0c;后面准备分享一下每一章的考题&#xff0c;…...

0.【深度学习YOLOV11项目实战-项目安装教程】(图文教程,超级详细)

目录 前言一、安装Pycharm&#xff08;安装过Pycharm的跳过这一步&#xff09;1.1 点击下述链接直接跳转到教程页面进行安装 二、安装Anaconda&#xff08;安装过Anaconda的跳过这一步&#xff09;2.1 点击下述链接直接跳转到教程页面进行安装 三、后续安装教程&#xff08;有N…...

Docker 部署 Jenkins持续集成(CI)工具

[TOC](Docker 部署 Jenkins持续集成(CI)工具) 前言 Jenkins 是一个流行的开源自动化工具&#xff0c;广泛应用于持续集成&#xff08;CI&#xff09;和持续交付&#xff08;CD&#xff09;的环境中。通过 Docker 部署 Jenkins&#xff0c;可以简化安装和配置过程&#xff0c;并…...

布署elfk-准备工作

建议申请5台机器部署elfk&#xff1a; filebeat(每台app)--> logstash(2台keepalived)--> elasticsearch(3台)--> kibana(部署es上)采集输出 处理转发 分布式存储 展示 ELK中文社区: 搜索客&#xff0c;搜索人自己的社区 官方…...

uniapp 小程序如何实现大模型流式交互?前端SSE技术完整实现解析

文章目录 一、背景概述二、核心流程图解三、代码模块详解1. UTF-8解码器&#xff08;处理二进制流&#xff09;2. 请求控制器&#xff08;核心通信模块&#xff09;3. 流式请求处理器&#xff08;分块接收&#xff09;4. 数据解析器&#xff08;处理SSE格式&#xff09;5. 回调…...

微软推出Office免费版,限制诸多,只能编辑不能保存到本地

易采游戏网2月25日独家消息&#xff1a;微软宣布推出一款免费的Office版本&#xff0c;允许用户进行基础文档编辑操作&#xff0c;但限制颇多&#xff0c;其中最引人关注的是用户无法将文件保存到本地。这一举措引发了广泛讨论&#xff0c;业界人士对其背后的商业策略和用户体验…...

《ArkTS鸿蒙应用开发入门到实战》—新手小白学习鸿蒙的推荐工具书!

《ArkTS鸿蒙应用开发入门到实战》—新手小白学习鸿蒙的推荐工具书&#xff01; 在科技日新月异的今天&#xff0c;鸿蒙操作系统&#xff08;HarmonyOS&#xff09;作为华为推出的全新操作系统&#xff0c;正迅速进入越来越多的智能设备&#xff0c;成为物联网和智能硬件领域的…...

销售成交九步思维魔方

销售成交九步思维魔方 点 一、确定需求 原则1&#xff1a;问题是需求的前身原则2&#xff1a;基于问题才做决定原则3&#xff1a;人只解决大的问题 二、塑造价值 USP 利益 快乐 痛苦 价值 线 三、销售准备 精神上的准备 体能上的准备 产品知识准备 彻底了解顾客背景 …...

橄榄球、棒球项目排名·棒球1号位

美国四大体育联盟按照规模、影响力等因素综合排名&#xff0c;通常认为是&#xff1a; 1. NFL&#xff08;国家橄榄球联盟&#xff09;&#xff1a;成立于1920年&#xff0c;是北美四大职业体育运动联盟之首&#xff0c;也是世界上最大的职业美式橄榄球联盟。由32支球队组成&am…...

DeepSeek 提示词:高效的提示词设计

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

AI硬件加速的核心:深入探讨AI加速芯片模组的设计与应用

随着人工智能应用的普及&#xff0c;传统的计算架构已无法满足大规模深度学习模型训练和推理的需求。为了加速计算过程并提高能效&#xff0c;AI加速芯片应运而生。本文将介绍AI加速芯片模组的关键技术、发展趋势以及在各类应用中的重要性。 AI加速芯片模组的定义与构成 AI加速…...

LangChain:Models、Prompts、Indexes、Memory、Chains、Agents。MaxKB

LangChain:Models、Prompts、Indexes、Memory、Chains、Agents 在LangChain框架中,Models、Prompts、Indexes、Memory、Chains、Agents是六大核心抽象概念,它们各自承担独特功能,相互协作以助力开发者基于大语言模型构建高效智能应用。 Models(模型):指代各类大语言模型…...

html中的css

css &#xff08;cascading style sheets&#xff0c;串联样式表&#xff0c;也叫层叠样式表&#xff09; css规范一般约定&#xff1a; 1.存放CSS样式文件的目录一般命名为style或css。 2.在项目初期&#xff0c;会把不同类别的样式放于不同的CSS文件&#xff0c;是为了CSS编…...

JAVA面试常见题_基础部分_Dubbo面试题(上)

Dubbo 支持哪些协议&#xff0c;每种协议的应用场景&#xff0c;优缺点&#xff1f; • dubbo&#xff1a; 单一长连接和 NIO 异步通讯&#xff0c;适合大并发小数据量的服务调用&#xff0c;以及消费者远大于提供者。传输协议 TCP&#xff0c;异步&#xff0c;Hessian 序列化…...

Binder通信协议

目录 一,整体架构 二,Binder通信协议 一,整体架构 二,Binder通信协议...

解决应用程序 0xc00000142 错误:完整修复指南

&#x1f4a5; 0xc00000142 错误出现的场景 你是不是遇到这样的情况&#xff1a; &#x1f539; 点击某个软件&#xff0c;突然弹出“应用程序无法正确启动(0xc00000142)” &#xff1f; &#x1f539; 明明安装了所有必要组件&#xff0c;软件却始终打不开&#xff1f; &…...

游戏引擎学习第125天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并为今天的内容做准备。 昨天&#xff0c;当我们离开时&#xff0c;工作队列已经完成了基本的功能。这个队列虽然简单&#xff0c;但它能够执行任务&#xff0c;并且我们已经为各种操作编写了测试。字符串也能够正常推送到队…...

[免单统计]

免单统计 真题目录: 点击去查看 E 卷 100分题型 题目描述 华为商城举办了一个促销活动,如果某顾客是某一秒内最早时刻下单的顾客(可能是多个人),则可以获取免单。 请你编程计算有多少顾客可以获取免单。 输入描述 输入为 n 行数据,每一行表示一位顾客的下单时间 以(…...

DeepSeek R1满血+火山引擎详细教程

DeepSeek R1满血火山引擎详细教程 一、安装Cherry Studio。 Cherry Studio AI 是一款强大的多模型 AI 助手,支持 iOS、macOS 和 Windows 平台。可以快速切换多个先进的 LLM 模型,提升工作学习效率。下载地址 https://cherry-ai.com/ 认准官网&#xff0c;无强制注册。 这…...

前端依赖nrm镜像管理工具

npm 默认镜像 &#xff1a;https://registry.npmjs.org/ 1、安装 nrm npm install nrm --global2、查看镜像源列表 nrm ls3、测试当前环境下&#xff0c;哪个镜像源速度最快。 nrm test4、 切换镜像源 npm config get registry # 查看当前镜像源 nrm use taobao # 等价于 npm…...

【前端】Axios AJAX Fetch

不定期更新&#xff0c;建议关注收藏点赞。 目录 AxiosAJAXCORS 允许跨域请求 Fetch Axios axios 是一个基于 Promise 的 JavaScript HTTP 客户端&#xff0c;用于浏览器和 Node.js 中发送 HTTP 请求。它提供了一个简单的 API 来发起请求&#xff0c;并处理请求的结果。axios …...

【爬虫】request库

文章目录 发送请求响应对象响应数据的方式中文乱码问题响应对象的其他属性或方法 发送带参数的请求headers和查询参数 Requests——发送http请求&#xff0c;获取响应数据 首先&#xff0c;请确保&#xff1a; 已安装 RequestsRequests 是最新的 让我们从一些简单的示例开始…...

ES的简单讲解

功能 &#xff1a; 文档存储 与 文档搜索 特点&#xff1a;比如有一个文档名 “你好” 可以用‘你‘&#xff0c;好&#xff0c;你好都可以搜索到这个文档 ES核心概念 类似于数据库中表的概念&#xff0c;在表的概念下又对数据集合进行了细分 ​ ES_Client查询接口 cpr::R…...

进程间通信(一)

1.进程间通信介绍 数组传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源 通知事件&#xff1a;一个进程需要向另一个或者一组进程发送信息&#xff0c;通知发送了某种事件(如进程终止时要通知父进程) 进程控制&…...