Google AI Edge 推出 ML Drift,为端侧 AI 推理提供统一 GPU 计算框架,抽象 OpenGL ES、OpenCL、Metal 和 WebGPU 等底层接口。框架面向移动端与桌面端的实时视频效果、生成式 AI 等应用。
Google AI Edge 团队很高兴地宣布,ML Drift 正式以 Apache 2.0 许可证开源。它是一款高性能、跨平台的设备端 GPU 计算引擎,专为设备端 AI/ML 推理打造。ML Drift 封装了设备端 GPU 在 OpenGL ES、OpenCL、Metal 和 WebGPU 上的硬件差异与底层 API 复杂性,让开发者能够在多个平台上构建实时、交互式的 ML 体验,从高级视频特效到生成式 AI 都能支持。ML Drift 是 LiteRT 的核心 GPU 加速引擎,同时也提供独立库,供自定义图形与推理运行时使用,为各个平台发挥最佳性能提供统一基础。
在数据中心进行推理时,模型运行在硬件同构、行为可预测的加速器集群上。而将 GPU 加速的 AI 部署到边缘设备,面对的则是显著的硬件多样性。开发者需要应对各种 GPU 架构、驱动版本和底层 API,而且无法事先知道应用究竟会运行在哪种硬件上。
TensorFlow Lite GPU delegate 为 GPU 加速奠定了基础,但此后的生态已经发生变化:如今的设备端工作负载覆盖了广泛的场景,从实时计算机视觉、音频和深度处理模型,到参数量庞大的生成式 AI。这些架构将消费级芯片推向极限,造成了旧版运行时在设计之初并未考虑解决的计算与内存瓶颈。
这种变化要求我们建立一套通用的工程基础,确保传统模型和新一代模型都能兼顾可移植性与性能。借鉴《Speed is all you need》中讨论的优化原则,我们构建了一个统一框架,既为传统 ML 提供稳定性,又能让最先进的生成式 AI 发挥最佳性能,确保你的模型运行在我们最高效、面向未来的 GPU 计算引擎上。
为了让传统架构和生成式架构都能获得最佳性能,并扩大模型覆盖范围,ML Drift 相比旧版 TFLite GPU delegate 引入了核心架构变更与结构性升级。
通过 Tensor Virtualization 统一 Shader: 过去,为 TFLite GPU delegate 维护优化后的 shader,需要分别在 OpenGL、OpenCL 和 Metal 后端中,将逻辑 tensor 到物理 GPU 对象(如纹理和 buffer)的映射直接硬编码进去。ML Drift 引入了 tensor virtualization 这一核心架构范式,将 tensor 的逻辑表示与它在 GPU 上的物理内存分配解耦。动态 shader 模板会在编译器初始化阶段解析并转换坐标,因此,这种统一的 shader 模型消除了维护多套后端专用 shader 代码的需要,只引入极少的运行时开销,同时保留了模型的跨平台可移植性。
可扩展的 Custom Op 框架: ML Drift 采用了现代化的 custom op 框架,提供直接注册 API,并允许使用底层 shading language。为了加快开发,ML Drift 附带了一份面向 Agent 的 SKILL.md 指南,让 coding agents 能在几分钟内编写、注册并验证高性能 custom shader。开发者由此能够精细控制,将专用模型模块直接集成到执行图中,大幅降低部署自有架构的门槛。
支持 5D Tensor: TFLite GPU delegate 在结构上被硬编码为只支持 4D tensor,迫使开发者在处理需要 5D tensor 的复杂模型时,采用一些绕过限制的布局技巧。ML Drift 在新的 LiteRT ML Drift GPU accelerator 中补上了这项早该提供的功能,开箱即用地支持 5D tensor。这样一来,LiteRT 就能直接在边缘 GPU 上执行复杂工作负载,包括用于体积数据或空间 AI 的 3D 卷积网络,以及时空模型,例如 YOLO 11n、MobileViT v2 和 Swin Transformer v2。
传统模型的性能升级: 作为旧版 GPU 后端的直接继任者,ML Drift 为现有传统工作负载带来了实实在在的性能提升。通过将运行时与硬件特定约束解耦,并提高 kernel 执行效率,原本已经运行在 TFLite GPU 上的模型可以立即获得性能改善。迁移过程力求简单,旧有工作负载的表现能够达到或超过此前的 benchmark。
针对边缘 LLM 不同阶段的优化: 自回归 LLM 在推理过程中有两种不同的计算工作负载:受计算能力限制的 KV cache prefill 阶段,以及受内存带宽限制、逐个生成 token 的 decode 阶段。ML Drift 会根据当前执行阶段,动态切换 kernel 和布局配置。在 decode 阶段,它使用与卷积对齐的自定义 KV cache 布局,并在 kernel 内进行积极的 activation quantization,以避免多余的内存往返访问。
扩展平台支持(桌面端预览): 在如今兴起的 Agent 编程时代,响应迅速的桌面端推理,对于本地 coding agents 和工作站工作流越来越重要。我们最初为浏览器内加速开发了 ML Drift 的 WebGPU 后端,而 Dawn(Chromium 的 WebGPU 实现)让我们能够将完全相同的代码库编译为浏览器之外的原生程序。这种统一的 API 模型让 ML Drift 可以运行在 Windows 和 Linux 上,利用 WebGPU 现代化的原生硬件抽象,绕过 DirectX 和 Vulkan 的碎片化问题,同时与我们在 macOS 上已有的高性能原生 Metal 后端形成互补。
我们的首要目标,仍然是在资源约束最严格的移动设备和边缘设备上,提供轻量、可用于生产环境的推理能力。不过,本地开发也需要灵活支持不同的开发者电脑。下面展示了 ML Drift 在工作站硬件上运行 Gemma 模型的早期结果,说明我们的统一运行时如何适配不同环境。
无论是边缘设备还是工作站,峰值吞吐量都只反映了一半情况:内存占用决定了哪些工作负载能够真正并发运行。在我们的 Gemma benchmark 中,ML Drift 的内存开销相比其他框架最多降低 12%,为其他本地任务腾出了内存。
ML Drift 已经投入生产,每天运行在数百万台设备上,为 Google 生态中的关键功能提供支持,包括 Chrome、YouTube Shorts、Photos 和 Meet。在前沿应用中,它也充当了开创性设备端能力的运行时,为 Gallery、Foresight 和 Eloquent 等 Google AI Edge 应用提供支持。
YouTube Shorts 已将基于分割的特效迁移到 ML Drift。迁移后,Android 和 iOS 上的平均帧延迟最多降低了 40%,让创作者能够实时应用高保真视觉特效,同时避免摄像头画面掉帧。
Sorry, your browser doesn't support playback for this video
为了提供快速、流畅的设备端照片编辑体验,Google Photos 团队将 ML Drift 集成到了计算摄影和分割处理流水线中。与旧版 GPU delegate 相比,这让处理耗时最多缩短了 2 秒,使高级照片增强操作几乎瞬间完成。
Sorry, your browser doesn't support playback for this video
Google Chrome 将 ML Drift 集成到了其 AI 运行时基础设施中,为 Built-In AI APIs(包括 Prompt、Summarize 和 Writer APIs)所使用的 Gemini Nano 模型提供原生硬件加速。在各个桌面平台上,ML Drift 为不断壮大的 Web 应用生态提供高效的设备端 AI 能力,应用场景涵盖电商评论摘要和企业客户工作流:
Sorry, your browser doesn't support playback for this video
除了 Google 产品,领先的开发者合作伙伴也已采用 ML Drift,为移动用户带来桌面级能力:
Adobe Lightroom 和 Adobe Photoshop 使用 ML Drift 升级了关键 AI 功能,包括 Select Subject、Select Sky 和 Adaptive Portrait,设备端性能最多提升 30%,让移动端也能实现专业品质的照片编辑。
Sorry, your browser doesn't support playback for this video
Snap 集成了 LiteRT,在 Android 设备上使用 GPU 进行设备端推理。ML Drift GPU accelerator 让 Snapchat lenses 中由 ML 驱动的人脸与风格生成特效的模型延迟改善了 30%。ML Drift 不仅改善了现有模型带来的用户体验,还扩展了能力,使大型 diffusion models 也能运行。
Sorry, your browser doesn't support playback for this video
要最大化边缘 AI 的效率,软件架构必须与实际芯片深度配合。在 ML Drift 的整个开发过程中,Google 与芯片及 IP 合作伙伴紧密协作,通过优化充分发挥现代 GPU 的硬件利用率:
Arm: 共同优化 Mali 和 Immortalis GPU 的 compute kernel 与纹理缓存局部性,确保移动设备上的推理兼具高吞吐量与低功耗。
Intel: ML Drift 利用原生 WebGPU compute 和 Xe Matrix Extensions(XMX),加速搭载 Xe3 显卡的 Intel® Core™ Ultra 处理器上的客户端 LLM 与视觉工作负载。
Qualcomm Technologies, Inc.: ML Drift 优化了 OpenCL kernel,以充分利用 ALU 和内存带宽,在 Qualcomm® Adreno™ GPU 上实现高效的边缘 AI 加速。
通过与芯片领域的领先企业密切合作,ML Drift 确保先进的模型优化能够转化为用户设备上的高帧率表现,同时兼顾电池续航。
随着 ML Drift 发布,旧版 TFLite GPU delegate 将不再获得新功能更新。我们鼓励所有开发者迁移到 LiteRT ML Drift GPU accelerator。它完全向后兼容现有模型,同时能立即在 Android、iOS、Web 和桌面平台上带来现代化的性能提升。对于使用非捆绑运行时来减小应用二进制体积的 Android 开发者,独立 LiteRT 软件包现在已经提供 ML Drift 加速,LiteRT in Google Play Services 也将很快支持。
无论你是要将设备端模型集成到应用中,还是编写自定义 GPU shader,ML Drift 都提供了两条简单直接的路径:
面向应用开发者: 使用 LiteRT ML Drift accelerator,即可开箱即用地获得模型分区、tensor virtualization 和优化后的 LLM 加速能力。
面向 GPU 与系统工程师: 通过 ML Drift GitHub 仓库,直接使用 ML Drift 的独立 C++ APIs,构建自定义 GpuModel 计算图并编写 custom shader(可从我们的 Android OpenCL 和基于 Dawn 的 WebGPU 快速入门指南开始)。
ML Drift 完全开源,采用 Apache 2.0 许可证。我们欢迎代码贡献、RFC 和社区反馈:
源代码: github.com/google-ai-edge/ml-drift
问题追踪与功能请求: 在 GitHub 上提交 Issue。
讨论与问答: Google AI Edge Community Forum。
参与贡献: 阅读我们的 Contributing Guide,添加新的 UCL operator 或针对特定硬件的优化。
Andrei Kulik、Ankit Goyal、Bob Liu、Byungchul Kim、Champ Yen、Changming Sun、Chris McClanahan、Clark Duvall、Cormac Brick、Daniel Ho、David Neto、Ekaterina Ignasheva、Fengwu Yao、Frank Ban、Gerardo Carranza、Grant Jensen、Jacob Dormuth、Jagadeesh Pakaravoor、James Price、Jeremy Kemp、Jingjiang Li、Jiuqiang Tang、Kelvin Ma、Ken Russell、Kenji Baheux、Lin Chen、Loko Kung、Lu Wang、Marissa Ikonomidis、Matt Kreileder、Matthias Grundmann、Mattias Simonsson、Paweł Andruszkiewicz、Raman Sarokin、Romaric Jodin、Sachin Kotwani、Somdatta Banerjee、Suleman Shahid、Suril Shah、Terry Heo、Tyler Mullen、Vaibhav Jain、Weiyi Wang、Yu-Hui Chen
一并感谢各位合作伙伴:Albin Bernhardsson、Aleksei Lebedev、Anuradha Oberoi、Arselan Alvi、Bala Gattu、Enxing Xiong、Erin Di Leva、Hannah Stabingas、Jianhui Dai、Jiawei Shao、Jie Chen、Joseph Hsieh、Komal Desai、M N Suhas、Magzhan Gabidolla、My Linh Van、Ningxin Hu、Padmassri Chandrashekar、Rong Wang、Varun Chari、Viktor Zhou、Zhaoliang Ma