ExecuTorch 1.6.0 推出了无需安装 PyTorch 即可运行模型的 Python 运行时,以及将多个语言模型请求批量处理的功能。部署模型的开发者可减少运行环境的依赖,并在基于 GPU 的服务中利用批量处理请求或复用先前计算的路径。
1. 减少模型运行环境对 PyTorch 的依赖
2026年11月12日发布的这一版本,其 Python 运行时可在没有 PyTorch 的情况下运行已导出的 .pte 模型文件。这一变化将模型准备环境与运行环境分开,从而减少部署端所需的依赖。
输入可通过 NumPy 数组、缓冲区或 DLPack 传递,DLPack 是一种在框架间交换数组的规范。加载运行时时,不再同时加载模型转换和编译相关模块,安装依赖中也移除了仅用于测试的包。这些变化直接影响配置模型运行环境的开发者。
2. 批量处理请求并复用公共前缀的计算
CUDA 和 MLX 的语言模型运行新增了批量服务和前缀缓存。除了同时处理多个请求,还可复用请求公共前缀的计算结果。服务运营者需关注的变化不仅涉及单个运算,也涉及请求处理流程。
CUDA 新增了批量请求执行器、前缀缓存复用和设备端采样,即在 GPU 上选择输出 token 的处理。保存模型此前已处理 token 信息的 KV 缓存,在 CUDA 图之外管理,CUDA 图用于将 GPU 任务组合执行。这意味着请求批处理与缓存管理均有调整。
该版本还支持提前提出下一个 token 候选的 DFlash 推测解码。MLX 新增了支持该功能的批量 KV 缓存,发布说明称,相关 GPU 语言模型功能已完全集成到 Muse Glimmer 中。
3. GPU 自动调优也面向小批量场景
CUDA 和 ROCm 新增了 INT4·INT5·INT6·INT8 量化矩阵乘法内核。这些内核是在 GPU 上执行计算的代码,使用降低精度的数值进行矩阵计算,并针对 token 生成阶段和小批量输入处理阶段自动调优。发布说明给出的小批量输入处理适用范围为 M ≤ 64。
自动调优是通过测试候选运算来选择实现的过程。此版本改为在 CUDA 图内测量候选项,以免 CPU 开销影响选择。开发者还可指定用于基准测试的示例输入,从而在调优时考虑实际使用的输入。
长上下文注意力,即在上下文中聚焦重要信息的计算处理,也得到改进。通过引入内核内的因果掩码,即防止引用未来 token 的限制方式,以及适配硬件的分块解码,该版本调整了引用先前 token 的计算与任务划分方式。
4. 扩展执行流和模型加载路径
实验性模块 executorch.runtime.cuda 允许在 Python 中选择 CUDA 流。这为希望在 Python 端指定 GPU 任务执行流程的开发者提供了控制入口。
另一项实验性功能 ExecuTorch Native 引入了可移植的 .ptn 程序,可在多种运行环境中使用。Vulkan 或 ggml 引擎在加载程序时将其转换为适合执行的形式。这种方式将适配模型文件与运行环境的部分工作转移到了加载阶段。
5. 部署依赖减少,环境迁移工作增加
Python 支持范围改为 3.11 至 3.15。CUDA wheel,即安装到 Python 中的分发包文件,新增了 13.4,移除了 12.6 和 13.0。若要新建运行环境,需在安装计划中考虑这一支持范围。
收益在于,可选择构建不含 PyTorch 的运行环境,并扩展 GPU 请求处理路径。但依赖 Python 3.10 或已移除 CUDA wheel 的环境需要迁移至受支持的版本,Jetson Orin 则必须从源码构建。这次更新需要同时评估依赖精简与现有部署流程的调整。
ExecuTorch 1.6.0 的核心在于,扩大轻量化运行环境的配置选择,同时加强 GPU 请求处理与缓存复用。
