CIX AI Model Hub
CIX AI Model Hub 是面向 CIX SoC 部署优化的机器学习模型集合,提供从模型推理、量化到端侧 Demo 的完整支持,便于客户在 CIX 设备上进行 AI 应用开发与验证。
一、工程概览
1.1 主要内容
- 模型库:涵盖计算机视觉、语音、多模态与生成式 AI(含 LLM/VLM),支持 ONNX 与 CIX 二进制(.cix)推理。
- 示例应用:每个模型提供端到端 Python 示例(预处理 → 推理 → 后处理),可在主机或 CIX 设备上运行。
- Demo 应用:提供基于 Gradio/Streamlit 的可视化 Demo 安装包(.deb),用于快速体验与集成。
- 工具与脚本:LLM/VLM 的下载、构建、量化脚本;数据集与评测相关脚本;通用后处理与评测工具。
1.2 目录结构
ai_model_hub/
├── models/ # 模型库(按领域与任务分类)
│ ├── Audio/ # 语音识别、TTS、声纹等
│ ├── ComputeVision/ # 目标检测、分割、分类、OCR、超分等
│ ├── Generative_AI/ # 图文检索、图生文、文生图、LLM 等
│ └── MultiModal/ # VLM 等多模态模型说明文档
├── demos/ # 可视化 Demo 安装包(.deb)
├── datasets/ # 数据集下载与处理(如 ImageNet、COCO、VOC)
├── utils/ # 通用后处理、评测、绘图等工具
├── scripts/ # 构建、量化、评测LLM/VLM 的脚本
├── requirements.txt # Python 依赖
├── ReadMe.md # 本文档(中文)
├── ReadMe_EN.md # 本文档(英文)
├── LLM_ReadMe.md # LLM/VLM 手动量化、推理与性能测试指南
├── scripts/llm-gen/README.md # LLM/VLM 自动化脚本使用指南(可选)
├── ReleaseNote.md # 版本与模型变更历史
├── EULA.md # 最终用户许可协议
└── LICENSE # Apache-2.0
二、环境与依赖
2.1 系统要求
- 运行模型与 Demo:支持 CIX SoC 设备或 x86 主机(用于 ONNX 推理)。
- LLM/VLM 转换与量化:建议在 x86 Linux 主机或 WSL 上完成(参见 LLM_ReadMe.md)。
2.2 安装 Python 依赖
在工程根目录下执行:
sudo apt install libpython3-dev build-essential python3-dev
pip3 install -r requirements.txt
requirements.txt 包含模型推理与示例所需的依赖(如 onnx、onnxruntime、torch、transformers、图像/语音/中文处理库等)。仅运行部分模型时,可按需安装对应依赖。
三、快速开始
3.1 运行单个模型(端到端示例)
每个模型目录下通常包含:
inference_npu.py:在 CIX SoC 上运行编译后的二进制模型(.cix)。inference_onnx.py:在主机或设备上使用 ONNX Runtime 运行 ONNX 模型。model/:ONNX 或原始权重;编译后的二进制在对应 .cix 文件。ReadMe.md:该模型的输入输出、编译与运行说明。
在设备上运行 NPU 推理(需先将对应 .cix、test_data、inference_npu.py 拷贝到设备):
cd <模型目录>
python3 inference_npu.py
在主机或设备上运行 ONNX 推理:
cd <模型目录>
python3 inference_onnx.py
通用运行流程(各模型 README 仅给出具体命令与文件名):
- 量化 / 编译(主机):执行
cixbuild <cfg>生成端侧二进制.cix。 - ONNX 推理(主机或设备):运行
inference_onnx.py,使用 ONNX Runtime。 - NPU 推理(设备):先将该模型的
.cix、test_data与inference_npu.py拷贝到设备,再运行inference_npu.py。 - 工具包:运行设备推理前,需从
ai_model_hub/utils导入或拷贝模型前/后处理与工具包。 - 多文件模型:部分模型还需拷贝其 README 中列出的额外文件(多个
.cix、字体、词表等),以各模型目录下的ReadMe.md为准。
3.2 运行 Demo 应用
demos/ 下各子目录提供基于 Gradio/Streamlit 的 Demo,以 .deb 包形式发布,便于在 CIX 设备上一键安装与体验。
基本步骤:
- 将对应的
.deb包拷贝到设备,安装(以demos/目录下实际存在的.deb文件名为准):sudo dpkg -i <demo-name>_<version>_arm64.deb
- 安装后一般位于
/opt/<demo-name>/,进入该目录。 - 安装后进入
/opt/<demo-name>/目录,按照其中的README.md安装运行环境(pip install -r requirements.txt --break-system-packages)并启动 Demo(python3 <script>.py),在浏览器打开终端显示的本地 URL,Ctrl + C停止。
各 Demo 的功能说明见下方「四、Demo 列表」。
四、Demo 列表
demos/ 下的可视化 Demo 基于 Gradio / Streamlit 构建,以 .deb 包发布。
以下列表仅作参考,实际可用的 Demo 包请以
demos/目录下的.deb文件为准。
| 领域 | Demo | 说明 |
|---|---|---|
| LLM | chatbot-gradio | 基于 llama-cpp-python 的本地聊天机器人 |
| rag-chat-streamlit / rag-chat-gradio | 基于本地文本的 RAG 聊天 | |
| ort-genai-chat-gradio | 基于 ONNX Runtime GenAI 的本地聊天 | |
| MultiModal | picquery-cn-gradio | 输入描述检索相关图片 |
| image-multichat-gradio / image-multichat-streamlit | LLaMA + CLIP 图像描述聊天 | |
| audio-chat-gradio | 语音输入 + 文本转语音聊天 | |
| sd-demo-streamlit | NPU 推理文生图 | |
| ai-album-streamlit | AI 相册搜索 | |
| pp-ocrv4-gradio | PP-OCRv4 多模态 Demo | |
| videoquery-streamlit | 视频查询与理解 | |
| Computer Vision | yolox-gradio | 摄像头目标检测 |
| yolox-depth-gradio | 深度估计 + 检测 | |
| dms-gradio | 驾驶员监控(DMS) | |
| face-recognition-gradio | 人脸识别 | |
| vsr-demo-gradio | 视频超分 / 增强 | |
| real-esrgan-gradio | Real-ESRGAN 图像增强 | |
| Tools | ai-demo-manager | CIX Demo 启动与管理器 |
五、数据集准备
部分模型的精度评测(inference_*.py --benchmark)依赖本地数据集,放在 datasets/ 下(仓库不附带,需自行下载)。
ImageNet ILSVRC2012(验证集)
cd datasets && mkdir -p ILSVRC2012/val && cd ILSVRC2012
wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar
tar -xvf ILSVRC2012_img_val.tar -C ./val
cd val && wget https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh
chmod +x valprep.sh && ./valprep.sh && rm ./valprep.sh
COCO2017(验证集)
cd datasets && mkdir -p COCO2017 && cd COCO2017
wget http://images.cocodataset.org/zips/val2017.zip && unzip val2017.zip
mkdir images && mv val2017 images
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip && unzip annotations_trainval2017.zip
VOC2012
cd datasets
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_11-May-2012.tar && mv VOCdevkit/VOC2012 ./ && rm -r VOCdevkit
六、脚本工具
6.1 LLM/VLM 生成脚本(scripts/llm-gen/)
均在 x86 host 上运行;端到端工作流(内部/外部开发者路径、edge device 运行、排错)详见 scripts/llm-gen/README.md。
| 脚本 | 作用 |
|---|---|
build_tools.sh |
克隆并编译 llama.cpp 与 MNN(优先 CIX 内部镜像,失败回退 GitHub) |
list_model.py |
扫描 models/Generative_AI/LLM/、models/MultiModal/ 的 .md,生成/刷新 LLM_List.md |
download_model.py |
按 LLM_List.md 下载(优先 Nexus3,失败回退 git lfs clone) |
generate_model.py |
按 LLM_List.md 分三批量化:Llama.cpp LLM → MNN → Llama.cpp VLM |
cd scripts/llm-gen
./build_tools.sh <llamacpp_branch> <mnn_branch> # 一次性
python3 list_model.py
python3 download_model.py --models_dir <models_dir>
python3 generate_model.py --models_dir <models_dir> --save_dir <save_dir>
LLM_List.md 为自动生成清单(列:Model | Type | Link | Framework | Qtype | Qtype2),不建议手工编辑;新增模型请在对应目录新建 .md 后重跑 list_model.py。Model 必须等于 Link URL 末段路径。
6.2 回归测试脚本(scripts/sanity/)
扫描整个 models/ 仓库,从每个模型 ReadMe.md 中提取对应命令并批量执行,结果聚合写入 markdown 报告,便于版本升级或工具链变更后批量验证。
| 脚本 | 作用 / 输出 |
|---|---|
loop_build.py |
提取并执行 cixbuild <cfg>(NPU 编译);写 result.md |
loop_onnx.py |
提取并执行 inference_onnx.py(同时有 CPU/NPU 命令时优先 CPU);写 loop_onnx_result.md |
loop_npu.py |
提取并执行 inference_npu.py(需在 CIX 设备上);写 loop_npu_result.md |
llama_llm_loop.sh |
提取并执行 LLM/VLM 的 llama.cpp 命令(含 Vulkan 变体),逐模型写 perf_logs/<Model>-perf.md |
loop_*.py 会强制回到仓库根目录作为扫描起点,--path 可传任意指向脚本所在层级的相对路径。loop_onnx.py / loop_npu.py 的黑名单:onnx_stable_diffusion_v1_4、onnx_kokoro。
python3 scripts/sanity/loop_build.py
python3 scripts/sanity/loop_onnx.py
python3 scripts/sanity/loop_npu.py
bash scripts/sanity/llama_llm_loop.sh models/Generative_AI/LLM --output-dir perf_logs
各步骤完成后,对应 *_result.md 中的失败行即为需要逐一排查的模型。
七、文档索引
| 文档 | 说明 |
|---|---|
| ReadMe.md | 本文档:工程概览、环境、快速开始、Demo/数据集/脚本(中文) |
| ReadMe_EN.md | 同上(英文) |
| LLM_ReadMe.md | LLM/VLM 手动量化、推理与性能测试指南 |
| scripts/llm-gen/README.md | LLM/VLM 自动化脚本使用指南(基于 LLM_List.md 批量下载与量化) |
| ReleaseNote.md | 模型与版本变更历史 |
| EULA.md | 最终用户许可协议 |
数据集准备、Demo 列表、脚本工具说明已并入本文(见第四 / 五 / 六节)。各模型的使用细节见 models/ 下对应子目录中的 ReadMe.md。
八、许可证
- 本仓库:CIX AI Model Hub 采用 Apache-2.0 许可。
- 使用本仓库提供的软件与模型:请同时阅读 EULA.md 并遵守其条款。