代码检索新利器:Granite-Embedding-97M-Multilingual-R2如何支持Python、Java等9种编程语言?

【免费下载链接】granite-embedding-97m-multilingual-r2 【免费下载链接】granite-embedding-97m-multilingual-r2 项目地址: https://ai.gitcode.com/hf_mirrors/ibm-granite/granite-embedding-97m-multilingual-r2

Granite-Embedding-97M-Multilingual-R2是一款来自Granite Embeddings系列的97M参数密集型嵌入模型,旨在以最小的计算成本提供高质量的多语言文本嵌入。它能生成384维向量,上下文长度可达32,768个令牌,支持200多种语言,并对52种语言和编程语言提供增强支持,是代码检索的理想选择。

🚀 模型亮点:为何选择Granite-Embedding-97M-Multilingual-R2?

卓越的检索性能

Granite Embedding 97M Multilingual R2在Multilingual MTEB Retrieval(18项任务)中获得59.6分,是所有1亿参数以下开源多语言嵌入模型中的最高检索分数,比同尺寸类别中的次优模型(multilingual-e5-small,50.9分)高出8.7分,同时比全尺寸的granite-embedding-311m-multilingual-r2小约3倍。该多语言R2模型在多语言信息检索基准、代码检索、长文档搜索、对话多轮和推理检索任务中均表现出强大性能。

专为代码检索优化

该模型的代码检索训练集涵盖了Python、Go、Java、JavaScript、PHP、Ruby、SQL、C、C++等9种编程语言,支持跨语言代码检索,能满足不同编程语言代码检索的需求。

架构与训练优势

  • 架构升级:ModernBERT取代XLM-RoBERTa,带来交替注意力、SiLU激活和旋转位置嵌入。
  • 紧凑的多语言词汇表:专门训练的180K令牌分词器在减少模型大小的同时保持广泛的多语言覆盖。
  • 模型剪枝:从全尺寸多语言模型进行层剪枝(22→12层),然后进行持续蒸馏训练以恢复质量。
  • 训练进展:来自多个教师的知识蒸馏和对比微调比上一代granite-embedding-107m-multilingual平均增益14.5点。

💡 适用场景

  • 选择granite-embedding-97m-multilingual-r2:适用于对延迟敏感的生产工作负载、边缘部署,或需要最大编码吞吐量并具有竞争力的多语言质量的场景。该模型仅有97M参数,比全尺寸的granite-embedding-311m-multilingual-r2小3倍,同时保持强大的跨语言检索性能。
  • 选择[granite-embedding-311m-multilingual-r2]:当准确性是首要优先级,并且可以承受311M参数模型的吞吐量时。
  • 选择[granite-embedding-english-r2]或[granite-embedding-small-english-r2]:当数据主要是英语时,这些特定于英语的模型为单语英语用例提供优化性能。

📝 快速上手

要使用Granite-Embedding-97M-Multilingual-R2进行代码检索,可按照以下步骤:

首先,克隆仓库:

git clone https://gitcode.com/hf_mirrors/ibm-granite/granite-embedding-97m-multilingual-r2

然后,在代码中使用该模型:

model_path = "ibm-granite/granite-embedding-97m-multilingual-r2"
# 加载模型
model = SentenceTransformer(model_path)
# 编码查询和代码片段
query_embeddings = model.encode(input_queries)
passage_embeddings = model.encode(input_passages)
# 计算余弦相似度
print(util.cos_sim(query_embeddings, passage_embeddings))

通过以上步骤,即可利用Granite-Embedding-97M-Multilingual-R2实现对Python、Java等9种编程语言的高效代码检索。

🌐 语言支持

该模型的基础编码器在200多种语言的文本上进行了预训练,可提供任何这些语言的通用嵌入。此外,对52种语言和编程语言提供增强支持,这些语言和编程语言接收显式的检索对和跨语言训练数据,在检索任务上产生更高质量的嵌入。

【免费下载链接】granite-embedding-97m-multilingual-r2 【免费下载链接】granite-embedding-97m-multilingual-r2 项目地址: https://ai.gitcode.com/hf_mirrors/ibm-granite/granite-embedding-97m-multilingual-r2

更多推荐