Google开源XSE引擎,移除Python依赖提升推理性能

Google开源XSE引擎,移除Python依赖提升推理性能。该组件专注小模型高QPS场景,已在YouTube等服务落地,实测吞吐量提升2至5倍,内存占用降至四分之一。

“用 Python 训练,用 C++服务”或许正成为 Google 在机器学习基础设施领域的核心策略。

吞吐量提升2至5倍

尽管 Python 因其易用性深受数据科学家青睐,但在生产环境中保留 Python 解释器往往带来额外的开销与部署复杂性。旨在解决这一问题的 OpenXLA 项目提供了将机器学习计算编译为不同处理器原生代码的工具链。

该项目最新的开源组件名为 XSE(XLA Service Engine)。

针对一次性推断优化

XSE 并非为大规模 LLM 推理设计(此类场景通常由 vLLM 或 SGLang 胜任),而是专注于更小、更敏捷的任务导向型模型,这类模型在 Google 内部应用广泛。

Google 产品管理主任 Nathan Beach 周二在 LinkedIn 上指出,虽然当前舆论焦点集中在 LLM 服务上,但大量生产环境中的推理任务仍涉及排名、推荐、嵌入和视觉模型。这些模型处理的是高每秒查询量(QPS)且对延迟预算要求严格的短请求。

在 Google 内部,XSE 已在 YouTube Shorts、Google Ads 和搜索等服务中投入运行,每秒处理超过 600 万个查询。

这些模型并非用于生成式聊天,而是即时执行搜索结果排名、视频推荐及其他决策逻辑。

测试数据显示,在处理短请求时,XSE 相比经过优化的 Python 服务器实现了两到五倍的吞吐量提升,同时内存占用仅为四分之一。若不使用 XSE,Python 运行时可能成为性能瓶颈。

移除 Python 依赖

在该架构下,机器学习工程师使用 Python 编写模型代码,并借助 Google 的 JAX 进行计算。Google 还计划集成 TorchTPU,使 PyTorch 用户能够将模型导出为适用于 TPU 的 C++格式。通过导出工具,模型的计算过程被封装在 StableHLO 中——这是一种可移植的中间表示形式,并与训练权重一同存储在“XLA SavedModel”中。

在实际服务阶段,C++ 运行时利用 XLA 将这些计算编译为目标硬件的原生代码,整个流程不再需要 Python 解释器参与。

XLA SavedModels 支持在 GPU 和 CPU 上运行。Google 已与 Arm 和 Intel 合作构建 XLA 生态系统,但该公司显然认为在其自研的 TPU 加速器系列上运行模型具有显著优势。

Python 的性能瓶颈仍是机器学习社区面临的挑战。除 XSE 外,业界还有其他尝试尽快脱离 Python 代码的方案。例如,PyTorch 提供了名为 LibTorch 的 C++ 运行时;Microsoft 及其合作伙伴则推出了 ONNX 运行时,支持带有 Python 绑定的开放图形格式。

值得注意的是,即便是 Python 自身的参考实现也严重依赖 C 语言,而 Rust 也开始进入这一领域。

评论 0

0/500

评论需审核后展示,请文明发言

💬
还没有评论,来说两句

相关阅读