ai_model_hub_26_Q2

108 downloads 2 likes on ModelScope updated

Model card

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 仅给出具体命令与文件名):

  1. 量化 / 编译(主机):执行 cixbuild <cfg> 生成端侧二进制 .cix。
  2. ONNX 推理(主机或设备):运行 inference_onnx.py,使用 ONNX Runtime。
  3. NPU 推理(设备):先将该模型的 .cix、test_data 与 inference_npu.py 拷贝到设备,再运行 inference_npu.py。
  4. 工具包:运行设备推理前,需从 ai_model_hub/utils 导入或拷贝模型前/后处理与工具包。
  5. 多文件模型:部分模型还需拷贝其 README 中列出的额外文件(多个 .cix、字体、词表等),以各模型目录下的 ReadMe.md 为准。

3.2 运行 Demo 应用

demos/ 下各子目录提供基于 Gradio/Streamlit 的 Demo,以 .deb 包形式发布,便于在 CIX 设备上一键安装与体验。

基本步骤:

  1. 将对应的 .deb 包拷贝到设备,安装(以 demos/ 目录下实际存在的 .deb 文件名为准):
    sudo dpkg -i <demo-name>_<version>_arm64.deb
    
  2. 安装后一般位于 /opt/<demo-name>/,进入该目录。
  3. 安装后进入 /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 并遵守其条款。