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 设置
现在您已访问节点,您将使用最新的 Intel Gaudi AI 加速器 Docker 镜像,方法是执行 Docker run 命令,该命令将自动下载并运行 Docker。在编写本指南时,最新的 Gaudi Docker 版本为 1.20.0
release=1.20.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 的最新版本here。在编写本指南时,最新的 Optimum for Intel Gaudi 版本为 v1.16.0,它与 Intel Gaudi 软件发行版本 1.20.0 配对。按如下方式安装 Optimum for Intel Gaudi
git clone -b v1.16.0 https://github.com/huggingface/optimum-habana
pip install ./optimum-habana
所有可用示例都在 optimum-habana/examples 下。
这是 text-generation 示例,要在 Gaudi 上运行 Llama-2 7B 文本生成示例,请完成先决条件设置
cd ~/optimum-habana/examples/text-generation
pip install -r requirements.txt
为了能够运行像 Llama-2 7B 这样的门控模型,您应该
- 拥有一个 🤗 帐户
- 同意模型卡中的模型使用条款 model card
- 按照 此处 说明设置您的令牌
- 使用 HF CLI 登录您的帐户:在启动脚本之前运行
huggingface-cli login
单设备推理
使用 Llama-2 7B 模型运行单 Gaudi 设备 (HPU) 推理
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 等库执行分布式推理。该库的 Gaudi 特定分支由 Intel 在 https://github.com/HabanaAI/DeepSpeed 维护。
要安装与同一 Gaudi 软件发行堆栈兼容的库,请使用
pip install git+https://github.com/HabanaAI/DeepSpeed.git@1.20.0
成功安装 DeepSpeed 后,我们现在可以在 8 HPU 系统上运行分布式 GPT-2 推理,如下所示
number_of_devices=8 \
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 模型,请使用
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 \
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 文本到图像推理的示例
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
此外,这是一个修改基本的 🤗 Diffusers Stable Diffusion 管道调用的示例,使其可以使用 Optimum for Intel Gaudi 库在 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 上更新