Optimum 文档

在 AMD GPU 上使用 Hugging Face 库

您正在查看 main 版本,该版本需要从源代码安装。如果您想要常规 pip 安装,请查看最新的稳定版本 (v1.24.0)。
Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

以开始使用

在 AMD GPU 上使用 Hugging Face 库

Hugging Face 库原生支持 AMD Instinct MI210、MI250 和 MI300 GPU。对于其他 ROCm 驱动的 GPU,目前尚未验证支持,但预计大多数功能都可以顺利使用。

此处总结了集成。

Flash Attention 2

Flash Attention 2 在 ROCm 上可用(已在 MI210、MI250 和 MI300 上验证),通过 ROCm/flash-attention 库,并且可以在 Transformers 中使用

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, LlamaForCausalLM

tokenizer = AutoTokenizer.from_pretrained("tiiuae/falcon-7b")

with torch.device("cuda"):
    model = AutoModelForCausalLM.from_pretrained(
        "tiiuae/falcon-7b",
        torch_dtype=torch.float16,
        use_flash_attention_2=True,
)

我们建议使用此示例 Dockerfile 在 ROCm 上使用 Flash Attention,或遵循官方安装说明

GPTQ 量化

GPTQ 量化模型可以在 Transformers 中加载,后端使用 AutoGPTQ 库

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, LlamaForCausalLM

tokenizer = AutoTokenizer.from_pretrained("TheBloke/Llama-2-7B-Chat-GPTQ")

with torch.device("cuda"):
    model = AutoModelForCausalLM.from_pretrained(
        "TheBloke/Llama-2-7B-Chat-GPTQ",
        torch_dtype=torch.float16,
    )

托管 wheels 可用于 ROCm,请查看安装说明

文本生成推理库

Hugging Face 的 文本生成推理库 (TGI) 专为低延迟 LLM 服务而设计,并原生支持 AMD Instinct MI210、MI250 和 MI300 GPU。请参阅快速入门部分了解更多详情。

在 ROCm 上结合 AMD Instinct MI210 或 MI250 或 MI300 GPU 使用 TGI 非常简单,只需使用 docker 镜像 ghcr.io/huggingface/text-generation-inference:latest-rocm

文本生成推理在 MI300 GPU 上的详细基准测试即将发布。

ONNX Runtime 集成

🤗 Optimum 支持通过 ONNX Runtime 在 ROCm 驱动的 AMD GPU 上运行 TransformersDiffusers 模型。它非常简单,只需

from transformers import AutoTokenizer
from optimum.onnxruntime import ORTModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased-finetuned-sst-2-english")

ort_model = ORTModelForSequenceClassification.from_pretrained(
  "distilbert-base-uncased-finetuned-sst-2-english",
  export=True,
  provider="ROCMExecutionProvider",
)

inp = tokenizer("Both the music and visual were astounding, not to mention the actors performance.", return_tensors="np")
result = ort_model(**inp)

在本指南中查看有关支持的更多详细信息。

Bitsandbytes 量化

Bitsandbytes(集成在 HF 的 Transformers文本生成推理中)目前未正式支持 ROCm。我们正在努力验证其在 ROCm 上以及通过 Hugging Face 库的支持。

同时,高级用户可能希望暂时使用 ROCm/bitsandbytes 分支。有关更多详细信息,请参阅 #issuecomment

AWQ 量化

AWQ 量化(在 Transformers文本生成推理中受支持)现在在使用 Exllama 内核的 AMD GPU 上受支持。通过最近的优化,AWQ 模型在加载时被转换为 Exllama/GPTQ 格式模型。这使得 AMD ROCm 设备能够受益于 AWQ 检查点的高质量和 ExllamaV2 内核的速度相结合。

参见:AutoAWQ 了解更多详情。

注意:请确保您使用的 PyTorch 版本与构建内核时使用的版本相同。

< > 在 GitHub 上更新