谷歌发布LiteRT.js:通过WebGPU在浏览器中运行.tflite模型的JavaScript绑定
谷歌于2026年7月9日发布了LiteRT.js,这是其设备端推理库LiteRT的JavaScript绑定,允许.tflite模型直接在浏览器中运行,利用WebGPU加速。相比其他Web运行时,性能提升可达3倍,GPU/NPU路径相比CPU路径提速5-60倍,但需要手动管理张量内存。
谷歌于 2026 年 7 月 9 日正式发布了 LiteRT.js,这是其设备端推理库 LiteRT(原 TensorFlow Lite)的 JavaScript 绑定。该工具允许开发者直接在浏览器中运行 .tflite 模型,推理过程完全在客户端完成,从而增强了用户隐私、降低了服务器成本并实现了超低延迟。
LiteRT.js 并非全新的模型格式,而是将谷歌现有的原生运行时编译为 WebAssembly,并通过 JavaScript 暴露接口。与早期依赖 JavaScript 内核的 TensorFlow.js 不同,LiteRT.js 直接集成了原生跨平台运行时的优化,因此 Web 应用能够自动受益于为 Android、iOS 和桌面端构建的性能改进、量化优化和硬件加速。
在运行时层面,LiteRT.js 支持三种后端:CPU 使用 XNNPACK(谷歌优化的 CPU 库,支持多线程和宽松 SIMD);GPU 通过 WebGPU 使用 ML Drift(谷歌的设备端 GPU 解决方案);NPU 则使用 WebNN API(目前在 Chrome 和 Edge 中处于实验阶段)。需要注意的是,LiteRT.js 不支持部分委派,即计算图不能在 CPU 和 GPU 之间拆分。委派是全有或全无的,如果模型无法完全委派给所选加速器,则会回退到 Wasm 执行。CPU 路径拥有最广泛的操作符支持。
性能方面,谷歌团队报告了两项关键结果:与其他 Web 运行时相比,在 CPU 和 GPU 推理上 LiteRT.js 速度提升高达 3 倍(涵盖经典计算机视觉和音频处理模型);与自身 CPU 执行相比,GPU 或 NPU 加速可带来 5 到 60 倍的提升(适用于实时物体跟踪和音频转录等任务)。这些基准测试在受控浏览器环境下使用 2024 款 MacBook Pro(M4 Apple Silicon)进行,谷歌指出实际结果因本地 GPU、热节流和驱动程序优化而异。
此外,LiteRT.js 引入了手动内存管理。每个张量(Tensor)必须显式调用 .delete() 方法,否则应用将泄漏设备内存。谷歌的公告代码片段中省略了这一关键步骤。对于 WebNN 后端,还需要额外设置 JSPI(JavaScript Promise Integration)标志来桥接同步内核调度与异步设备轮询。
在模型转换方面,LiteRT Torch 工具可以将 PyTorch 模型一步转换为 .tflite 格式,但要求模型必须可通过 torch.export.export 导出(即 TorchDynamo 可导出),不能包含依赖于运行时张量值的 Python 条件分支,且不能具有动态输入或输出维度(包括批次维度)。对于模型量化,AI Edge Quantizer 支持在不同网络层配置量化方案。预训练的 .tflite 模型可在 Kaggle 和 LiteRT Hugging Face 社区获取。
谷歌在发布时展示了四个示例应用:实时物体检测(使用 Ultralytics YOLO26)、来自网络摄像头的深度估计(Depth-Anything-V2)、图像超分辨率(Real-ESRGAN)以及语义搜索(EmbeddingGemma 向量搜索)。这些示例展示了 LiteRT.js 在不同场景下的能力。
与 TensorFlow.js 相比,LiteRT.js 主要定位于替代 TF.js Graph Models,而非整个库。TensorFlow.js 仍然推荐用于预处理和后处理任务,两者可通过 @litertjs/tfjs-interop 包实现张量互操作。需要注意的是,在 WebGPU 后端上应避免使用 tensor.dataSync。
总体而言,LiteRT.js 为 Web 端机器学习带来了原生级别的性能和硬件加速能力,但开发者需要适应手动内存管理的要求以及实验性 WebNN 的局限性。