开源Hugging Face Blog·原文 2026年10月20日本站收录 2026年10月21日

Hugging Face宣布PyTorch原生后端TorchTPU,Transformers、Diffusers可直接加载到TPU

Hugging Face博客介绍,TorchTPU把TPU变为PyTorch的又一个设备:装好后在Transformers中传device_map="tpu"、在Diffusers中调pipe.to("tpu") 即可运行模型;此前运行PyTorch on TPU需经torch_xla或改用JAX。

AI解读:TPU是Google自研的AI加速器,主要处理神经网络中的矩阵运算,可用于Google Cloud上从单芯片到数千芯片的pod,用于大规模训练和推理。此前其软件栈围绕TensorFlow和JAX发展,PyTorch用户接入较麻烦。

旧路径是经PyTorch/XLA(torch_xla),Hugging Face曾为模型在TPU上的推理和训练构建Optimum TPU。Hugging Face称,TorchTPU带来原生支持后,用Transformers和Diffusers运行Hugging Face模型不再需要Optimum TPU。

安装命令为pip install torch-tpu并附加 --extra-index-url https://download.pytorch.org/whl/cpu,以避免pip拉取更大的CUDA构建。TorchTPU包含为TPU调优的Pallas kernel、分布式训练支持和torch.compile集成。

Hugging Face称,在TPU上运行的Transformers测试中 96.5% 通过;已向TorchTPU仓库报告 34 个问题,其中 19 个已修复;TPU运行还发现Transformers自身StaticCache和Qwen3张量并行计划中的缺陷,并已在上游修复。

博客给出在Cloud TPU v6e-4上以TP=4、bf16、batch 1运行MiniMax-H3与Qwen-Image-2.1的部分耗时数据,以及接入Tokamax ragged-dot kernel后Qwen3-30B-A3B在batch size 64下解码提速 21.5 倍的对比;这些均为Hugging Face提供的测试结果。

Hugging Face在官方博客中宣布TorchTPU:一个把TPU作为新设备接入PyTorch的原生后端。按博客说法,用户安装后可在Transformers里通过device_map="tpu" 加载模型,在Diffusers里通过pipe.to("tpu") 运行管线,模型代码不需要改写为JAX或经torch_xla。

TorchTPU改变了什么

Hugging Face称,过去在TPU上运行PyTorch需要走PyTorch/XLA(torch_xla),存在张量惰性执行、小改动触发图重编译、调试困难等问题;Hugging Face曾构建Optimum TPU以便其模型在TPU上做推理和训练。博客称TorchTPU带来原生支持后,使用Transformers和Diffusers已不再需要Optimum TPU。

TorchTPU被描述为PyTorch的新后端,附带为TPU调优的Pallas kernel、分布式训练支持,以及可选的torch.compile集成。博客给出的安装方式是在TPU VM上执行pip install torch-tpu并指定https://download.pytorch.org/whl/cpu作为额外索引,以获取CPU版torch,避免下载不需要的CUDA构建。

  • 博客称TPU是Google自研AI加速器,主要承担神经网络的矩阵运算,Google已设计约十年,用于训练和提供包括Gemini在内的自家模型。
  • TPU在Google Cloud上提供,从单芯片到数千芯片的pod,博客称其适合大规模训练和推理。
  • 博客将TPU此前的限制归因于软件栈围绕TensorFlow和JAX发展,PyTorch用户接入成本更高。

Transformers、Diffusers和Kernels的具体用法

在Transformers中,博客示例用AutoModelForCausalLM.from_pretrained加载Qwen/Qwen3.5-9B并传入device_map="tpu",输入张量移到 "tpu" 后调用generate。模型默认以eager模式运行,也可改用torch.compile或分布式配置。

在Diffusers中,博客称TPU已是“一等设备”:eager模式只需pipe.to("tpu"),部署时可再加一次compile调用,管线代码无需维护TPU分支。对于单芯片放不下的模型,可向from_pretrained传TensorParallelConfig,在加载时把transformer分片到多芯片。

  • Kernels Hub提供可直接使用的TPU kernel,用Kernels库加载;TPU kernel以Pallas编写,也可引入Tokamax库的kernel。
  • 博客示例把Tokamax的ragged-dot kernel接入Qwen3-30B-A3B-Instruct-2507的Mixture-of-Experts模型。
  • Transformers v5的定位被描述为模型定义的来源,使模型可在包括TPU在内的不同设备上运行。

Hugging Face公布的测试与性能数字

Hugging Face称正在用Transformers测试套件持续改进TPU支持,计划加入TPU上的nightly CI并在Transformers CI dashboard展示结果。博客称在TPU上运行的测试中 96.5% 通过,尚未全部通过;每个失败会转成小复现脚本并提交到TorchTPU仓库,目前已报告 34 个问题,19 个已修复。

博客还称TPU运行发现了Transformers自身的缺陷,例如StaticCache和Qwen3张量并行计划中的问题,并已在上游修复。性能方面,博客给出在Cloud TPU v6e-4上以TP=4、bf16、batch 1运行MiniMax-H3(视频加音频)和Qwen-Image-2.1的部分耗时,以及接入Tokamax ragged-dot kernel后的解码吞吐对比:batch size 64时,Qwen3-30B-A3B解码快 21.5 倍,Gemma 4 26B-A4B快 12.8 倍,测试环境为TPU v6e-8。

  • Qwen-Image-2.1生成 1024×1024、40 步图像:compiled模式 3.5 秒,eager模式 8.0 秒(博客数据)。
  • MiniMax-H3示例为 1344×768、5.2 秒、49 步:compiled 188秒,eager 262秒(博客数据)。
  • 上述数字来自Hugging Face的单项示例和对比,未给出与其它硬件或默认实现的完整基准条件说明。

信息来源

Hugging Face Blog原始来源