Optimum 文档
快速入门
并获得增强的文档体验
开始使用
快速入门
在 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 这样的门禁模型,您应该:
单设备推理
在单个 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 上更新