Optimum 文档

快速入门

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

并获得增强的文档体验

开始使用

快速入门

在 Intel® Gaudi® 加速器上运行您的 AI 工作负载,只需几个简单步骤即可完成。在本快速指南中,我们将展示如何使用 🤗 Optimum for Intel Gaudi 库在 Intel Gaudi 2 加速器上对 GPT-2 模型进行推理。

Optimum for Intel Gaudi 库经过优化,可在 Intel Gaudi 加速器上运行各种 AI 工作负载,并包含完整的推理、训练和微调示例文档。请参阅 Optimum for Intel Gaudi GitHub 页面获取更多信息。

访问 Intel Gaudi AI 加速器

要访问 Intel® Tiber™ AI Cloud 中的 Intel Gaudi AI 加速器节点,请前往 Intel Tiber AI Cloud 并访问硬件实例,选择用于深度学习的 Intel Gaudi AI 加速器平台,然后按照步骤启动并连接到该节点。

Docker 设置

现在您已获得节点访问权限,您将通过执行 `docker run` 命令来使用最新的 Intel Gaudi AI 加速器 Docker 镜像,该命令会自动下载并运行 Docker。在撰写本指南时,最新的 Gaudi Docker 版本是 1.21.0。

release=1.21.0
os=ubuntu22.04
torch=2.6.0
docker_image=vault.habana.ai/gaudi-docker/$release/$os/habanalabs/pytorch-installer-$torch:latest

访问 Intel Gaudi AI 加速器发布说明页面以获取最新的 Intel Gaudi AI 加速器软件版本信息。或者,查看

https://vault.habana.ai/ui/native/gaudi-docker 获取所有已发布的 Intel® Gaudi® AI 加速器 Docker 镜像列表。

执行 `docker run` 命令

docker run -itd \
    --name Gaudi_Docker \
    --runtime=habana \
    -e HABANA_VISIBLE_DEVICES=all \
    -e OMPI_MCA_btl_vader_single_copy_mechanism=none \
    --cap-add=sys_nice \
    --net=host \
    --ipc=host \
    ${docker_image}

Optimum for Intel Gaudi 设置

在此处查看 Optimum for Intel Gaudi 的最新发布版本。在撰写本指南时,最新的 Optimum for Intel Gaudi 发布版本是 v1.18.0,它与 Intel Gaudi 软件发布版本 1.21.0 配套使用。按如下方式安装 Optimum for Intel Gaudi

git clone -b v1.18.0 https://github.com/huggingface/optimum-habana
pip install ./optimum-habana

所有可用的示例都位于 optimum-habana/examples 下。

这是一个 文本生成示例,要在 Gaudi 上运行 Llama-2 7B 文本生成示例,请完成先决条件设置

cd ~/optimum-habana/examples/text-generation
pip install -r requirements.txt

为了能够运行像 Llama-2 7B 这样的门禁模型,您应该:

  • 有一个 🤗 账户
  • 在其模型卡片中同意模型的使用条款
  • 按照此处的说明设置您的令牌
  • 在启动脚本前,使用 HF CLI 登录您的账户:运行 huggingface-cli login

单设备推理

在单个 Gaudi 设备 (HPU) 上运行 Llama-2 7B 模型的推理

PT_HPU_LAZY_MODE=1 python run_generation.py \
    --model_name_or_path meta-llama/Llama-2-7b-hf \
    --use_hpu_graphs \
    --use_kv_cache \
    --max_new_tokens 100 \
    --do_sample \
    --prompt "Here is my prompt"

所有可能参数的列表可以通过运行带 `--help` 的脚本获得

多设备推理

对于拥有多个 Gaudi 设备的系统,例如一个有 8 个 HPU 的系统,您可以使用像 Microsoft® DeepSpeed 这样的库来执行分布式推理。Intel 在 https://github.com/HabanaAI/DeepSpeed 维护着该库的 Gaudi 特定分支。

要安装与同一 Gaudi 软件版本堆栈兼容的库,请使用:

pip install git+https://github.com/HabanaAI/DeepSpeed.git@1.21.0

成功安装 DeepSpeed 后,我们现在可以在一个 8 HPU 系统上运行分布式 GPT-2 推理,如下所示:

number_of_devices=8 \
PT_HPU_LAZY_MODE=1 python ../gaudi_spawn.py --use_deepspeed --world_size ${number_of_devices} \
run_generation.py \
    --model_name_or_path meta-llama/Llama-2-7b-hf \
    --use_hpu_graphs \
    --use_kv_cache \
    --max_new_tokens=100 \
    --do_sample \
    --prompt="Here is my prompt"

在 Gaudi 上进行训练

🤗 Optimum for Intel Gaudi 包含许多演示单 Gaudi 设备和多 Gaudi 设备训练/微调的示例。

例如,可以使用 语言建模示例部分 提供的脚本来训练多种语言模型。

作为说明,让我们在 Gaudi 上运行 GPT-2 的单卡和多卡训练示例。

使用以下命令安装先决条件:

cd ~/optimum-habana/examples/language-modeling
pip install -r requirements.txt

要在单卡上训练 GPT-2 模型,请使用:

PT_HPU_LAZY_MODE=1 python run_clm.py \
    --model_name_or_path gpt2 \
    --dataset_name wikitext \
    --dataset_config_name wikitext-2-raw-v1 \
    --per_device_train_batch_size 4 \
    --per_device_eval_batch_size 4 \
    --do_train \
    --do_eval \
    --output_dir /tmp/test-clm \
    --gaudi_config_name Habana/gpt2 \
    --use_habana \
    --use_lazy_mode \
    --use_hpu_graphs_for_inference \
    --throughput_warmup_steps 3

要使用多卡 Gaudi 系统训练 GPT-2 模型:

number_of_devices=8 \
PT_HPU_LAZY_MODE=1 python ../gaudi_spawn.py --use_deepspeed --world_size ${number_of_devices} \
run_clm.py \
    --model_name_or_path gpt2 \
    --dataset_name wikitext \
    --dataset_config_name wikitext-2-raw-v1 \
    --per_device_train_batch_size 4 \
    --per_device_eval_batch_size 4 \
    --do_train \
    --do_eval \
    --output_dir /tmp/test-clm \
    --gaudi_config_name Habana/gpt2 \
    --use_habana \
    --use_lazy_mode \
    --use_hpu_graphs_for_inference \
    --gradient_checkpointing \
    --use_cache False \
    --throughput_warmup_steps 3

扩散模型工作负载

🤗 Optimum for Intel Gaudi 还为 🤗 Diffusers 库提供了针对 HPU 优化的支持。因此,您可以在 Gaudi 上部署 Stable Diffusion 和类似的扩散模型,并启用文本到图像生成以及其他基于扩散的工作负载。

在 Gaudi 上运行 Stable Diffusion 推理示例之前,请完成先决条件设置:

cd ~/optimum-habana/examples/stable-diffusion
pip install -r requirements.txt

以下是在 Gaudi 上运行 Stable Diffusion 文本到图像推理的示例:

PT_HPU_LAZY_MODE=1 python text_to_image_generation.py \
    --model_name_or_path CompVis/stable-diffusion-v1-4 \
    --prompts "An image of a squirrel in Picasso style" \
    --num_images_per_prompt 10 \
    --batch_size 1 \
    --image_save_dir /tmp/stable_diffusion_images \
    --use_habana \
    --use_hpu_graphs \
    --gaudi_config Habana/stable-diffusion \
    --bf16

此外,这里还有一个示例,展示了如何使用 Optimum for Intel Gaudi 库修改基本的 🤗 Diffusers Stable Diffusion pipeline 调用,使其在 Gaudi 上工作:

- from diffusers import DDIMScheduler, StableDiffusionPipeline
+ from optimum.habana.diffusers import GaudiDDIMScheduler, GaudiStableDiffusionPipeline

model_name = "CompVis/stable-diffusion-v1-4"

- 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,
)

此外,在 Stable Diffusion 训练部分中提供了微调扩散模型的示例脚本。

下面给出了 Optimum for Intel Gaudi 中更全面的示例列表。

即用型示例

现在您已经运行了一个完整的推理案例,您可以返回到 Optimum for Intel Gaudi 已验证模型页面,查看更多运行推理的选项。

以下是可直接使用的各种模态和任务的示例:

要了解更多关于如何为 Intel Gaudi 适配 🤗 Transformers 或 Diffusers 脚本的信息,请查看脚本适配指南。

< > 在 GitHub 上更新