在 OpenHarmony 设备上跑大模型:ONNX Runtime 端侧 AI 实践

张开发
2026/4/10 9:44:33 15 分钟阅读

分享文章

在 OpenHarmony 设备上跑大模型:ONNX Runtime 端侧 AI 实践
前言目前 OpenHarmony/HarmonyOS 生态中端侧 AI 推理的开源参考实现非常稀缺。本项目基于 ONNX Runtime C API在 OHOS 设备上实现了六种 AI 能力的端侧推理包括端侧大语言模型 Qwen2-0.5B 的流式对话。项目已开源https://gitee.com/ggg5111_admin/ohos_-onnx功能概览功能模型说明图像分类MobileNetV2ImageNet 1000 类目标检测YOLOv5-nanoCOCO 80 类实时检测图像超分ESRGAN3 倍超分辨率情感分析轻量模型文本情感二分类本地问答BGE-small-zh sqlite-vec向量检索 RAG端侧大模型Qwen2-0.5B (Q4F16)流式输出完全离线技术架构ArkTS UI ←→ N-API 桥接 ←→ C 原生层 ←→ ONNX RuntimeONNX Runtime 1.24CPU Execution ProviderC API 封装N-API napi_threadsafe_function实现 C 后台线程到 JS 的流式回调纯 C 实现的GPT-2 BPE 分词器支持 Qwen2 chat templatesqlite-vec向量检索引擎纯本地 RAG 问答Qwen2 大模型能跑但受限于硬件测试设备为搭载紫光展锐 UIS7885的 OHOS 开发板4×Cortex-A76 4×Cortex-A55Mali-G57 GPU3.4GB RAM。实测 Qwen2-0.5BQ4F16 量化无 KV-cache推理数据上下文长度单步耗时26 tokens~750 ms40 tokens~1.1 s60 tokens~1.3 s70 tokens~1.5 s每步约 0.7~1.5 秒随上下文增长线性变慢无 KV-cache 导致每步重算完整上下文。硬件加速是后续优化方向可选路径包括使用带 KV-cache 的模型变体预期 5~20 倍提速在支持 NPU 的设备上对接 NNRt 或 MindSpore Lite探索 MNN 框架的 OpenCL 后端作为替代方案当前阶段的目标是验证 ONNX Runtime 在 OHOS 上的可行性证明端侧大模型对话链路完全可以跑通。项目结构entry/src/main/ ├── cpp/ # C 原生层 │ ├── onnx_wrapper.cpp/h # ORT C API 封装 │ ├── llm_engine.cpp/h # Qwen2 推理引擎 │ ├── qwen_tokenizer.cpp/h # BPE 分词器 │ ├── rag_engine.cpp/h # RAG 引擎 │ └── napi_init.cpp # N-API 注册入口 ├── ets/pages/ # ArkTS UI │ ├── LLMPage.ets # Qwen2 对话页 │ ├── RAGPage.ets # RAG 问答页 │ └── ... # 其他 demo 页 └── resources/rawfile/ # 模型文件需自行下载开源地址Giteehttps://gitee.com/ggg5111_admin/ohos_-onnx许可证Apache 2.0欢迎 Star、Fork、提 Issue。

更多文章