Optimum 文档
将 Transformers/Diffusers 脚本适配到 Intel Gaudi
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
将 Transformers/Diffusers 脚本适配到 Intel Gaudi
适用于 Intel Gaudi 的 🤗 Optimum 支持许多最新的 🤗 Transformers 和 Diffusers 模型并进行了 HPU 优化。要将脚本转换为使用针对 Gaudi 设备优化的模型,可以执行简单的适配。
Transformers
以下是为 Intel Gaudi 执行 Transformer 脚本适配的方法
- from transformers import Trainer, TrainingArguments
+ from optimum.habana import GaudiTrainer, GaudiTrainingArguments
# Define the training arguments
- training_args = TrainingArguments(
+ training_args = GaudiTrainingArguments(
+ use_habana=True,
+ use_lazy_mode=True,
+ gaudi_config_name=gaudi_config_name,
...
)
# Initialize our Trainer
- trainer = Trainer(
+ trainer = GaudiTrainer(
model=model,
args=training_args,
train_dataset=train_dataset
... # other arguments
)
其中 gaudi_config_name
是来自 Hub 的模型名称或本地 Gaudi 配置文件路径。Gaudi 配置以 JSON 文件的形式存储在模型仓库中,但您可以自行编写。更多信息请参见此处。
Diffusers
适用于 Intel Gaudi 的 🤗 Optimum 也支持 🤗 Diffusers 库并进行了 HPU 优化。因此,您可以轻松地在 Gaudi 上部署 Stable Diffusion 以执行文本到图像生成。
以下是如何使用它以及与 🤗 Diffusers 库的区别
- from diffusers import DDIMScheduler, StableDiffusionPipeline
+ from optimum.habana.diffusers import GaudiDDIMScheduler, GaudiStableDiffusionPipeline
model_name = "runwayml/stable-diffusion-v1-5"
- scheduler = DDIMScheduler.from_pretrained(model_name, subfolder="scheduler")
+ scheduler = GaudiDDIMScheduler.from_pretrained(model_name, subfolder="scheduler")
- pipeline = StableDiffusionPipeline.from_pretrained(
+ pipeline = GaudiStableDiffusionPipeline.from_pretrained(
model_name,
scheduler=scheduler,
+ use_habana=True,
+ use_hpu_graphs=True,
+ gaudi_config="Habana/stable-diffusion",
)
outputs = pipeline(
["An image of a squirrel in Picasso style"],
num_images_per_prompt=16,
+ batch_size=4,
)