EN

Transformers.js vs ONNX Runtime:2026 年浏览器端 AI 推理哪个更优?

Transformers.js 与 ONNX Runtime 浏览器端 AI 推理详细对比

返回教程列表🌐 Read in English
入门10 分钟

Transformers.js vs ONNX Runtime:2026 年浏览器端 AI 推理哪个更优?

Transformers.js 与 ONNX Runtime 浏览器端 AI 推理详细对比

Transformers.js vs ONNX Runtime Web 浏览器端 AI 推理对比(2026):Transformers.js 是高层 HF pipeline(底层就跑在 ONNX Runtime 上),ONNX Runtime Web 是底层引擎适合自定义模型。含真实 JS 代码、WebGPU 加速与选型建议。

Transformers.js vs ONNX Runtime:2026 年浏览器端 AI 推理哪个更优?

简而言之:Transformers.js 是在浏览器中运行 Hugging Face 模型的高层、开箱即用的方式——它实际上底层运行在 ONNX Runtime Web 上。ONNX Runtime Web 是底层引擎,当你需要运行自定义(非 transformer)模型,或者想要完全控制后端和内存时,才会用到它。 对于大多数“在浏览器中运行模型”的任务,从 Transformers.js 开始;只有当你超出其能力范围时,才降级到 ONNX Runtime。

一览

Transformers.jsONNX Runtime Web

层级高层 pipeline API底层推理引擎 模型Hugging Face(预转换为 ONNX)任意 ONNX 模型 关系构建在 ONNX Runtime Web 之上引擎本身 后端WASM, WebGPUWASM, WebGPU, WebGL 易用性非常简单(pipeline(...))更多设置(张量、会话) 最佳场景浏览器内 NLP/视觉/音频 HF 模型自定义模型、完全控制

Transformers.js

它模仿了 Python transformers API:选择一个任务,指定一个模型,然后调用。无需服务器往返——推理在用户设备上运行。

js
import { pipeline } from '@huggingface/transformers';

const classify = await pipeline('sentiment-analysis'); const out = await classify('这个库出乎意料地易用。'); // [{ label: 'POSITIVE', score: 0.99 }]

它支持 WebGPU,在性能足够的设备上能大幅加速,并在其他设备上回退到 WASM。由于模型在本地运行,你获得了隐私(数据永远不会离开浏览器)和零每次调用的 API 成本——代价是下载大小和设备计算资源。

ONNX Runtime Web

ONNX Runtime 是实际的推理引擎(同一个项目也支持服务器/移动端)。Web 构建允许你加载任何 .onnx 模型,并显式控制输入/输出张量和执行提供程序。

js
import * as ort from 'onnxruntime-web';

const session = await ort.InferenceSession.create('model.onnx', { executionProviders: ['webgpu', 'wasm'] }); const feeds = { input: new ort.Tensor('float32', data, [1, 3, 224, 224]) }; const results = await session.run(feeds);

当你的模型不是 Hugging Face transformer(例如自定义 CNN、导出为 ONNX 的经典 ML 模型),或者你需要自己管理内存和张量形状时,你会选择这个。

如何选择

  • 在浏览器中运行标准 HF 模型(NLP、嵌入、Whisper 等)? 用 Transformers.js。
  • 自定义或非 transformer 的 ONNX 模型? 用 ONNX Runtime Web。
  • 想要最简单的路径并带有 WebGPU 加速? 用 Transformers.js(它为你使用了 ORT-Web)。
  • 需要精细控制执行提供程序和张量生命周期? 用 ONNX Runtime Web。
  • 要选择 *哪个* 模型在设备上运行,大小/量化权衡很重要——参见 模型量化 GPTQ/AWQ 指南

    FAQ

    Transformers.js 比 ONNX Runtime 慢吗? 对于相同的模型,没有明显差异——它底层 *就是* ONNX Runtime。便利层的开销很小。

    两者都支持 WebGPU 吗? 是的。WebGPU 提供最大的加速;两者在不可用时都回退到 WASM。

    推理真的在客户端运行吗? 是的——这正是关键所在。没有服务器,没有 API 密钥,数据留在设备上。代价是初始模型下载。

    结论

    这两者并非真正的竞争对手——一个构建在另一个之上。默认使用 Transformers.js:这是为 Hugging Face 模型提供浏览器端 AI 的最快方式,WebGPU 加速已为你处理好。当你需要运行 Transformers.js 未涵盖的内容或需要引擎级别的控制时,再降级到 ONNX Runtime Web。


    *最后更新:2026 年 6 月。请对照 Transformers.js 和 ONNX Runtime Web 文档验证后端支持。*

    相关工具

    Transformers.jsONNX Runtime