TransformerEngine

GitHub
3.3k 698 中等 1 次阅读 今天Apache-2.0开发框架
AI 解读 由 AI 自动生成,仅供参考

Transformer Engine 是 NVIDIA 推出的一款专用加速库,旨在显著提升 Transformer 模型在 NVIDIA GPU 上的训练与推理效率。随着大语言模型参数量的激增,传统方法往往面临显存占用高、计算速度慢的瓶颈,且主流深度学习框架尚未原生支持高效的低精度格式。Transformer Engine 通过提供高度优化的构建模块和类似自动混合精度的易用 API,完美解决了这一难题。

该工具的核心亮点在于其对先进低精度格式的广泛支持。它不仅能在 Hopper、Ada 及最新的 Blackwell 架构 GPU 上利用 8 位浮点(FP8)技术,在 Blackwell 上还进一步支持 MXFP8 和 NVFP4 格式。这些技术能够在几乎不损失模型精度的前提下,大幅降低内存需求并提升吞吐量,实现媲美 16 位精度的训练效果与 4 位精度的运行效率。

Transformer Engine 非常适合从事大模型研发的 AI 工程师、算法研究人员以及需要优化模型部署性能的开发团队。无论是使用 PyTorch 等主流框架进行模型预训练,还是构建高效的推理服务,它都能无缝集成到现有工作流中,帮助用户以更低的硬件成本应对日益复杂的模型挑战。

使用场景

某大型金融科技公司正试图在单台搭载 NVIDIA H100 GPU 的服务器上,从头预训练一个拥有 700 亿参数的垂直领域大语言模型,以处理复杂的合规文档分析任务。

没有 TransformerEngine 时

  • 显存严重瓶颈:使用传统的 FP16 混合精度训练时,模型权重、梯度及优化器状态占用了绝大部分显存,导致无法增大 Batch Size,甚至需要耗费巨资增加额外显卡才能跑通流程。
  • 计算吞吐量低:由于缺乏对 FP8 数据格式的原生支持,GPU 的 Tensor Core 无法发挥最大算力,训练速度缓慢,预计完整训练周期将长达数月,严重影响业务上线时间。
  • 开发改造成本高:团队需要手动重写大量的底层 CUDA 内核或修改框架源码来尝试实现低精度训练,不仅容易引入数值不稳定导致模型不收敛,还极大地增加了维护负担。

使用 TransformerEngine 后

  • 显存占用大幅降低:借助 TransformerEngine 提供的自动 FP8 混合精度支持,模型训练时的显存占用减少了近 50%,使得在原有硬件配置下即可轻松容纳更大的 Batch Size,提升了训练稳定性。
  • 训练速度显著飞跃:通过调用针对 Hopper 架构优化的 FP8 内核,TransformerEngine 让矩阵乘法等核心算子的吞吐量提升了 2 倍以上,将原本数月的训练周期缩短至数周。
  • 无缝集成与高精度:开发者只需替换少量的 Python API 模块即可启用加速,无需关心底层细节;同时其内置的缩放因子管理机制确保了模型在低精度下的收敛效果与 FP32 相当,避免了精度损失。

TransformerEngine 通过原生支持先进的 FP8 精度,在不牺牲模型质量的前提下,彻底打破了大规模 Transformer 模型训练的显存墙与算力瓶颈。

运行环境要求

操作系统
  • Linux
  • WSL2 (有限支持)
GPU
  • 必需 NVIDIA GPU
  • 支持架构:Blackwell, Hopper, Grace Hopper/Blackwell, Ada, Ampere
  • FP8 功能需计算能力 8.9+ (Ada/Hopper/Blackwell)
  • CUDA 版本要求:12.1+ (Hopper/Ada/Ampere),12.8+ (Blackwell)
  • 需安装兼容的 NVIDIA 驱动
内存

未说明 (但在编译 FlashAttention-2 时已知需要大量 RAM,否则可能内存溢出)

依赖
notes1. FP8 特性仅在特定新一代 GPU (Ada, Hopper, Blackwell) 上可用;Blackwell 还支持 MXFP8 和 NVFP4 格式。2. 推荐使用 NVIDIA NGC Docker 容器以快速获取预装好所有依赖的环境。3. 若从源码编译且涉及 FlashAttention-2,建议设置环境变量 MAX_JOBS=1 以防止因编译资源消耗过大导致的内存溢出错误。4. 需确保 PyTorch 与 Transformer Engine 的 C++ ABI 设置一致以避免导入错误。
python推荐 3.12
CUDA Toolkit 12.1+/12.8+
cuDNN 9.3+
GCC 9+ 或 Clang 10+ (支持 C++17)
CMake 3.18+ (源码编译)
Ninja (源码编译)
pybind11 2.6.0+ (源码编译)
PyTorch (可选)
JAX/Flax (可选)
FlashAttention-2 或 FlashAttention-3 (可选,用于性能优化)
TransformerEngine hero image

快速开始

.. 版权所有 © 2022-2026,NVIDIA公司及其关联公司。保留所有权利。

有关许可信息,请参阅 LICENSE。

|许可证|

Transformer Engine

快速入门 <#examples>_ | 安装 <#installation>_ | 用户指南 <https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/index.html>_ | 示例 <https://github.com/NVIDIA/TransformerEngine/tree/main/examples>_ | 收敛性 <#convergence>_ | 集成 <#integrations>_ | 发布说明 <https://docs.nvidia.com/deeplearning/transformer-engine/documentation-archive.html>_

最新消息

  • [12/2025] NVIDIA Nemotron 3:高效开放的智能 <https://arxiv.org/abs/2512.20856>_ - 使用 Transformer Engine 上的 NVFP4 训练
  • [11/2025] NVIDIA Blackwell 架构横扫 MLPerf 训练 v5.1 基准测试 <https://developer.nvidia.com/blog/nvidia-blackwell-architecture-sweeps-mlperf-training-v5-1-benchmarks/>_
  • [11/2025] 使用 PyTorch 和 NVIDIA BioNeMo 配方扩展生物学 Transformer 模型 <https://developer.nvidia.com/blog/scale-biology-transformer-models-with-pytorch-and-nvidia-bionemo-recipes/>_
  • [11/2025] 大规模 RL 模型的 FP8 训练 <https://lmsys.org/blog/2025-11-25-fp8-rl/>_
  • [09/2025] 使用 NVFP4 预训练大型语言模型 <https://www.arxiv.org/pdf/2509.25149>_
  • [09/2025] Ling 2.0 的原生 FP8 混合精度训练已开源!<https://huggingface.co/blog/im0qianqian/ling-mini-2-fp8-mixed-precision-training-solution>_
  • [09/2025] 借助 NVIDIA NeMo,在 FP8 精度下实现更快的训练吞吐量 <https://developer.nvidia.com/blog/faster-training-throughput-in-fp8-precision-with-nvidia-nemo/>_
  • [08/2025] 我们如何使用 FP8 进行训练和推理来构建 DeepL 的下一代 LLM <https://www.deepl.com/en/blog/tech/next-generation-llm-fp8-training>_
  • [08/2025] NVFP4 以 16 位精度进行训练,同时兼具 4 位的高速与高效 <https://developer.nvidia.com/blog/nvfp4-trains-with-precision-of-16-bit-and-speed-and-efficiency-of-4-bit/>_

往期新闻 <#previous-news>_

什么是 Transformer Engine?

.. overview-begin-marker-do-not-remove

Transformer Engine (TE) 是一个用于在 NVIDIA GPU 上加速 Transformer 模型的库,包括在 Hopper、Ada 和 Blackwell GPU 上使用 8 位浮点数 (FP8) 精度,从而在训练和推理中提供更好的性能以及更低的内存占用。在 Blackwell GPU 上,TE 还支持 MXFP8(微缩放 FP8)和 NVFP4 格式,以实现更高的效率。TE 提供了一系列针对流行 Transformer 架构的高度优化的构建模块,以及一个类似自动混合精度的 API,可以与您特定框架的代码无缝集成。此外,TE 还包含一个框架无关的 C++ API,可与其他深度学习库集成,以启用 Transformer 的 FP8 支持。

随着 Transformer 模型参数数量的持续增长,诸如 BERT、GPT 和 T5 等架构的训练和推理变得非常消耗内存和计算资源。大多数深度学习框架默认使用 FP32 进行训练。然而,对于许多深度学习模型来说,这并不是实现完全准确性的必要条件。通过混合精度训练,在训练模型时将单精度 (FP32) 与较低精度格式(例如 FP16)相结合,可以在与 FP32 训练相比几乎没有精度损失的情况下显著提高速度。随着 Hopper GPU 架构的推出,FP8 精度被引入,它在不降低精度的情况下提供了比 FP16 更好的性能。尽管所有主要的深度学习框架都支持 FP16,但目前框架本身并不原生支持 FP8。

TE 通过提供与流行的大型语言模型 (LLM) 库集成的 API 来解决 FP8 支持的问题。它提供了一个由模块组成的 Python API,可以轻松构建 Transformer 层;同时还提供了一个框架无关的 C++ 库,其中包含用于 FP8 支持所需的结构体和内核。TE 提供的模块会在内部维护 FP8 训练所需的缩放因子和其他值,从而大大简化了用户的混合精度训练过程。

亮点

  • 易于使用的模块,用于构建支持 FP8 的 Transformer 层
  • 针对 Transformer 模型的优化(例如融合内核)
  • 支持 NVIDIA Hopper、Ada 和 Blackwell GPU 上的 FP8
  • 支持 NVIDIA Blackwell GPU 上的 MXFP8 和 NVFP4
  • 支持 NVIDIA Ampere GPU 架构及更高版本上所有精度(FP16、BF16)的优化

示例

PyTorch ^^^^^^^

.. code-block:: python

import torch import transformer_engine.pytorch as te from transformer_engine.common import recipe

设置维度。

in_features = 768 out_features = 3072 hidden_size = 2048

初始化模型和输入。

model = te.Linear(in_features, out_features, bias=True) inp = torch.randn(hidden_size, in_features, device="cuda")

创建 FP8 配方。注意:所有输入参数都是可选的。

fp8_recipe = recipe.DelayedScaling(margin=0, fp8_format=recipe.Format.E4M3)

启用前向传播的自动转换

with te.autocast(enabled=True,recipe=fp8_recipe): out = model(inp

loss = out.sum() loss.backward()

JAX ^^^

Flax


.. code-block:: python

  import flax
  import jax
  import jax.numpy as jnp
  import transformer_engine.jax as te
  import transformer_engine.jax.flax as te_flax
  from transformer_engine.common import recipe

  BATCH = 32
  SEQLEN = 128
  HIDDEN = 1024

  # 初始化随机数生成器和输入。
  rng = jax.random.PRNGKey(0)
  init_rng,data_rng = jax.random.split(rng)
  inp = jax.random.normal(data_rng,[BATCH,SEQLEN,HIDDEN], jnp.float32)

  # 创建 FP8 配方。注意:所有输入参数都是可选的。
  fp8_recipe = recipe.DelayedScaling(margin=0,fp8_format=recipe.Format.HYBRID)

  # 启用前向传播的自动转换
  with te.autocast(enabled=True,recipe=fp8_recipe):
      model = te_flax.DenseGeneral(features=HIDDEN)

      def loss_fn(params,other_vars,inp):
        out = model.apply({'params':params,**other_vars}, inp)
        return jnp.mean(out)

      # 初始化模型。
      variables = model.init(init_rng,inp)
      other_variables,params = flax.core.pop(variables,'params')

      # 构建前向和反向函数
      fwd_bwd_fn = jax.value_and_grad(loss_fn,argnums=(0,1))

      for _ in range(10):
        loss,(param_grads,other_grads) = fwd_bwd_fn(params,other_variables,inp)

如需更全面的教程,请查看我们的《入门指南》:<https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/getting_started.html>。

.. overview-end-marker-do-not-remove

安装
============

系统要求
^^^^^^^^^^^^^^^^^^^

* **硬件:** Blackwell、Hopper、Grace Hopper/Blackwell、Ada、Ampere

* **操作系统:** Linux(官方支持)、WSL2(有限支持)

* **软件:**

* CUDA:12.1+(Hopper/Ada/Ampere)、12.8+(Blackwell),需搭配兼容的 NVIDIA 驱动程序
  * cuDNN:9.3+
  * 编译器:支持 C++17 的 GCC 9+ 或 Clang 10+
  * Python:推荐使用 3.12

* **源码构建要求**:CMake 3.18+、Ninja、Git 2.17+、pybind11 2.6.0+

* **注**:FP8 功能需要计算能力 8.9+(Ada/Hopper/Blackwell)

安装方法
^^^^^^^^^^^^^^^^^^^^

Docker(推荐)
^^^^^^^^^^^^^^^^^^^^
开始使用 Transformer Engine 最快捷的方式是在 `NVIDIA GPU Cloud (NGC) 目录 <https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch>`_ 上使用 Docker 镜像。


例如,要以交互方式使用 NGC PyTorch 容器,

.. code-block:: bash

    docker run --gpus all -it --rm nvcr.io/nvidia/pytorch:26.01-py3

例如,要以交互方式使用 NGC JAX 容器,

.. code-block:: bash

    docker run --gpus all -it --rm nvcr.io/nvidia/jax:26.01-py3

其中 26.01(对应于 2026 年 1 月发布的版本)是容器版本。

我们建议更新到此处提供的最新 NGC 容器:

* https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch
* https://catalog.ngc.nvidia.com/orgs/nvidia/containers/jax

如果您运行任何示例,请确保使用与之匹配的 TransformerEngine 版本。TransformerEngine 已在容器中预构建并打包,示例位于 ``/opt/transformerengine`` 或 ``/opt/transformer-engine``。

**使用 NGC 容器的好处**:

* 所有依赖项均已预装,并配有兼容版本和优化配置

pip 安装
^^^^^^^^^^^^^^^^

**pip 安装的前提条件**:

* 兼容的 C++ 编译器
* 如果从源码安装,则需要带有 cuDNN 和 NVCC(NVIDIA CUDA 编译器)的 CUDA 工具包。

要使用 pip 安装最新稳定版:

.. code-block:: bash

    # 用于 PyTorch 集成
    pip install --no-build-isolation transformer_engine[pytorch]
    
    # 用于 JAX 集成
    pip install --no-build-isolation transformer_engine[jax]
    
    # 用于两个框架
    pip install --no-build-isolation transformer_engine[pytorch,jax]

或者,直接从 GitHub 仓库安装:

.. code-block:: bash

    pip install --no-build-isolation git+https://github.com/NVIDIA/TransformerEngine.git@stable

从 GitHub 安装时,可以使用环境变量显式指定框架:

.. code-block:: bash

    NVTE_FRAMEWORK=pytorch,jax pip install --no-build-isolation git+https://github.com/NVIDIA/TransformerEngine.git@stable

conda 安装
^^^^^^^^^^^^^^^^^^

要使用 conda-forge 安装最新稳定版:

.. code-block:: bash

    # 用于 PyTorch 集成
    conda install -c conda-forge transformer-engine-torch
    
    # JAX 集成(即将推出)

源码安装
^^^^^^^^^^^^^^^^^^^

`请参阅安装指南 <https://docs.nvidia.com/deeplearning/transformer-engine/user-guide/installation.html#installation-from-source>`_

环境变量
^^^^^^^^^^^^^^^^^^^^^
这些环境变量可以在安装前设置,以自定义构建过程:

* **CUDA_PATH**:CUDA 安装路径
* **CUDNN_PATH**:cuDNN 安装路径
* **CXX**:C++ 编译器路径
* **NVTE_FRAMEWORK**:要构建的目标框架列表(用逗号分隔,例如 ``pytorch,jax``)
* **MAX_JOBS**:限制并行构建作业的数量(默认值因系统而异)
* **NVTE_BUILD_THREADS_PER_JOB**:控制每个构建作业的线程数
* **NVTE_CUDA_ARCHS**:要编译的 CUDA 计算架构列表(用分号分隔,例如 ``80;90`` 表示 A100 和 H100)。如果未设置,则会根据 CUDA 版本自动确定。设置此变量可以显著减少构建时间和二进制文件大小。

使用 FlashAttention 进行编译
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Transformer Engine 在 PyTorch 中同时支持 FlashAttention-2 和 FlashAttention-3,以提升性能。FlashAttention-3 于 v1.11 版本中加入,在环境中同时存在两者时优先使用 FlashAttention-3。

您可以通过设置以下环境变量来验证正在使用的 FlashAttention 版本:

.. code-block:: bash

    NVTE_DEBUG=1 NVTE_DEBUG_LEVEL=1 python your_script.py

众所周知,FlashAttention-2 的编译非常消耗资源,需要大量内存(参见 `bug <https://github.com/Dao-AILab/flash-attention/issues/358>`_),这可能导致在安装 Transformer Engine 时出现内存不足错误。请尝试在环境中设置 **MAX_JOBS=1** 来规避此问题。

.. troubleshooting-begin-marker-do-not-remove

故障排除
^^^^^^^^^^^^^^^

**常见问题及解决方案**:

1. **ABI 兼容性问题**:

   * **症状**:导入 transformer_engine 时出现未定义符号的 ``ImportError``
   * **解决方案**:确保 PyTorch 和 Transformer Engine 使用相同的 C++ ABI 设置进行构建。请使用匹配的 ABI 从源码重新构建 PyTorch。
   * **背景**:如果您使用的是与系统默认 C++ ABI 不同的 PyTorch 构建版本,则可能会遇到这些未定义符号错误。这种情况在通过 pip 安装的非容器化 PyTorch 中尤为常见。

2. **缺少头文件或库**:

   * **症状**:CMake 报错,提示缺少头文件(``cudnn.h``、``cublas_v2.h``、``filesystem`` 等)
   * **解决方案**:安装缺失的开发包,或设置环境变量指向正确的位置:

     .. code-block:: bash

         export CUDA_PATH=/path/to/cuda
         export CUDNN_PATH=/path/to/cudnn

   * 如果 CMake 找不到 C++ 编译器,请设置 ``CXX`` 环境变量。
   * 请确保所有路径在安装前都已正确设置。

3. **构建资源问题**:

   * **症状**:编译卡死、系统冻结或内存不足错误
   * **解决方案**:限制并行构建:

     .. code-block:: bash

         MAX_JOBS=1 NVTE_BUILD_THREADS_PER_JOB=1 pip install ...

4. **详细构建日志**:

   * 如需详细的构建日志以帮助诊断问题:

     .. code-block:: bash

         cd transformer_engine
         pip install -v -v -v --no-build-isolation .

**使用 UV 或虚拟环境时的问题**:

1. **导入错误**:

   * **症状**:无法导入 ``transformer_engine``
   * **解决方案**:确保您的 UV 环境已激活,并且您使用了 ``uv pip install --no-build-isolation <te_pypi_package_or_wheel_or_source_dir>``,而不是常规的 pip 安装到系统环境中。

2. **cuDNN 子库加载失败**:

   * **症状**:运行时出现 ``CUDNN_STATUS_SUBLIBRARY_LOADING_FAILED`` 错误
   * **解决方案**:这种情况可能发生在 TE 基于容器内系统的 cuDNN 安装构建时,但虚拟环境内的 pip 包却拉取了 ``nvidia-cudnn-cu12/cu13`` 的 pip 包。为解决这个问题,在从源码构建 TE 时,请指定以下环境变量,指向您虚拟环境中的 cuDNN。
   
   
     .. code-block:: bash

export CUDNN_PATH=$(pwd)/.venv/lib/python3.12/site-packages/nvidia/cudnn
        export CUDNN_HOME=$CUDNN_PATH
        export LD_LIBRARY_PATH=$CUDNN_PATH/lib:$LD_LIBRARY_PATH

3. **构建轮子包:**

   * **症状:** 使用常规方法安装 TE 可以正常工作,但使用 UV 构建的轮子包在运行时会失败。
   * **解决方案:** 确保在构建轮子包以及通过 pip 安装该轮子包时都使用 ``uv build --wheel --no-build-isolation -v``。使用 ``-v`` 参数以获取详细输出,从而验证 TE 是否引入了与 UV 环境版本不匹配的 PyTorch 或 JAX 版本。

**JAX 特有的常见问题及解决方案:**

1. **FFI 问题:**

   * **症状:** ``未为平台 CUDA 注册 <some_te_ffi> 自定义调用的实现``
   * **解决方案:** 确保在安装过程中使用 ``--no-build-isolation``。如果预先构建轮子包,确保轮子包的构建和安装都使用 ``--no-build-isolation``。如果使用 UV,请参阅上文“使用 UV 或虚拟环境时的问题”。

.. troubleshooting-end-marker-do-not-remove

重大变更
================

v1.7:PyTorch 中的填充掩码定义
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
为了在 Transformer Engine 的三个框架中统一注意力掩码的定义和使用方式,我们的 PyTorch 实现中,填充掩码的含义已从之前的 `True` 表示包含相应位置进行注意力计算,改为 `True` 表示屏蔽相应位置。自 v1.7 起,所有类型的注意力掩码都遵循相同的定义:`True` 表示屏蔽相应位置,`False` 表示包含该位置参与注意力计算。

例如,

.. code-block:: bash

    # 对于一个包含 3 个序列的批次,其中 `a`、`b` 和 `c` 是有效标记,而 `0` 是填充标记,
    [a, a, a, 0, 0,
     b, b, 0, 0, 0,
     c, c, c, c, 0]
    # 在 v1.7 之前,该批次的填充掩码是:
    [ True,  True,  True, False, False,
      True,  True, False, False, False,
      True,  True,  True,  True, False]
    # 而从 v1.7 开始,它应该变为:
    [False, False, False,  True,  True,
     False, False,  True,  True,  True,
     False, False, False, False,  True]

收敛性
===========

FP8 和 MXFP8 已在不同模型架构和配置下进行了广泛测试,我们发现 FP8/MXFP8 与 BF16 的训练损失曲线之间**没有显著差异**。此外,FP8 和 MXFP8 还在下游 LLM 任务(如 LAMBADA 和 WikiText)上验证了其准确性。以下是不同框架中经过收敛性测试的模型示例。

+------------+------------------+---------------------------------------------------------------------------------------------------------+
| 模型      | 框架        | 来源                                                                                                  |
+============+==================+=========================================================================================================+
| MPT-1.3B   |  Mosaic Composer | https://www.mosaicml.com/blog/coreweave-nvidia-h100-part-1                                              |
+------------+------------------+---------------------------------------------------------------------------------------------------------+
| LLama2-7B  |  Alibaba Pai     | https://mp.weixin.qq.com/s/NQT0uKXLbXyh5031zBdeBQ                                                       |
+------------+------------------+---------------------------------------------------------------------------------------------------------+
| LLM-8B     |  Megatron Core   | https://arxiv.org/abs/2506.08027                                                                        |
+------------+------------------+---------------------------------------------------------------------------------------------------------+
| MPT-13B    |  Mosaic Composer | https://www.databricks.com/blog/turbocharged-training-optimizing-databricks-mosaic-ai-stack-fp8         |
+------------+------------------+---------------------------------------------------------------------------------------------------------+
| MoE-16B    |  Megatron Core   | https://arxiv.org/abs/2506.08027                                                                        |
+------------+------------------+---------------------------------------------------------------------------------------------------------+
| LLama2-70B |  Alibaba Pai     | https://mp.weixin.qq.com/s/NQT0uKXLbXyh5031zBdeBQ                                                       |
+------------+------------------+---------------------------------------------------------------------------------------------------------+

集成
============

Transformer Engine 已与以下流行的 LLM 框架集成:

* `DeepSpeed <https://github.com/deepspeedai/DeepSpeed>`_
* `Hugging Face Accelerate <https://huggingface.co/docs/accelerate/main/en/usage_guides/low_precision_training#configuring-transformersengine>`_
* `Lightning <https://lightning.ai/docs/pytorch/stable/common/precision.html>`_
* `MosaicML Composer <https://github.com/mosaicml/composer/releases/tag/v0.13.1>`_
* `NVIDIA JAX Toolbox <https://github.com/NVIDIA/JAX-Toolbox>`_
* `NVIDIA Megatron-LM <https://github.com/NVIDIA/Megatron-LM>`_
* `NVIDIA NeMo Megatron Bridge <https://github.com/NVIDIA-NeMo/Megatron-Bridge>`_
* `Amazon SageMaker Model Parallel Library <https://docs.aws.amazon.com/sagemaker/latest/dg/model-parallel-core-features-v2-tensor-parallelism.html>`_
* `Levanter <https://github.com/stanford-crfm/levanter>`_
* `GPT-NeoX <https://github.com/EleutherAI/gpt-neox>`_
* `Hugging Face Nanotron <https://github.com/huggingface/nanotron>`_

贡献
============

我们欢迎对 Transformer Engine 的贡献!要为 Transformer Engine 做出贡献并提交拉取请求,请遵循 `<CONTRIBUTING.rst>`_ 指南中的说明。

论文
======

* `注意力机制原始论文 <https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf>`_
* `Megatron-LM 张量并行 <https://arxiv.org/pdf/1909.08053.pdf>`_
* `Megatron-LM 序列并行 <https://arxiv.org/pdf/2205.05198.pdf>`_
* `用于深度学习的 FP8 格式 <https://arxiv.org/abs/2209.05433>`_

视频
======

* `Blackwell 上稳定且可扩展的 FP8 深度学习训练 | GTC 2025 <https://www.nvidia.com/en-us/on-demand/session/gtc25-s72778/>`_
* `Blackwell 中的 AI 数值计算 | GTC 2025 <https://www.nvidia.com/en-us/on-demand/session/gtc25-s72458/>`_
* `构建 LLM:使用 FP8 精度加速基础模型的预训练 | GTC 2025 <https://www.nvidia.com/gtc/session-catalog/?regcode=no-ncid&ncid=no-ncid&tab.catalogallsessionstab=16566177511100015Kus&search=zoho#/session/1726152813607001vnYK>`_
* `从 FP8 LLM 训练到推理:大规模语言 AI | GTC 2025 <https://www.nvidia.com/en-us/on-demand/session/gtc25-s72799/>`_
* `Transformer Engine 和 FP8 训练的新特性 | GTC 2024 <https://www.nvidia.com/en-us/on-demand/session/gtc24-s62457/>`_
* `使用 Transformer Engine 进行 FP8 训练 | GTC 2023 <https://www.nvidia.com/en-us/on-demand/session/gtcspring23-s51393>`_
* `FP8 在深度学习中的应用 | GTC 2023 <https://www.nvidia.com/en-us/on-demand/session/gtcspring23-s52166/>`_
* `Hopper 架构揭秘 | GTC 2022 <https://www.nvidia.com/en-us/on-demand/session/gtcspring22-s42663/>`_

.. |License| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
   :target: https://opensource.org/licenses/Apache-2.0

往期新闻
=============

* [06/2025] `浮点数 8:高效、低精度 AI 训练简介 <https://developer.nvidia.com/blog/floating-point-8-an-introduction-to-efficient-lower-precision-ai-training/>`_
* [05/2025] `NVIDIA Grace Hopper 上 LLM 训练的高级优化策略 <https://developer.nvidia.com/blog/advanced-optimization-strategies-for-llm-training-on-nvidia-grace-hopper/>`_
* [03/2025] `Blackwell 上稳定且可扩展的 FP8 深度学习训练 | GTC 2025 <https://www.nvidia.com/en-us/on-demand/session/gtc25-s72778/>`_
* [03/2025] `使用 NVIDIA DGX Cloud 基准测试工具衡量并提升 AI 工作负载性能 <https://developer.nvidia.com/blog/measure-and-improve-ai-workload-performance-with-nvidia-dgx-cloud-benchmarking/>`_

.. image:: docs/examples/comparison-fp8-bf16-training-nvidia-dgx-cloud-benchmarking-performance-explorer.jpg
  :width: 600
  :alt: NVIDIA DGX Cloud 基准测试性能浏览器中显示的 FP8 与 BF16 训练对比图

* [02/2025] `借助 Evo 2,在全新尺度上理解生命生物分子在进化中的语言 <https://developer.nvidia.com/blog/understanding-the-language-of-lifes-biomolecules-across-evolution-at-a-new-scale-with-evo-2/>`_
* [02/2025] `NVIDIA DGX Cloud 推出即用型模板,用于基准测试 AI 平台性能 <https://developer.nvidia.com/blog/nvidia-dgx-cloud-introduces-ready-to-use-templates-to-benchmark-ai-platform-performance/>`_
* [01/2025] `利用 iGenius 和 NVIDIA DGX Cloud 继续预训练最先进的 LLM,以满足主权 AI 和受监管行业的需求 <https://developer.nvidia.com/blog/continued-pretraining-of-state-of-the-art-llms-for-sovereign-ai-and-regulated-industries-with-igenius-and-nvidia-dgx-cloud/>`_
* [11/2024] `使用 NVIDIA Megatron-LM 开发具有强大日语能力的 172B LLM <https://developer.nvidia.com/blog/developing-a-172b-llm-with-strong-japanese-capabilities-using-nvidia-megatron-lm/>`_
* [11/2024] `FP8 如何使 Amazon SageMaker P5 实例上的 LLM 训练速度提升 18% <https://aws.amazon.com/blogs/machine-learning/how-fp8-boosts-llm-training-by-18-on-amazon-sagemaker-p5-instances/>`_
* [11/2024] `使用 Amazon SageMaker 模型并行高效训练具有长序列长度的模型 <https://aws.amazon.com/blogs/machine-learning/efficiently-train-models-with-large-sequence-lengths-using-amazon-sagemaker-model-parallel/>`_
* [09/2024] `通过 FP8 混合精度训练升级,仅需一行代码即可将 AI 大模型训练成本降低 30% <https://company.hpc-ai.com/blog/reducing-ai-large-model-training-costs-by-30-requires-just-a-single-line-of-code-from-fp8-mixed-precision-training-upgrades>`_
* [05/2024] `使用 NVIDIA cuDNN 9 加速 Transformer 模型 <https://developer.nvidia.com/blog/accelerating-transformers-with-nvidia-cudnn-9/>`_
* [03/2024] `涡轮增压式训练:使用 FP8 优化 Databricks Mosaic AI 堆栈 <https://www.databricks.com/blog/turbocharged-training-optimizing-databricks-mosaic-ai-stack-fp8>`_
* [03/2024] `SageMaker 模型并行库支持 FP8 训练 <https://docs.aws.amazon.com/sagemaker/latest/dg/model-parallel-release-notes.html>`_
* [12/2023] `NVIDIA NeMo 框架新功能及 NVIDIA H200 <https://developer.nvidia.com/blog/new-nvidia-nemo-framework-features-and-nvidia-h200-supercharge-llm-training-performance-and-versatility/>`_

.. image:: docs/examples/H200-NeMo-performance.png
  :width: 600
  :alt: H200

* [11/2023] `Inflection-2:下一步的飞跃 <https://inflection.ai/inflection-2>`_
* [11/2023] `借助 NVIDIA Transformer Engine 释放 Transformer 的强大威力 <https://lambdalabs.com/blog/unleashing-the-power-of-transformers-with-nvidia-transformer-engine>`_
* [11/2023] `使用 FP8 加速 PyTorch 训练工作loads <https://towardsdatascience.com/accelerating-pytorch-training-workloads-with-fp8-5a5123aec7d7>`_
* [09/2023] `AWS DL 容器中已添加用于 PyTorch 训练的 Transformer Engine <https://github.com/aws/deep-learning-containers/pull/3315>`_
* [06/2023] `凭借 NVIDIA H100 GPU 打破 MLPerf 训练记录 <https://developer.nvidia.com/blog/breaking-mlperf-training-records-with-nvidia-h100-gpus/>`_
* [04/2023] `CoreWeave 使用 NVIDIA H100 GPU 对大型语言模型进行基准测试(第一部分) <https://www.mosaicml.com/blog/coreweave-nvidia-h100-part-1>`_

版本历史

v2.132026/03/31
v2.122026/02/24
v2.112026/01/15
v2.102025/12/11
v2.92025/11/11
v2.82025/10/07
v2.72025/10/01
v2.62025/09/15
v2.52025/07/28
v2.42025/06/05
v2.32025/05/14
v2.22025/04/28
v2.12025/03/17
v2.02025/02/13
v1.132024/12/09
v1.122024/11/18
v1.112024/10/08
v1.102024/09/11
v1.92024/08/16
v1.82024/07/25

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架