本文档记录 BAAI/llm-embedder 在 Ascend 910B3 NPU 环境下的适配与验证结果。llm-embedder 是一个统一的文本嵌入模型,支持检索、分类、聚类和语义搜索等任务。
本仓库提供:
相关获取地址:
参考文档:
| 组件 | 版本 |
|---|---|
torch | 2.8.0 |
torch_npu | 2.8.0.post4 |
transformers | 4.57.6 |
Ascend 910B3,1 逻辑卡BertModel(12 层,768 隐藏维,12 注意力头)512768# 安装依赖
pip install torch torch_npu transformers sentence-transformers
# 设置 NPU 可见设备
export ASCEND_RT_VISIBLE_DEVICES=0python inference.py --input "Your text here"# 从文件读取(每行一条)
python inference.py --input-file texts.txt
# 指定模型路径
python inference.py --model-path /path/to/BAAI--llm-embedder --input "Your text"python inference.py --device cpu --input "Your text"{
"model": "BAAI--llm-embedder",
"device": "npu:0",
"num_texts": 1,
"dimension": 768,
"pooling": "cls",
"normalize": true,
"inference_time_seconds": 0.0021,
"texts_per_second": 476.19,
"embeddings": [[0.0012, -0.0034, ...]]
}python inference.py --input "Hello, world!"预期输出:
dimension 为 768测试条件:10 条文本,batch_size=32,max_length=512。
| 指标 | CPU | NPU |
|---|---|---|
| 平均推理时间 | 1.2844 s | 0.0193 s |
| 吞吐量 | 7.79 texts/s | 518.84 texts/s |
| 加速比 | - | 66.55x |
精度评测采用余弦距离(Cosine Distance)作为主要指标,对比 NPU 与 CPU 的输出嵌入向量。
| 指标 | 数值 |
|---|---|
| 测试样本数 | 10 |
| 嵌入维度 | 768 |
| 最大绝对误差 | 7.5048e-04 |
| 平均绝对误差 | 8.1289e-05 |
| 最小余弦相似度 | 0.99999249 |
| 平均余弦相似度 | 0.99999589 |
| 最大余弦距离 | 0.000751% |
| 精度要求(余弦距离 < 1%) | 通过 |
结论:NPU 与 CPU 输出的嵌入向量余弦距离仅 0.000751%,远低于 1% 的阈值,精度通过验证。
--no-normalize 关闭。--pooling mean 切换为均值池化。