Intel Gaudi 2 AI 加速器上的文字生成管線

Hugging Face 已發布一個針對 Intel Gaudi 2 AI 加速器設計的自訂文字生成管線,讓開發者能以最少的程式碼執行 Llama 2 模型(7b、13b 與 70b)。此管線透過處理端到端的文字生成(包括前處理與後處理),提供高度抽象化的介面。

高階管線功能

GaudiTextGenerationPipeline 提供彈性的介面,可從單一或多個提示產生文字。它設計為可透過三種主要方式整合至各種工作流程中:

  • 獨立腳本: 使用 Optimum Habana 倉庫中提供的 run_pipeline.py 腳本。
  • 自訂 Python 整合: 直接在 Python 腳本中匯入管線類別,以進行程式化控制。
  • 框架整合: 使用管線初始化 LangChain 類別,以進行複雜的 LLM 編排。

技術實作與需求

硬體與軟體先決條件

要使用此管線,使用者必須透過 Meta 與 Hugging Face 取得受限的 Llama 2 模型,並具備以下軟體環境:

  • Optimum Habana: 版本 1.10.4。
  • DeepSpeed: 需要用於分散式推論(例如 Llama-2-70b)。版本應與 SynapseAI 版本相匹配(例如 DeepSpeed 1.14.0 對應 SynapseAI 1.14.0)。
  • 驗證: 必須提供 Hugging Face 存取令牌,以透過 huggingface-cli login 下載受限模型。

執行與設定

此管線支援多項效能優化旗標與生成參數:

  • 效能優化: 使用者可啟用 --use_hpu_graphs--use_kv_cache 以提升推論效率。
  • 生成控制: 此管線支援標準抽樣參數,包括 --do_sample--temperature--top_p
  • 分散式推論: 對於大型模型如 Llama-2-70b,管線會使用 gaudi_spawn.py 並加上 --use_deepspeed 旗標以及指定的 --world_size(例如 8)來啟動。

LangChain 相容性

此文字生成管線相容於 LangChain,允許其作為 LLM 後端使用。透過在 GaudiTextGenerationPipeline 中設定建構子參數 use_with_langchain=True,即可將管線傳入 LangChain 中的 HuggingFacePipeline 類別。

此管線類別已針對 LangChain 版本 0.0.191 進行驗證,可能無法在其他版本上運作。

模型支援摘要

模型 部署方式 主要需求
Llama-2-7b 單一 HPU / run_pipeline.py Optimum Habana 1.10.4
Llama-2-13b 單一 HPU / run_pipeline.py Optimum Habana 1.10.4
Llama-2-70b 分散式 / gaudi_spawn.py DeepSpeed + Optimum Habana 1.10.4

Sources