此文档介绍如何使用 CIX P1 NPU SDK 将 BGE-Small-ZH-V1.5 转换为 CIX SOC NPU 上可以运行的模型。
整体来讲有四个步骤:
:::tip
步骤1~3 在 x86 主机 Linux 环境下执行
:::
请参考 安装 NPU SDK 进行 NPU SDK 和 NOE Compiler 的安装.
在 CIX AI Model Hub 中包含了 BGE-Small-ZH-V1.5 的所需文件, 请用户按照 CIX AI Model Hub 下载
cd ai_model_hub/models/Generative_AI/Text_Image_Search/onnx_bge_small_zh
请确认目录结构是否同下图所示。
├── bge-small-zh-v1.5
│ ├── 1_Pooling
│ │ └── config.json
│ ├── config.json
│ ├── config_sentence_transformers.json
│ ├── modules.json
│ ├── README.md
│ ├── sentence_bert_config.json
│ ├── special_tokens_map.json
│ ├── tokenizer_config.json
│ ├── tokenizer.json
│ └── vocab.txt
├── cfg
│ └── bge_small_zh_build.cfg
├── dataset
│ └── calibd_data.npz
├── model
│ ├── bge-small-zh-sim.onnx
│ └── bge-small-zh.onnx
├── graph.json
├── inference_noe.py
├── inference_onnx.py
├── ReadMe.md
└── script
├── 00run_pytorch.py
├── 01convert_to_onnx.py
└── 02gen_calib_data.py
:::tip
用户可无需从头编译模型,radxa 提供预编译好的 bge-small-zh_256.cix 模型(可用下面步骤下载),如果使用预编译好的模型,可以跳过“编译模型” 这一步
wget https://modelscope.cn/models/cix/ai_model_hub_24_Q4/resolve/master/models/Generative_AI/Text_Image_Search/onnx_bge_small_zh/bge-small-zh_256.cix
:::
将使用 NOE Compiler 编译好的 .cix 格式的模型复制到 Orion O6 开发板上进行模型验证
python3 inference_noe.py
(.venv) radxa@orion-o6:~/ai_model_hub/models/Generative_AI/Text_Image_Search/onnx_bge_small_zh$ time python3 inference_noe.py
npu: noe_init_context success
npu: noe_load_graph success
Input tensor count is 3.
Output tensor count is 2.
npu: noe_create_job success
0.6624115
0.08777221
0.18105437
0.10344582
0
查询: ['什么是机器学习?']
最相似的文档: 这是一篇关于机器学习的文章。
npu: noe_clean_job success
npu: noe_unload_graph success
npu: noe_deinit_context success
real 0m4.571s
user 0m5.397s
sys 0m0.504s
使用 CPU 对 onnx 模型进行推理验证正确性,可在 X86 主机上或 Orion O6 上运行
python3 inference_onnx.py
(.venv) radxa@orion-o6:~/ai_model_hub/models/Generative_AI/Text_Image_Search/onnx_bge_small_zh$ time python3 inference_onnx.py
0.8043387
0.55985427
0.36508316
0.43281698
0
查询: ['什么是机器学习?']
最相似的文档: 这是一篇关于机器学习的文章。
real 0m4.810s
user 0m9.719s
sys 0m0.500s
可以看到 NPU 和 CPU 上推理的结果一致,但运行速度大幅缩短
论文链接: C-Pack: Packed Resources For General Chinese Embeddings