在当今数字化时代,人工智能已经逐渐渗透到我们的日常生活和工作中。作为互联网主要入口之一的浏览器,如何高效运行AI模型,成为提升用户体验的重要课题。Mozilla Firefox针对这一挑战,研发了本地AI运行时系统,赋能浏览器内诸多智能功能,包括PDF.js生成的替代文本和智能标签分组。然而,性能优化始终是提升用户感知速度的关键因素,Firefox团队针对初版AI运行时存在的速度瓶颈,采取了一系列创新技术,实现了多倍性能提升。 Firefox AI运行时最初基于Transformers.js,这是一款与Hugging Face Python库相配套的JavaScript类库。其核心执行依赖onnxruntime-web,也就是ONNX Runtime的WebAssembly(WASM)版本。
推理流程包括JavaScript端的预处理(如分词、张量整形)、WASM环境中模型执行以及后处理环节。尽管WASM SIMD技术的引入提升了一定的运算效率,但由于无法充分利用硬件特定指令集,如苹果芯片的NEON及现代Intel处理器的AVX-512,性能依然受限。 针对上述限制,Firefox团队借鉴了既有项目Firefox Translations中已经验证成功的本地代码加速方案。该项目使用WASM内置的钩子机制,允许WASM直接调用用C++编译并含有硬件加速指令的代码,从而显著提升了速度。尽管尝试将该技术逐步应用于ONNX Runtime,但由于ONNX包含大量复杂算子,实现一对一移植难度极大,且每次冷启动仍面临JS与WASM加载带来的时间开销。 解决方案由点到面是Firefox团队的突破所在。
Transformers.js通过简洁的接口与ONNX Runtime交互,形成了创建会话、推送张量及获取结果的统一流程。这使得后端替换变得相对容易。团队最终选择将ONNX Runtime C++版本直接内嵌进Firefox代码库,通过轻量级的WebIDL层暴露API给JavaScript,并将Transformers.js对接到这一新后端。对于调用方而言,如PDF替代文本功能依旧使用熟悉的await pipeline(...)方式,无需改动任何功能代码,推理过程则直接进入本地C++实现,性能大幅提升。 构建与集成方面,ONNX Runtime代码体量庞大且默认不完全兼容Firefox构建系统。为避免影响主分支构建速度并降低维护难度,团队采用了较为灵活的方式。
通过配置标志,编译后的ONNX Runtime可在构建时自动从任务集群(Taskcluster)下载或者由开发者手动提供。构建过程中,团队对上游代码进行了必要补丁调整,关闭异常处理和RTTI,使用最小尺寸发布配置及链接时间优化(LTO),在性能与二进制体积间取得平衡。同时确保与Firefox原生代码要求完美兼容。 这种本地后端的替换带来了显著性能优势。早期实测表明推理速度提升幅度介于2到10倍不等,同时消除了WASM启动时的热身开销。以智能标签分组中的主题建议功能为例,首次运行期间明显流畅不少,已经在Firefox 142版本逐步推广。
此外,PDF.js替代文本的图像转文本模型推理延迟从3.5秒骤降至约350毫秒,极大提升了功能响应速度与用户体验。 性能优化的工作并未止步于此。团队还针对推理关键瓶颈环节展开专项研究。DequantizeLinear作为典型的单线程算子,往往占据绝大部分推理时间。通过自研多线程补丁,将任务有效划分至多核心执行,并使编译器自动向量化内层循环,实现了几乎线性加速,特别适合多核机器环境。类似地,矩阵转置这一典型大规模数据操作也由原先的简单嵌套循环转为多线程缓存感知式的分块转置技术,结合SIMD指令优化,使得整体速度获得超线性提升,例如四线程可实现约8倍加速。
这与原本仅靠自动向量化但缓存利用率低的方案形成鲜明对比。 编译图缓存策略是另一大亮点。在运行推理前,ONNX Runtime需要为当前平台编译模型图,这一过程对大型模型往往耗时五秒左右。通过动态缓存已编译图,后续调用能够显著减少启动延迟,从数毫秒到数秒不等的时间提升显著改善整体用户等待感。 除了CPU加速,下一步工作重点是引入GPU支持。GPU推理能够带来更高性能,但也对安全沙盒机制提出更高要求。
Firefox团队正积极研究如何安全规范地调用底层硬件,实现GPU加速的本地AI推理,预期这将进一步推动Transformer.js及相关特性的性能上限。 此次向本地C++后端迁移的一大优势是渐进式、无缝切换,功能代码无需变动,开发与发布均高度灵活。Firefox团队借助这一机制,计划将基于Transformers.js的所有AI能力逐步切换至性能更优的新后端,保障未来的提升空间。同时多线程、缓存、GPU等多方面优化潜力巨大,预计用户体验提升可持续推进。 此举不仅呈现出了浏览器端AI技术创新的典范,还体现了开源生态中跨语言、跨架构协作的技术魅力。保证用户隐私、安全的同时,为AI应用铺设了高效基础,扩大了人工智能在广泛用户群体中的影响力。
展望未来,随着硬件持续进步及软件生态不断完善,Firefox本地AI运行时将在稳定性、性能和可扩展性上不断突破。基于本地推理的智能功能将更智能、更快速,深度融合日常浏览及生产力工具。Mozilla坚持开放协作精神,鼓励社区用户和开发者提出宝贵反馈,推动Firefox成为性能卓越、隐私优先的智能浏览器典范。 总结来看,Firefox本地AI运行时从软件架构设计到底层性能优化,经历了精妙融合与反复打磨。改革性的C++后端集成和多线程优化,不仅让智能功能响应更迅捷,也为未来GPU加速铺平道路。作为浏览器领域的一大创新尝试,Firefox在保证用户隐私的前提下,让AI融入日常上网场景中,带来便捷与智能的完美结合。
未来可期,值得广大用户与开发者持续关注和体验。 。