ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ONNX Runtime Web 上手指南:在浏览器里加载并推理 ONNX 模型

ONNX Runtime Web 上手指南:在浏览器里加载并推理 ONNX 模型 ONNX Runtime Web 上手指南在浏览器里加载并推理 ONNX 模型【免费下载链接】onnxruntimeONNX Runtime: cross-platform, high performance ML inferencing and training accelerator项目地址: https://gitcode.com/GitHub_Trending/on/onnxruntime做 AI 应用时最常见的流程是数据上传服务器、服务器跑推理、再把结果传回来——隐私和延迟都难处理。ONNX Runtime Web 把这个流程砍掉了把 ONNX 模型文件放进网页直接在浏览器里完成推理数据不出设备。它是运行在浏览器和 Node.js 里的 JavaScript 推理引擎CPU 推理部分由原生 C 引擎经 Emscripten 编译成 WasmWebAssembly一种跨平台执行的编译格式驱动速度接近原生并且完整支持 ONNX 算子集、多线程和量化。图中的分工可以直接对应到 Web 端模型先被解析成内存图分区器决定子图归哪个执行提供器EP处理ONNX Runtime Web 的 EP 就是 wasm、webgpu、webgl、webnn 这几个后端。ONNX Runtime Web 是什么一句话定位ONNX Runtime Web 是 ONNX Runtime跨平台机器学习推理加速引擎的官方 JavaScript 版本给 Web 开发者做本地推理用。核心能力Wasm CPU 后端覆盖全部 ai.onnx 和 ai.onnx.ml 算子与原生 CPU 引擎能力对齐WebGPU 后端走 GPU 并行计算延迟更低目前为实验性特性推理全在本地完成省掉一次服务器往返敏感数据不上云在浏览器里加载第一个模型准备一个 npm 工程和一个 ONNX 模型文件即可npm install onnxruntime-webimport * as ort from onnxruntime-web; // 创建推理会话wasm 后端跑在 CPU 上 const session await ort.InferenceSession.create(./model.onnx, { executionProviders: [wasm] }); // 输入张量float32 数据形状 [3,4,5] const input new ort.Tensor(float32, new Float32Array(60), [3, 4, 5]); // 按模型输入名喂数据输出按名字取 const outputs await session.run({ x: input }); console.log(outputs.y.data);关键参数逐个说create的第一个参数可以是模型 URL 或字节数组引擎会自行下载解析executionProviders决定算力放在哪CPU 推理写wasmort.Tensor依次是数据类型、数据缓冲、形状run的输入键名必须和模型输入名这里是x一致后端与线程数怎么选真正影响结果的参数就两个后端和线程数按场景对照即可。场景建议配置原因通用模型、要兼容所有现代浏览器executionProviders: [wasm]算子全覆盖兼容性最好视觉模型、新版 Chrome/EdgeexecutionProviders: [webgpu]GPU 并行、延迟更低但算子是子集想用 Float16 加速WebGPU Chrome 121 / Edge 122旧版本浏览器不支持 FP16CPU 大模型吞吐ort.env.wasm.numThreads 4默认是 min(4, 逻辑核数/2)可在创建会话前调大常见坑与调优多线程没生效Wasm 多线程依赖 SharedArrayBuffer需要站点开启跨源隔离COOP/COEP 响应头。没配置时库会自动回退单线程排查时先看响应头而不是改线程数。WebGL 不推荐新项目官方文档明确 WebGL 后端处于维护模式建议直接用 WebGPU老项目能跑就先不动。WebGPU 不可用Windows 需要 Chromium 113Android 需要 121Safari 和 Firefox 目前不支持。上线前加一段检测不行就回退 wasm。模型在 WebGPU 上报算子缺失WebGPU/WebGL 只支持部分算子完整清单在 webgpu-operators.md缺算子时回退 wasm 即可wasm 是全量覆盖的。Node.js 里跑只支持单线程 wasm 后端别设置numThreadsWebNN 后端仍是实验特性需要浏览器带--enable-featuresWebMachineLearningNeuralNetwork启动参数生产环境不建议依赖。小结与延伸阅读把 wasm 当兼容性兜底、WebGPU 当性能选项这套组合已经能让浏览器端本地推理脱离演示阶段。想继续深入看两处就够官方说明与浏览器兼容性矩阵js/web/README.mdNode.js 最小示例samples/nodejs/01_basic-usage/【免费下载链接】onnxruntimeONNX Runtime: cross-platform, high performance ML inferencing and training accelerator项目地址: https://gitcode.com/GitHub_Trending/on/onnxruntime创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表