ONNX 模型库
返回模型

说明文档

Granite-Embedding-278m-multilingual

模型概述: Granite-Embedding-278M-Multilingual 是 Granite Embeddings 套件中一款拥有 2.78 亿参数的模型,可用于生成高质量的文本嵌入。该模型生成的嵌入向量维度为 768,采用开源相关性配对数据集(具有宽松的企业友好许可证)和 IBM 收集及生成的数据集进行训练。该模型采用对比微调、知识蒸馏和模型合并技术开发,以提升性能。

支持的语言: 英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文。用户可针对这 12 种语言之外的语言对 Granite-Embedding-278M-Multilingual 进行微调。

预期用途: 该模型旨在为给定文本生成固定长度的向量表示,可用于文本相似度、检索和搜索应用。

使用 Sentence Transformers: 该模型与 SentenceTransformer 库兼容,使用非常简单:

首先,安装 sentence transformers 库

pip install sentence_transformers

然后可以使用该模型对文本对进行编码,并找到它们表示之间的相似度

from sentence_transformers import SentenceTransformer, util

model_path = "ibm-granite/granite-embedding-278m-multilingual"
# Load the Sentence Transformer model
model = SentenceTransformer(model_path)

input_queries = [
    ' Who made the song My achy breaky heart? ',
    'summit define'
    ]

input_passages = [
    "Achy Breaky Heart is a country song written by Don Von Tress. Originally titled Don't Tell My Heart and performed by The Marcy Brothers in 1991. ",
    "Definition of summit for English Language Learners. : 1 the highest point of a mountain : the top of a mountain. : 2 the highest level. : 3 a meeting or series of meetings between the leaders of two or more governments."
    ]

# encode queries and passages
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)

# calculate cosine similarity
print(util.cos_sim(query_embeddings, passage_embeddings))

使用 Huggingface Transformers: 以下是如何使用 Transformers 库和 PyTorch 调用 Granite-Embedding-278m-Multilingual 模型的简单示例。

首先,安装所需的库

pip install transformers torch

然后可以使用该模型对文本对进行编码

import torch
from transformers import AutoModel, AutoTokenizer

model_path = "ibm-granite/granite-embedding-278m-multilingual"

# Load the model and tokenizer
model = AutoModel.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.eval()

input_queries = [
    ' Who made the song My achy breaky heart? ',
    'summit define'
    ]

# tokenize inputs
tokenized_queries = tokenizer(input_queries, padding=True, truncation=True, return_tensors='pt')

# encode queries
with torch.no_grad():
    # Queries
    model_output = model(**tokenized_queries)
    # Perform pooling. granite-embedding-278m-multilingual uses CLS Pooling
    query_embeddings = model_output[0][:, 0]

# normalize the embeddings
query_embeddings = torch.nn.functional.normalize(query_embeddings, dim=1)

评估: 下表展示了 Granite-Embedding-278M-Multilingual 在多语言 Miracl(涵盖 18 种语言)、Mintaka 检索(涵盖 8 种语言)以及 MTEB 英语检索(涵盖 15 个任务)、德语(涵盖 4 个任务)、西班牙语(涵盖 2 个任务)、法语(涵盖 5 个任务)、日语(涵盖 2 个任务)、阿拉伯语(1 个任务)、韩语(1 个任务)和中文(涵盖 8 个任务)上的平均性能。

模型 参数 (M) 嵌入维度 Miracl (18) Mintaka 检索 (8) MTEB 英语 (15) MTEB 德语 (4) MTEB 西班牙语 (2) MTEB 法语 (5) MTEB 日语 (2) MTEB 阿拉伯语 (1) MTEB 韩语 (1) MTEB 中文 (8)
granite-embedding-278M-multilingual 278 768 58.3 23.2 48.2 71.2 52.6 54.1 61.7 64.2 71.8 45.2

模型架构: Granite-Embedding-278m-Multilingual 基于类似 XLM-RoBERTa 的纯编码器 Transformer 架构,由 IBM Research 内部训练。

模型 granite-embedding-30m-english granite-embedding-125m-english granite-embedding-107M-multilingual granite-embedding-278m-multilingual
嵌入维度 384 768 384 768
层数 6 12 6 12
注意力头数量 12 12 12 12
中间层大小 1536 3072 1536 3072
激活函数 GeLU GeLU GeLU GeLU
词表大小 50265 50265 250002 250002
最大序列长度 512 512 512 512
参数数量 30M 125M 107M 278M

训练数据: 总体而言,训练数据主要来源于四个关键来源:(1)从网页抓取的无监督标题-正文配对数据,(2)具有宽松、企业友好许可证的公开配对数据,(3)针对特定技术领域的 IBM 内部配对数据,以及(4)IBM 生成的合成数据。数据详情如下:

数据集 配对数量
多语言 MC4 52,823,484
多语言 Webhose 12,369,322
英语 Wikipedia 20,745,403
多语言 Wikipedia 2,911,090
Miracl 语料库 (标题-正文) 10,120,398
Stack Exchange 重复问题 (标题) 304,525
Stack Exchange 重复问题 (标题) 304,525
Stack Exchange 重复问题 (正文) 250,519
Stack Exchange 重复问题的机器翻译 (标题) 187,195
Stack Exchange (标题, 答案) 配对 4,067,139
Stack Exchange (标题, 正文) 配对 23,978,013
Stack Exchange (标题, 正文) 配对 23,978,013
Stack Exchange (标题+正文, 答案) 配对的机器翻译 1,827,15
SearchQA 582,261
S2ORC (标题, 摘要) 41,769,185
WikiAnswers 重复问题对 77,427,422
CCNews 614,664
XSum 226,711
SimpleWiki 102,225
机器翻译的跨语言平行语料库 28,376,115
SPECTER 引用三元组 684,100
SPECTER 引用三元组的机器翻译 4,104,600
Natural Questions (NQ) 100,231
SQuAD2.0 87,599
HotpotQA 85,000
Fever 109,810
PubMed 20,000,000
多语言 Miracl 三元组 81,409
多语言 MrTydi 三元组 48,715
Sadeeem 问答 4,037
DBPedia 标题-正文配对 4,635,922
合成数据: 英语查询-维基百科段落 1,879,093
合成数据: 英语事实验证 9,888
合成数据: 多语言查询-维基百科段落 300,266
合成数据: 多语言新闻摘要 37,489
IBM 内部三元组 40,290
IBM 内部标题-正文配对 1,524,586

值得注意的是,由于其非商业许可证的限制,我们没有在训练语料库中使用流行的 MS-MARCO 检索数据集,而其他开源模型由于该数据集的高质量而对其进行训练。

基础设施: 我们使用 IBM 的计算集群 Cognitive Compute Cluster 来训练 Granite Embedding 模型,该集群配备了 NVIDIA A100 80gb GPU。该集群提供了可扩展且高效的基础设施,支持我们在多个 GPU 上训练模型。

伦理考量和局限性: 用于训练基础语言模型的数据经过过滤,去除了包含仇恨、虐待和脏话的内容。Granite-Embedding-278m-Multilingual 针对 12 种语言进行了微调,上下文长度为 512 个标记(超过此长度的文本将被截断)。

资源

  • ⭐️ 了解 Granite 的最新更新:https://www.ibm.com/granite
  • 📄 入门指南、最佳实践和提示工程建议:https://www.ibm.com/granite/docs/
  • 💡 了解最新的 Granite 学习资源:https://ibm.biz/granite-learning-resources

<!-- ## Citation

@misc{granite-embedding-models,
  author = {author 1, author2, ...},
  title = {},
  journal = {},
  volume = {},
  year = {2024},
  url = {https://arxiv.org/abs/0000.00000},
}
``` -->

ibm-granite/granite-embedding-278m-multilingual

作者 ibm-granite

sentence-similarity transformers
↓ 24.8K ♥ 77

创建时间: 2024-12-04 20:29:12+00:00

更新时间: 2025-08-19 01:36:37+00:00

在 Hugging Face 上查看

文件 (13)

.gitattributes
1_Pooling/config.json
README.md
config.json
model.onnx ONNX
model.safetensors
modules.json
pytorch_model.bin
sentence_bert_config.json
sentencepiece.bpe.model
special_tokens_map.json
tokenizer.json
tokenizer_config.json