IBM Granite Embedding 多语言文本嵌入模型 · 昇腾 NPU 适配验证版
本仓库在标准 HuggingFace 模型基础上,提供了 华为 Ascend 910B NPU 的完整适配验证结果,包括:
| 属性 | 值 |
|---|---|
| 模型架构 | ModernBERT (311M 参数) |
| 输出维度 | 768 |
| 最大上下文 | 32,768 tokens(32K) |
| 支持语言 | 英语、中文、日语等 多语言 |
| 训练框架 | Sentence Transformers |
| 硬件验证 | Ascend 910B2 · NVIDIA H100(基线) |
Granite-Embedding-311M-Multilingual-R2 是 IBM 发布的轻量级多语言嵌入模型。基于 ModernBERT 架构(仅编码器),支持 32K 超长上下文,适用于跨语言语义检索、文本相似度计算、RAG 系统中的文档嵌入。
在 3 种语言(中文、英文、日文)× 3 条文本的跨语言余弦相似度矩阵上进行精度对比:
| 指标 | 值 | 判定 |
|---|---|---|
| 最大绝对误差 | 0.001391 | ✅ 远低于 1% 阈值 |
| 平均绝对误差 | 0.000649 | ✅ 万分之 6 |
| 相对误差百分比 | 0.145% | ✅ 完全可用 |
结论:NPU 推理结果与 GPU H100 基线高度一致,误差来源于 bfloat16 精度及算子实现差异,对实际检索排序无影响。
完整的 3×3 相似度矩阵对比见
models/ibm-granite/granite-embedding-311m-multilingual-r2/README.md
| 裁剪维度 | Fidelity | 说明 |
|---|---|---|
| 768 (full) | 1.0000 | 完整维度基准 |
| 512 | 1.0000 | 裁剪后前 512 维 |
| 384 | 1.0000 | 裁剪后前 384 维 |
| 256 | 1.0000 | 裁剪后前 256 维 |
| 128 | 1.0000 | 裁剪后前 128 维 |
注意:裁剪后的子向量需重新 L2 归一化后才能进行正确的余弦相似度比较。
| Batch Size | Seq Len | 延迟 | 吞吐量 (req/s) |
|---|---|---|---|
| 1 | 32 | 23 ms | 44 |
| 1 | 128 | 22 ms | 46 |
| 4 | 32 | 42 ms | 95 |
| 4 | 128 | 42 ms | 96 |
| 8 | 32 | 42 ms | 191 |
| 8 | 128 | 43 ms | 185 |
| 16 | 32 | 83 ms | 193 |
| 16 | 128 | 84 ms | 191 |
吞吐峰值:192 req/s(batch=16, seq_len=32)· 显存占用 < 2 GB
from vllm import LLM
model_path = "2502_90647073/granite-embedding-311m-multilingual-r2" # 或本地路径
llm = LLM(
model=model_path,
trust_remote_code=True,
dtype="bfloat16",
max_model_len=32768,
max_num_seqs=16,
enforce_eager=True,
gpu_memory_utilization=0.8,
)
texts = ["你的文本", "Your text here", "テキスト"]
outputs = llm.embed(texts)
for i, out in enumerate(outputs):
embedding = out.outputs.embedding # 768 维 list
print(f"[{i}] dim={len(embedding)}")python -m vllm.entrypoints.openai.api_server \
--model 2502_90647073/granite-embedding-311m-multilingual-r2 \
--task embed \
--dtype bfloat16 \
--max-model-len 32768 \
--max-num-seqs 16 \
--enforce-eager \
--gpu-memory-utilization 0.8 \
--port 8000curl http://localhost:8000/v1/embeddings \
-H "Content-Type: application/json" \
-d '{"model": "granite-embedding", "input": "Hello world"}'| 组件 | 版本 |
|---|---|
| NPU | Ascend 910B2 / 910B |
| vLLM-Ascend | ≥ 0.18.0 |
| torch_npu | ≥ 2.5.1 |
| Python | ≥ 3.10 |
完整的精度对比矩阵、Matryoshka 裁剪验证、性能分析、FAQ 等内容请查看:
👉 models/ibm-granite/granite-embedding-311m-multilingual-r2/README.md
原始精度与性能数据:
本项目基于 MIT 协议开源。
@misc{granite-embedding-311m-multilingual-r2,
author = {IBM},
title = {Granite-Embedding-311M-Multilingual-R2},
year = {2025},
url = {https://huggingface.co/ibm-granite/granite-embedding-311m-multilingual-r2}
}