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 |