Intel Gaudi 2 AI 加速器上的文本生成管道
Hugging Face 发布了一个针对 Intel Gaudi 2 AI 加速器定制的文本生成管道,使开发者能够以最少的代码运行 Llama 2 模型(7b、13b 和 70b)。该管道通过处理端到端的文本生成(包括前处理和后处理),提供了高度抽象的接口。
高层管道功能
GaudiTextGenerationPipeline 提供了一个灵活的接口,用于从单个或多个提示生成文本。它设计用于通过三种主要方式集成到各种工作流中:
- Standalone Scripts: 使用 Optimum Habana 仓库中提供的
run_pipeline.py脚本。 - Custom Python Integration: 将管道类直接导入 Python 脚本,以实现编程控制。
- Framework Integration: 使用该管道初始化 LangChain 类,以进行复杂的 LLM 编排。
技术实现与要求
硬件和软件先决条件
要使用该管道,用户必须通过 Meta 和 Hugging Face 获得受限的 Llama 2 模型访问权限,并具备以下软件环境:
- Optimum Habana: 版本 1.10.4。
- DeepSpeed: 用于分布式推理(例如 Llama-2-70b)所必需。版本应与 SynapseAI 版本匹配(例如 SynapseAI 1.14.0 对应 DeepSpeed 1.14.0)。
- Authentication: 需要使用
huggingface-cli login登录的 Hugging Face 访问令牌,以下载受限模型。
执行与配置
该管道支持多种性能优化标志和生成参数:
- Performance Optimizations: 用户可以启用
--use_hpu_graphs和--use_kv_cache以提升推理效率。 - Generation Control: 管道支持标准采样参数,包括
--do_sample、--temperature和--top_p。 - Distributed Inference: 对于像 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 |