Optimum 文件

加速推理

您正在檢視的是需要從原始碼安裝。如果您想進行常規 pip 安裝,請檢視最新的穩定版本 (v1.27.0)。
Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

加速推理

Intel Gaudi 提供了幾種方法來加速推理。

惰性模式

支援以下執行模式:

  • 惰性模式:操作累積在一個圖中,其執行以惰性方式觸發。這允許圖編譯器最佳化這些操作的裝置執行。
  • 急切模式:一次執行一個操作。
  • torch.compile急切模式:模型(或模型的一部分)封裝在一個圖中。

並非所有模型都支援急切模式和帶 torch.compile 的急切模式(仍在開發中)。惰性模式是預設模式。

在惰性模式下,圖編譯器生成最佳化的二進位制程式碼,該程式碼在 Gaudi 上實現給定模型拓撲。它執行運算子融合、資料佈局管理、並行化、流水線和記憶體管理,以及圖級最佳化。

要在惰性模式下執行推理,您必須提供以下引數

args = GaudiTrainingArguments(
    # same arguments as in Transformers,
    use_habana=True,
    use_lazy_mode=True,
)

在惰性模式下,最後一個批次可能會觸發額外的編譯,因為它可能比之前的批次小。為避免這種情況,您可以使用 `dataloader_drop_last=True` 丟棄最後一個批次。

HPU 圖

Gaudi 提供了一種使用 HPU 圖執行快速推理的方法。它包括在 HPU 流中捕獲一系列操作(即圖),然後以最佳化的方式重放它們(更多資訊此處)。因此,您可以將其應用於模型的 `forward` 方法,以在推理時高效執行它。

HPU 圖已整合到 `GaudiTrainer` 和 `GaudiStableDiffusionPipeline` 中,以便可以非常輕鬆地使用它們。

  • `GaudiTrainer` 需要將訓練引數 `use_hpu_graphs_for_inference` 設定為 `True`,如下所示:
from optimum.habana import GaudiTrainer, GaudiTrainingArguments

# define the training arguments
training_args = GaudiTrainingArguments(
    use_habana=True,
    use_lazy_mode=True,
    use_hpu_graphs_for_inference=True,
    gaudi_config_name=gaudi_config_name,
    ...
)

# Initialize our Trainer
trainer = GaudiTrainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset
    ... # other arguments
)
  • `GaudiStableDiffusionPipeline` 需要將其引數 `use_hpu_graphs` 設定為 `True`,例如:
from optimum.habana.diffusers import GaudiDDIMScheduler, GaudiStableDiffusionPipeline

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

scheduler = GaudiDDIMScheduler.from_pretrained(model_name, subfolder="scheduler")

pipeline = GaudiStableDiffusionPipeline.from_pretrained(
    model_name,
    scheduler=scheduler,
    use_habana=True,
    use_hpu_graphs=True,
    gaudi_config="Habana/stable-diffusion",
)

outputs = generator(
    ["An image of a squirrel in Picasso style"],
    num_images_per_prompt=16,
    batch_size=4,
)

使用 HPU 圖並在惰性模式下,前幾次迭代可能會由於圖編譯而變慢。

自定義運算子

Intel Gaudi 提供了一些自定義運算子,它們比其 PyTorch 對應物具有更好的效能。您還可以在此處所述的方式為 Gaudi 定義自己的自定義運算子。

Gaudi 最佳化的 Flash Attention

惰性模式和急切模式都支援帶有額外 Intel Gaudi AI 加速器最佳化的 Flash Attention 演算法。請參閱使用融合縮放點積注意力 (FusedSDPA)

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.