Hugging Face 与 AMD 为 LLM 提供 GPU 加速

Hugging Face 与 AMD 已达成合作,为 AMD Instinct GPU 上的大语言模型 (LLMs) 提供开箱即用的加速支持。此次集成使用户无需进行任何代码更改,即可在 AMD 硬件上运行 Hugging Face Transformers 模型,显著扩展了高性能 AI 推理和训练的硬件选择范围。

为 AMD Instinct GPU 提供零代码集成

所有 Hugging Face Transformers 模型和任务现在都已在 AMD Instinct GPU 上得到支持。用户只需将目标设备指向 "cuda",即可使用通常用于 NVIDIA GPU 的相同 PyTorch 代码来部署模型。

为了确保稳定性和性能,Hugging Face 已在其数据中心内,利用通过 Verne Global 部署在冰岛的服务器,对 AMD Instinct GPU 上的开源库进行了集成测试,以最大限度地减少碳足迹。

技术优化与功能支持

除了原生支持外,此次合作还为基于 ROCm 的 GPU 集成了多种最先进的加速工具和内核:

  • Flash Attention v2:通过 AMD 的开源工作,已原生集成到 Transformers 和 Text Generation Inference (TGI) 中。
  • Paged Attention:通过 vLLM 以及 TGI 中针对 ROCm 的各种融合内核(fused kernels)提供支持。
  • DeepSpeed:已针对使用 Transformers 的 ROCm GPU 进行了官方验证和支持。
  • GPTQ:通过与 AutoGPTQ 和 Transformers 的直接集成,支持用于减少内存需求的权重压缩。
  • ONNX Runtime:通过使用 Optimum 库的 ROCMExecutionProvider,支持在 ROCm GPU 上执行 ONNX 模型。
  • Optimum-Benchmark:提供的一项实用工具,用于在常规和分布式设置下对 AMD GPU 上的 Transformers 性能进行基准测试。

硬件性能:AMD Instinct MI250 vs. NVIDIA A100

AMD Instinct MI250 拥有 128 GB 的高带宽内存 (HBM),分为两个独立的 ROCm 设备(每个 64 GB)。这种架构允许单块 MI250 卡作为两个 PyTorch 设备运行,从而促进张量并行和数据并行。

使用 optimum-benchmark 进行的基准测试显示了 MI250 相对于 A100 的以下性能优势:

  • 解码吞吐量:在具有大批次(large batches)的生产设置中,MI250 每秒交付的 token 数量是 A100 的 2.33 倍以上。
  • 预填充延迟 (Prefill Latency):与 A100 相比,MI250 将首个 token 的生成时间(预填充延迟)缩短了一半。
  • 训练:MI250 支持更大的批次大小,并实现了更高的训练吞吐量。

使用 Text Generation Inference (TGI) 进行生产部署

Text Generation Inference (TGI) 现在为 AMD Instinct MI210 和 MI250 GPU 提供初步支持。TGI 利用上述优化,为大规模 LLM 提供端到端的部署解决方案。

Llama 模型系列的性能基准测试展示了 MI250 的内存优势。对于 Llama 70B(在 float16 下需要 138 GB),与 A100 的 80 GB(在类似配置下会遇到显存溢出错误)相比,MI250 的 128 GB 全局内存允许处理更大的工作负载、更长的序列和更大的批次。

为了优化矩阵乘法,Hugging Face 利用了 AMD GeMM Tuner 工具,该工具预计将在未来的 PyTorch 更新中作为其一部分发布。

可以通过以下 Docker 镜像进行生产部署:ghcr.io/huggingface/text-generation-inference:1.2-rocm

未来路线图

Hugging Face 和 AMD 正在从三个主要领域扩展其支持:

  1. 消费级硬件:为本地桌面使用的 AMD Radeon GPU 提供验证和支持。

  2. 下一代服务器 GPU:为即将推出的 AMD Instinct MI300 系列优化性能。

  3. 边缘 AI:增强对笔记本电脑 CPU 中 AMD Ryzen AI 技术的支持,以实现私有的、设备端 AI 执行。目前 Hugging Face Hub 上已有兼容 Ryzen AI 的模型。

Sources