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 上更新