Hugging Face 对 AMD Instinct MI300 GPU 的集成
Hugging Face 与 AMD 已将 AMD Instinct MI300 GPU 集成到 Hugging Face 平台,提供对 transformers、text-generation-inference(TGI)以及其他核心库的无缝支持。此集成使用户能够在 AMD MI300 硬件上部署模型,包括 Azure ND MI300x V5 虚拟机,无需更改代码。
开源与生产就绪
为确保长期的稳定性和正确性,Hugging Face 为 MI300 系列实现了强大的 CI/CD 流水线。
CI/CD 基础设施
通过利用 Azure ND MI300x V5 虚拟机和托管的 Kubernetes 集群,Hugging Face 现在定期在 MI300 和前一代 MI250 GPU 上运行数万条单元测试。该基础设施将硬件特定的 pod 抽象出来,确保 transformers 和 text-generation-inference 在不同 AMD 硬件平台上保持兼容和高性能。
生产 AI 工作负载性能
集成工作聚焦于 TGI 的建模层,以优化在 MI300 硬件上运行的 Meta Llama 系列模型的执行。
推理性能
优化工作包括集成 Flash Attention v2、Paged Attention、GPTQ/AWQ 压缩技术以及优化的融合内核。
TunableOp 的作用
从 PyTorch 2.3 开始,Hugging Face 集成了 AMD TunableOp,这是一种根据形状和数据类型识别执行通用矩阵乘法(GEMM)最有效方式的机制。在 TGI 预热阶段,TunableOp 为用户的特定序列长度和批量大小识别最佳配置,并在服务器运行期间锁定这些例程。这在自回归解码阶段对小输入序列的延迟提升了 8-10%。
基准测试:MI300 与 MI250
在 Azure ND MI300x V5 上使用 Meta Llama 3 70B 时,MI300X 相较于 MI250 展现出显著提升:
- 首次 Token 时间(Prefill): 提升 2 倍至 3 倍。
- 自回归解码延迟: 提升 2 倍。
模型微调性能
微调使用 Transformers、PEFT(配合 LoRA)以及通过 Accelerate 库的 DeepSpeed Zero3 在 Llama 3 70B 上进行测试。
- Training Speed: 在由 MI300X 提供动力的 Azure 虚拟机上,训练速度约为 MI250 HPC 服务器的 2 倍。
- Memory Capacity: MI300X 的 192 GB HBM3 内存使得在单个设备上完整加载并微调 Meta Llama 3 70B(约 140 GB 的 float16/bfloat16)成为可能,而在 128 GB 的 MI250 上则无法实现。
未来路线图
Hugging Face 目前正投入对 “minifloat” 支持(float8 及更低)的研发。预计这将把 LLM 推理中的键值缓存大小减半。未来目标包括将 float8 存储的键值缓存与 float8/float8 矩阵乘法相结合,以进一步降低内存占用并提升性能。