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

Sources