← 返回信息流
技术博客Hugging Face Blog·20 天前

Granite Embedding Multilingual R2:开源Apache 2.0多语言32K上下文嵌入模型——百兆参数以下检索质量最佳

原标题:Granite Embedding Multilingual R2: Open Apache 2.0 Multilingual Embeddings with 32K Context — Best Sub-100M Retrieval Quality

速览

IBM开源了Granite Embedding Multilingual R2模型,采用Apache 2.0许可证。该模型支持32K长上下文,专为多语言检索增强生成(RAG)设计。在参数量低于1亿的小型模型中,其检索质量表现最佳,适合资源受限场景。

AI 深度解读

Granite Embedding Multilingual R2 深度解读:开源 Apache 2.0 多语言嵌入模型,32K 上下文与亚 1 亿参数下的检索质量新标杆

背景

多语言嵌入模型(Multilingual Embedding Models)长期面临一个核心矛盾:广泛的语种覆盖往往以牺牲模型体积为代价,而小参数量的模型通常又无法兼顾足够的语言种类。对于需要处理跨语言检索增强生成(RAG)、多语言语料库搜索或国际团队代码检索的开发者和企业而言,这通常意味着必须在“速度够快”和“质量够好”之间做出妥协。

IBM 发布的 Granite Embedding Multilingual R2 系列旨在大幅缩小这一差距。该系列基于先进的 ModernBERT 架构,提供了两个不同规模的开源模型,旨在同时满足高性能与轻量级的需求,并支持长达 32K 的上下文窗口。

核心内容

1. 模型发布概览

本次发布包含两个基于 Apache 2.0 许可证的多语言嵌入模型,均构建于 ModernBERT 编码器之上:

  • granite-embedding-311m-multilingual-r2:全尺寸模型,拥有 3.11 亿参数,生成 768 维嵌入向量。支持 Matryoshka(套娃式)维度裁剪,在多语言检索质量上表现顶级。
  • granite-embedding-97m-multilingual-r2:紧凑型模型,拥有 9700 万参数,生成 384 维嵌入向量。在同等规模下提供强大的检索质量。

共同特性:

  • 语言覆盖:支持 200 多种语言,其中 52 种语言经过专门的检索对和跨语言训练优化。
  • 代码支持:新增对 9 种编程语言(Python, Go, Java, JavaScript, PHP, Ruby, SQL, C, C++)的代码检索支持,并具备跨语言代码检索能力。
  • 上下文窗口:支持高达 32,768 个 token 的上下文长度,是前代 R1 模型的 64 倍。
  • 兼容性:开箱即用,兼容 sentence-transformerstransformers 库。作为 LangChain、LlamaIndex、Haystack 和 Milvus 等框架的即插即用替换项,仅需修改一行模型名称即可为社区用户带来 200+ 种语言的支持,无需 API 变更或新增依赖。
  • 部署优化:提供 ONNX 和 OpenVINO 权重,针对 CPU 推理进行优化。

2. 语言与数据覆盖

模型底层编码器在 200 多种语言的网络文本上进行了预训练,生成通用嵌入向量。以下 52 种语言 接收了显式的检索对和跨语言训练,以获得更高质量的检索效果:

Albanian (sq), Arabic (ar), Azerbaijani (az), Bengali (bn), Bulgarian (bg), Catalan (ca), Chinese (zh), Croatian (hr), Czech (cs), Danish (da), Dutch (nl), English (en), Estonian (et), Finnish (fi), French (fr), Georgian (ka), German (de), Greek (el), Hebrew (he), Hindi (hi), Hungarian (hu), Icelandic (is), Indonesian (id), Italian (it), Japanese (ja), Kazakh (kk), Khmer (km), Korean (ko), Latvian (lv), Lithuanian (lt), Malay (ms), Marathi (mr), Norwegian (no), Persian (fa), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Serbian (sr), Slovak (sk), Slovenian (sl), Spanish (es), Swahili (sw), Swedish (sv), Tagalog (tl), Telugu (te), Thai (th), Turkish (tr), Ukrainian (uk), Urdu (ur), Uzbek (uz), Vietnamese (vi).

3. 企业级就绪设计 (Enterprise-Ready by Design)

IBM 强调数据治理与合规性,以确保模型适用于商业部署:

  • 数据来源:训练数据由 IBM 策展的数据集、公开可用数据以及内部生成或合成数据混合而成。
  • 数据过滤:使用的公开网络衍生数据经过 IBM 开发的流程进行质量筛选、去重和治理,旨在降低下游商业使用的风险。
  • 合规排除:刻意避免使用 MS-MARCO 训练数据集以及具有明确非商业许可限制的数据集。
  • GneissWeb:模型预训练主要基于 GneissWeb,这是一个源自公开网络内容、并经 IBM 数据处理和治理工具处理的策展数据集。
  • 治理审查:所有数据集均经过 IBM 治理审查,评估许可考量、所有权信号及个人数据风险,以促进负责任的使用和企业部署。

4. 从 R1 到 R2 的技术革新

Granite Embedding Multilingual R1 基于 XLM-RoBERTa 编码器,上下文窗口仅为 512 token。R2 是一次从头开始的架构重建:

  • ModernBERT 架构
    • 重新审视了原始 BERT 设计,融合了过去五年 Transformer 研究的技术。
    • 交替注意力长度:显著提高了长序列的处理吞吐量。
    • 旋转位置嵌入 (Rotary Position Embeddings):支持 32K 上下文窗口,无需旧架构中常见的位置插值“黑客”手段。
    • Flash Attention 2.0:支持在现代 GPU 上加速编码过程。
  • 多语言分词器 (Tokenizer) 优化
    • 不再复用 XLM-RoBERTa 的 250K 词表。
    • 311M 模型:使用 Gemma 3 分词器(262K 词元)。
    • 97M 模型:从 GPT-OSS 分词器起步,通过剪枝缩减至紧凑的 180K 词元,在保留广泛多语言覆盖的同时,减少了嵌入表的参数占用。
    • 效率重要性:分词器效率至关重要。例如,如果分词器效率低下,32K 的窗口可能在编码一段泰语段落时就已耗尽。

5. 训练流程详解

全尺寸 311M 模型训练流水线:

  1. 知识蒸馏 (Knowledge Distillation):模型同时从多个教师模型中学习。教师模型包括经过文本嵌入微调的 Granite 3.3 InstructMistral v0.2 Instruct 解码器模型,将检索特定知识迁移到 311M 编码器架构中。
  2. 对比微调 (Contrastive Fine-tuning):在 52 种语言和代码的检索对上进行标准对比训练,包括相关段落和困难负样本,以增强模型区分相关与不相关结果的能力。
  3. 模型合并 (Model Merging):训练后,合并不同训练阶段和配置的检查点。这将针对不同目标优化(如多语言广度 vs. 英语深度)的模型优势结合到一组权重中,无需额外的训练计算资源。
  4. Matryoshka 表示学习 (Matryoshka Representation Learning):模型采用 Matryoshka 方式训练,允许用户根据需求裁剪嵌入维度,从而在存储/计算成本与检索精度之间取得平衡。

紧凑型 97M 模型构建:

  • 在保留大部分多语言、代码和长文档基准检索质量的同时,实现了体积的大幅缩减。
  • 相比前代,在 MTEB 多语言检索上获得 +12.2 分的提升,这得益于新架构、更好的训练数据以及一种新颖的剪枝方法论。

关键要点

  • 性能突破
    • 97M 模型:在 MTEB 多语言检索(18 种语言)中得分 60.3,击败了所有其他开源的亚 1 亿参数多语言嵌入模型。相比之下,同类最佳模型 multilingual-e5-small
查看原文 →huggingface.co