在 React Native 与移动应用中使用 ONNX 模型的方法
ONNX(Open Neural Network Exchange)是一种通用的机器学习模型格式,支持 一次训练,多端部署。通过 ONNX,可以将使用 PyTorch、TensorFlow 训练的模型,高效地运行在 Android、iOS 以及 React Native、Flutter 等跨平台移动框架 上。
本文以 React Native 为核心,系统性介绍如何在移动端使用 ONNX,并进一步说明 端侧 AI(On-device AI) 与 本地大模型(Local LLM) 在实际业务中的价值。
为什么 ONNX 适合移动应用
ONNX 在移动端广泛应用,主要原因包括:
- 不绑定特定训练框架,技术路线灵活
- 支持 CPU 及移动端加速器(NNAPI / CoreML)
- 无需 Python 运行环境
- 非常适合离线推理与低延迟场景
在注重 稳定性、数据安全与用户体验 的场景中,ONNX 是移动 AI 的理想选择。
移动端 ONNX Runtime 选择
| 平台 | 推荐 Runtime |
|---|---|
| React Native | onnxruntime-react-native |
| Android(原生) | ONNX Runtime Android |
| iOS(原生) | ONNX Runtime iOS |
| Flutter | 通过 Platform Channel 调用 ONNX Runtime |
| Ionic / Capacitor | 原生插件封装 ONNX Runtime |
⚠️ 纯 JavaScript 方式运行 ONNX 并不适合生产环境。
在 React Native 中使用 ONNX(推荐方案)
1. 安装 ONNX Runtime
为了获得更好的稳定性,建议使用 React Native CLI:
yarn add onnxruntime-react-native
cd ios && pod install && cd ..
Expo 用户需要使用 prebuild 与 custom dev client。
2. 将 ONNX 模型集成到应用中
常见方式包括:
- 将模型直接打包进应用(assets/models/model.onnx)
- 应用首次启动时下载模型并缓存到本地
在早期阶段,推荐 直接随应用打包。
3. 创建推理 Session
import * as ort from "onnxruntime-react-native";
export async function loadModel(modelPath: string) {
return await ort.InferenceSession.create(modelPath, {
executionProviders: ["cpu"],
});
}
4. 执行推理
export async function runInference(session, inputName, data, dims) {
const tensor = new ort.Tensor("float32", data, dims);
const feeds = { [inputName]: tensor };
return await session.run(feeds);
}
请务必确认模型的 输入名称与维度 完全一致。
图像预处理:最容易出错的环节
大多数视觉模型通常要求:
- Tensor 形状为
[1, 3, H, W]或[1, H, W, 3] - 像素值归一化
- 正确的 RGB / BGR 顺序
任何细微的预处理错误,都会直接影响推理结果。
在移动端使用 Local LLM 的优势
核心价值
- 用户与业务数据不出设备,安全性高
- 无网络环境下仍可正常工作
- 推理延迟稳定,提升交互体验
- 大幅降低云端推理与 API 成本
这在 政务、工业、企业级应用 中尤为重要。
Local LLM 在移动端的典型应用场景
政务 / GovTech
- 表单填写辅助与政策解释
- 本地文档与规章制度总结
智慧农业
- 作物病害识别结果解释
- 传感器数据的智能总结与决策建议
制造业 / 企业应用
- 设备告警说明
- 运维与巡检报告自动总结
消费级应用
- 笔记、邮件摘要
- 不依赖云端的个人 AI 助手
需要注意的限制条件
- 模型规模需受控(通常 1–4B 参数以内)
- 必须进行量化(INT8 / INT4)
- 性能不及云端 GPU
选择 合适的业务场景 是成功落地的关键。
总结
通过 ONNX 与 Local LLM 的结合,可以在移动端构建 高安全性、低延迟、支持离线运行 的 AI 应用。
React Native + ONNX Runtime 在开发效率与工程稳定性之间取得了良好平衡,非常适合政务、工业、企业级以及智慧农业等实际场景。
Get in Touch with us
Related Posts
- How to Use an ONNX Model in React Native (and Other Mobile App Frameworks)
- 叶片病害检测算法如何工作:从相机到决策
- How Leaf Disease Detection Algorithms Work: From Camera to Decision
- Smart Farming Lite:不依赖传感器的实用型数字农业
- Smart Farming Lite: Practical Digital Agriculture Without Sensors
- 为什么定制化MES更适合中国工厂
- Why Custom-Made MES Wins Where Ready-Made Systems Fail
- How to Build a Thailand-Specific Election Simulation
- When AI Replaces Search: How Content Creators Survive (and Win)
- 面向中国市场的再生资源金属价格预测(不投机、重决策)
- How to Predict Metal Prices for Recycling Businesses (Without Becoming a Trader)
- Smart Durian Farming with Minimum Cost (Thailand)
- 谁动了我的奶酪?
- Who Moved My Cheese?
- 面向中国的定制化电商系统设计
- Designing Tailored E-Commerce Systems
- AI 反模式:AI 如何“毁掉”系统
- Anti‑Patterns Where AI Breaks Systems
- 为什么我们不仅仅开发软件——而是让系统真正运转起来
- Why We Don’t Just Build Software — We Make Systems Work













