Optimum 文档
在 AMD GPU 上使用 Hugging Face 库
并获得增强的文档体验
开始使用
在 AMD GPU 上使用 Hugging Face 库
Hugging Face 库原生支持 AMD Instinct MI210、MI250 和 MI300 GPU。对于其他 ROCm 支持的 GPU,目前尚未验证其支持,但预计大多数功能可以流畅使用。
集成总结如下。
Flash Attention 2
Flash Attention 2 可通过 ROCm/flash-attention 库在 ROCm 上使用(已在 MI210、MI250 和 MI300 上验证),并可在 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,
)
ROCm 提供托管 wheel 包,请查看安装说明。
文本生成推理库
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
一样简单。
TGI 在 MI300 GPU 上的详细基准测试即将发布。
ONNX Runtime 集成
🤗 Optimum 支持通过 ONNX Runtime 在 ROCm 支持的 AMD GPU 上运行 Transformers 和 Diffusers 模型。使用起来非常简单:
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 和 Text Generation Inference 中)目前官方不支持 ROCm。我们正在努力验证它在 ROCm 和 Hugging Face 库上的兼容性。
同时,高级用户可能希望暂时使用 ROCm/bitsandbytes 分支。有关详细信息,请参阅 #issuecomment。
AWQ 量化
AWQ 量化,在 Transformers 中 和 Text Generation Inference 中 都支持,现在通过 Exllama 内核在 AMD GPU 上得到了支持。通过最近的优化,AWQ 模型在加载时被转换为 Exllama/GPTQ 格式模型。这使得 AMD ROCm 设备能够同时受益于 AWQ 检查点的高质量和 ExllamaV2 内核的速度。
参见:AutoAWQ 获取更多详情。
注意:确保您使用的 PyTorch 版本与构建内核时使用的版本相同。
< > 在 GitHub 上更新