ONNX 模型库
返回模型

说明文档

Granite-Embedding-125m-English

新闻: 具有8192上下文长度的Granite Embedding R2模型已发布。

模型概述: Granite-Embedding-125m-English是Granite Embeddings系列中的一个125M参数的密集双编码器嵌入模型,可用于生成高质量的文本嵌入。该模型生成的嵌入向量维度为768。与其他大多数开源模型相比,该模型仅使用具有宽松、企业友好许可的开源相关性配对数据集以及IBM收集和生成的数据集进行训练。在保持BEIR等学术基准测试竞争力的同时,该模型在许多企业应用场景中也有出色表现。该模型采用检索导向的预训练、对比微调和知识蒸馏技术开发。

支持的语言: 英语。

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

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

首先,安装sentence transformers库

pip install sentence_transformers

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

from sentence_transformers import SentenceTransformer, util

model_path = "ibm-granite/granite-embedding-125m-english"
# 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配合使用: 以下是一个简单的示例,展示如何将Granite-Embedding-125m-English模型与Transformers库和PyTorch配合使用。

首先,安装所需的库

pip install transformers torch

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

import torch
from transformers import AutoModel, AutoTokenizer

model_path = "ibm-granite/granite-embedding-125m-english"

# 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-125m-english uses CLS Pooling
    query_embeddings = model_output[0][:, 0]

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

评估:

下表报告了Granite-Embedding-125M-English模型在MTEB Retrieval(即BEIR)和代码检索(CoIR)基准测试上的性能。

模型 参数 (M) 嵌入维度 MTEB Retrieval (15) CoIR (10)
granite-embedding-125m-english 125 768 52.3 50.3

模型架构: Granite-Embedding-125m-English基于类似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生成的合成数据。详细数据如下:

数据集 配对数量
SPECTER引用三元组 684,100
Stack Exchange重复问题(标题) 304,525
Stack Exchange重复问题(正文) 250,519
Stack Exchange重复问题(标题+正文) 250,460
Natural Questions (NQ) 100,231
SQuAD2.0 87,599
PAQ(问题-答案)对 64,371,441
Stack Exchange(标题-答案)对 4,067,139
Stack Exchange(标题-正文)对 23,978,013
Stack Exchange(标题+正文-答案)对 187,195
S2ORC引用对(标题) 52,603,982
S2ORC(标题-摘要) 41,769,185
S2ORC(引用-摘要) 52,603,982
WikiAnswers重复问题对 77,427,422
SearchQA 582,261
HotpotQA 85,000
Fever 109,810
Arxiv 2,358,545
Wikipedia 20,745,403
PubMed 20,000,000
Miracl En对 9,016
DBPedia标题-正文对 4,635,922
合成数据:查询-维基百科段落 1,879,093
合成数据:事实验证 9,888
IBM内部三元组 40,290
IBM内部标题-正文对 1,524,586

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

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

伦理考量和局限性: 用于训练基础语言模型的数据经过过滤,以去除包含仇恨、辱骂和脏话的文本。Granite-Embedding-125m-English仅针对英语文本进行训练,上下文长度为512个token(更长的文本将被截断至此长度)。

资源

  • ⭐️ 了解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-125m-english

作者 ibm-granite

sentence-similarity sentence-transformers
↓ 43.2K ♥ 35

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

更新时间: 2025-08-19 01:31:48+00:00

在 Hugging Face 上查看

文件 (14)

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