拿下SOTA!最强中文Embedding模型对标OpenAI,技术路线公开

  新智元报道

  编辑:编辑部

  国产大模型「日日新 5.0」已经在权威主流评测中鲨疯了。变强的背后原因竟是,来自商汤自研中文 Embedding 模型——Piccolo2。这是首个对标 OpenAI 向量长度的模型。

  国产大模型最近在权威主流评测中「杀」疯了!

  商汤「日日新 5.0」在中文大模型测评基准 SuperCLUE 中,成为首个超越 GPT-4 Turbo 的国产大模型;在 OpenCompass 的基准表现中,客观评测超过 GPT-4 Turbo,主观评测已超过 GPT-4o 位列第一。

  这次「又双叒叕变强」背后是算法、算力、数据的全面「buff」叠加,其中最重要的技术之一、也是解决 LLM 幻觉问题的关键——商汤自研的通用 Embedding 模型 Piccolo2。

  Piccolo2 日前已突破 SOTA,在由北京智源研究院发布的中文语义向量评测基准C-MTEB 评测中名列第一,这是当前最大规模、最为全面的中文语义向量表征能力评测基准,包含分类、聚类、句对分类、重排、检索和句子相似度六大类评测任务和 31 个数据集。

  如今,商汤公开了技术路线。

  Piccolo2 目前支持 512/2K/8K 三种向量长度,其中 8K 模型是目前中文 Embedding 中能够实现对标 OpenAI 向量长度的模型。

  论文地址:https://arxiv.org/abs/2405.06932

  Hugging Face 地址:https://huggingface.co/sensenova/piccolo-large-zh-v2

  要读的论文又增加了!

  模型幻觉「退退退」,长文本「准准准」!商汤全新嵌入模型性能大幅提升

  正式读论文之前先聊聊 Embedding 对于大语言模型的重要性:

  检索的准确度、可解释性、易操作的知识外挂……这些都是源于与 LLM 基于知识库的问答场景息息相关的 Embedding 模型性能。

  嵌入(Embedding)就是将内容(如文字或代码)中的概念转化为一串数字序列。通过这种方式,机器学习模型和其他算法可以轻松理解不同内容之间的关系,执行聚类、检索等操作。

  无论是应对幻觉和可解释性,还是应对长文,Piccolo2 加持的商汤日日新 5.0 都完美地完成了从长文中处理和获取信息的任务。

  在整个检索增强生成(RAG)pipeline 中,Embedding 的性能决定了检索的准确性,也间接决定了 LLM 输出的可信度,而 RAG 在私有化部署方面的优势也为其开辟了更多可能性。

  RAG 的一大优点就在于知识库可以通过文档的形式进行外挂,这使得知识能够更频繁地更新,而无需耗时耗力再通过二次预训练向 LLM 灌入这些知识,并且 RAG 的检索步骤能够提供上下文给模型作为参考依据,让大模型回答更加准确。

  这些也催生了另一个优势——私有化,RAG 可以帮助小企业轻松完成大模型的私有化部署,而无需暴露私有数据。

  核心技术详解:对标 OpenAI 向量长度,精度位列 MTEB 中文榜单榜首

  在这个 LLM 落地应用中必不可少的一环里,商汤已经将这项技术实现了 SOTA,相比之前同量级的 SOTA 模型 acge-embedding,Piccolo2 模型综合评分提升了约 1.9 个点。

  到了读论文环节,这背后用了什么方法?依然是算法、数据的双重发力。

  与上一代(Piccolo)相比, Piccolo2 主要利用高效的多任务混合损失训练方法,有效地利用来自不同下游任务的文本数据和标签。

  同时,Piccolo2 扩大了嵌入维度,并使用 MRL 训练来支持更灵活的向量维度。除了训练方法之外,Piccolo2 还利用了一个数据合成框架和难负挖掘方法,以不断扩充数据集的数量和质量。

  多任务混合损失训练:适用不同下游任务

  以往的 Embedding 模型训练过程主要依赖于的标准 InfoNCE 损失和批内负样本(in-batch negative),通常通过利用大量负样本来实现较好的性能。然而,标准 InfoNCE 并不适用当前 Embedding 模型所有的下游任务。

  例如,句子相似度(STS)和句对分类任务(pair classification)这种具有细粒度标注的任务通常更适合用排序损失。

  此外,分类任务和聚类任务在之前的工作中也没有被用于通用嵌入模型的训练。因此在 Piccolo2 中,商汤采用了多任务混合损失训练方法,针对不同的下游任务利用不同的训练损失,并证明了其优越的性能。

  对于检索任务,Piccolo2 采用标准的 InfoNCE 损失:

  对于句对分类、句对相似度任务,Piccolo2 采用排序损失:

  对于分类、聚类任务,Piccolo2 首先通过将文本的 label 视为正/负样本,把分类、聚类数据转换为三元组,然后采用不带批内负样本的 InfoNCE 损失进行训练:

  大维度和 MRL 训练

  在今年 1 月 OpenAI 发布的两个新的文本嵌入模型 text-embedding-3-small 和 text-embedding-3-large ,当时引发了广发关注。

  受到 OpenAI 的 text-embedding-v3 的启发,商汤在研发 Piccolo2 时,也扩大了 Embedding 的维度尺寸,从 1024 增加到 1792。

  除此之外,还引入了「套娃学习」(Matryoshka Representation Learning, MRL)来支持更灵活的 Embedding 推理维度,「套娃学习」通过以嵌套方式对 O (log (d)) 低维向量进行显式优化在同一个高维向量中学习不同容量的表征。

  高质量数据加持精度

  Piccolo2 的微调数据主要来自于开源社区和 GPT-4 生成的合成数据。同时,对于检索任务,Piccolo2 也应用了难负样本挖掘来扩充数据质量。数据配比如下图所示:

  实验介绍:

  通过多任务混合损失训练的方式,Piccolo2 在C-MTEB 上达到了 70.95 的平均精度,相比之前同量级的 SOTA 模型 acge-embedding,综合评分提升了约 1.9 个点。

  同时,得益于 MRL 技术的加持,Piccolo2 在 Embedding 小维度上也有相当强的优势——从 1792 维度降到 256 维度,精度也仅仅下降了约 1 个点。

  如此,MRL 算法让 Embedding 模型具备多粒度的表达能力,也为开发者们提供更加灵活的选择。

  Piccolo2 更多技术细节可以查看:

  论文地址:https://arxiv.org/abs/2405.06932

  Hugging Face 地址:https://huggingface.co/sensenova/piccolo-large-zh-v2