模型推理加速
TextEmbedding模型当前支持bert、roberta、xlm_roberta类embedding模型向量化推理加速,支持的数据类型为float16。如需使用该功能,安装RAG SDK软件包时需将算子模块一并安装,并且确保已经启用该功能(默认为关闭状态),具体示例可以参考开启推理加速调用示例。
clip模型加速只支持ViT-B-16、ViT-L-14、ViT-L-14-336 、ViT-H-14,下载链接参见模型下载说明,开启加速后首次推理会进行图编译,预计耗时 1-2分钟。
- 各类模型推理加速配置如下:
-
方式1:
from modeling_bert_adapter import enable_bert_speed from modeling_roberta_adapter import enable_roberta_speed from modeling_xlm_roberta_adapter import enable_xlm_roberta_speed from modeling_clip_adapter import enable_clip_speed -
方式2:
from mx_rag.transformer_adapter.modeling_bert_adapter import enable_bert_speed from mx_rag.transformer_adapter.modeling_roberta_adapter import enable_roberta_speed from mx_rag.transformer_adapter.modeling_xlm_roberta_adapter import enable_xlm_roberta_speed from mx_rag.transformer_adapter.modeling_clip_adapter import enable_clip_speed
说明: 软件包如果是通过run包安装的,支持方式1和方式2;如果是通过whl包安装的,只支持方式2。执行pip3 show mx_rag命令获取软件包安装路径判断通过哪种包安装的,如果是run安装的,mx_rag安装在$HOME/./local/lib下,后续会逐步废弃第一种方式导包使用。
-
设置ENABLE_BOOST变量是否使能模型推理加速,设置值为"True"、"true"、"1"时表示使能加速,设置其他值表示不使能加速。
os.environ["ENABLE_BOOST"] = "True" -
模型加速日志相关环境变量说明。
ATB_LOG_TO_STDOUT:设置为1时表示日志记录到标准输出 ATB_LOG_TO_FILE:设置为1时表示日志记录到文件 ATB_LOG_LEVEL:设置日志等级,可配置为TRACE,DEBUG,INFO,WARN,ERROR,FATAL
Note
对于clip系列模型在Atlas 300I Duo 推理卡上推理,支持加速的batch为<=4,其他batch加速无明显性能提升甚至有劣化情况。
如果设备为鲲鹏系列服务器,可通过numactl绑核运行程序,提升推理性能。
-
通过npu-smi info命令获取对应npu卡的_<bus-id>_。

-
通过lspci -vs _<bus-id>_命令查询npu卡对应的NUMA node。
lspci -vs 0000:83:00.0
-
通过lscpu获得NUMA node对应的CPU核数。
lscpu | grep NUMA
-
在程序执行前添加numactl -C _<CPU核数>_。
numactl -C 48-71 xxxx程序
import os
import torch
import torch_npu
# 适配bert类模型向量化推理加速
from modeling_bert_adapter import enable_bert_speed
from mx_rag.embedding.local import TextEmbedding
# 使能向量化推理加速(设置为"True"时表示使能,"False"表示不使能)
os.environ["ENABLE_BOOST"] = "True"
device_id = 1
torch_npu.npu.set_device(f"npu:{device_id}")
embed = TextEmbedding(model_path="/path/to/model", dev_id=device_id)
print(embed.embed_documents(["北京有哪些景点?"]))
print(embed.embed_query("北京有哪些景点?"))