在 Habana Gaudi 上使用 Transformers 入门

Hugging Face 与 Habana Labs 合作,加速 Transformer 模型的训练,利用 Habana Gaudi 加速器提供相较于最新基于 GPU 的 Amazon EC2 实例高达 40% 的性价比提升。

在 AWS 上部署 Habana Gaudi

访问 Habana Gaudi 加速器的最有效方式是通过 Amazon EC2 DL1 实例,这些实例配备了八个 Habana Gaudi 处理器。要设置环境,用户可以使用 Habana Deep Learning Amazon Machine Image(AMI),其中预装了 Habana SynapseAI® SDK 以及运行 Gaudi 加速 Docker 容器所需的工具。

实例配置

设置 Gaudi 实例需要满足以下规格:

  • Instance Type: dl1.24xlarge(唯一可用的尺寸)。
  • Region: us-east-1。
  • Storage: 建议至少 50GB 的 Amazon EBS 存储,因为默认的 8GB 对训练任务不足。
  • Cost Management: 使用 Spot 实例可以显著降低成本;例如,将每小时费用从 $13.11 降至 $3.93(节省 70%)。

软件环境

通过 SSH 启动实例后,用户必须拉取特定的 Habana Docker 容器以确保 PyTorch 的兼容性。此设置推荐的镜像为 vault.habana.ai/gaudi-docker/1.5.0/ubuntu20.04/habanalabs/pytorch-installer-1.11.0:1.5.0-610

使用 Optimum Habana 微调 Transformers

在 Habana Gaudi 上训练 Transformer 模型可通过 optimum-habana 库实现。该包允许用户利用 Gaudi 硬件进行文本分类等任务。

实现工作流

要微调模型,需要完成以下步骤:

  1. 安装 Optimum Habana:克隆 optimum-habana 仓库并从源码安装该包。
  2. 准备环境:通过文本分类示例目录中的 requirements.txt 文件安装所需的 Python 依赖。
  3. 执行训练:使用 run_glue.py 脚本启动训练任务。

性能示例:BERT 文本分类

在对 GLUE 基准的 MRPC 任务微调 bert-large-uncased-whole-word-masking 模型的演示中,取得了以下结果:

  • Training Time: 2 分钟 12 秒。
  • F1 Score: 0.9181。
  • Training Throughput: 82.824 样本/秒。
  • Evaluation Accuracy: 0.8505。

用户可以直接从 Hugging Face Hub 上 Habana 组织获取 BERT 及其他流行模型的 Habana Gaudi 配置。

Sources