在 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 硬件进行文本分类等任务。
实现工作流
要微调模型,需要完成以下步骤:
- 安装 Optimum Habana:克隆
optimum-habana仓库并从源码安装该包。 - 准备环境:通过文本分类示例目录中的
requirements.txt文件安装所需的 Python 依赖。 - 执行训练:使用
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 配置。