Transformers documentation

内核

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

内核

PyTorch 操作是通用的。硬件厂商和社区会创建针对特定平台运行速度更快的专用实现。安装这些优化内核是一项挑战,因为它需要匹配编译器版本、CUDA 工具包以及特定平台的构建。

平台支持的设备
NVIDIA GPU(CUDA)计算能力 7.0 及以上的现代架构(Volta、Turing、Ampere、Hopper、Blackwell)
AMD GPU(ROCm)兼容支持 ROCm 的设备
Apple Silicon(Metal)M 系列芯片(M1、M2、M3、M4 及更新版本)
Intel GPU(XPU)Intel 数据中心 GPU Max 系列及兼容设备

Kernels 通过 Hub 分发预编译的二进制文件来解决此问题。它会在运行时检测您的平台,并自动加载相应的二进制文件。

当 use_kernels=True 时,Transformers 会识别具有可用优化内核实现的层。仅在需要时从 Hub 下载并 缓存 内核,以减少启动时间。内核可加速注意力、归一化及融合操作等计算密集型操作。

并非所有操作都有内核实现。当没有可用的内核时,该库会回退到标准 PyTorch。

确定性

某些内核由于操作重排序或累加策略,产生的结果与 PyTorch 略有不同。这些差异在功能上是等价的,但会影响可复现性。

如需实现确定性行为,请尝试以下操作。

  • 请查阅内核仓库的文档以了解确定性保证。例如,gpt-oss-metal-kernels 中的 SDPA 内核在 97% 的情况下与 PyTorch 实现的结果一致。
  • 禁用影响您使用场景的特定内核。
  • 设置随机种子和 PyTorch 确定性标志。

资源

Update on GitHub