使用 AutoModel 和 Accelerator 准备模型

使用 PyTorch 高效训练 AI 模型

Dennis Lee

Data Engineer, Amazon

认识您的讲师!

$$

  • 数据工程师

讲师照片

服务器图标

使用 PyTorch 高效训练 AI 模型

认识您的讲师!

$$

  • 数据工程师
  • 数据科学家

讲师照片

服务器与灯泡图标

使用 PyTorch 高效训练 AI 模型

认识您的讲师!

$$

  • 数据工程师
  • 数据科学家
  • 电气工程博士

讲师照片

服务器、灯泡与学位帽图标

使用 PyTorch 高效训练 AI 模型

认识您的讲师!

$$

  • 数据工程师
  • 数据科学家
  • 电气工程博士

讲师照片

服务器、灯泡与学位帽图标

$$

$$

$$

很高兴与您分享最佳实践!

使用 PyTorch 高效训练 AI 模型

高效 AI 训练路线图

  • 分布式 AI 模型训练

笔记本电脑

使用 PyTorch 高效训练 AI 模型

高效 AI 训练路线图

  • 分布式 AI 模型训练

笔记本电脑和一位在等待的人

使用 PyTorch 高效训练 AI 模型

高效 AI 训练路线图

  • 分布式 AI 模型训练

笔记本电脑、等待的人与内存芯片

  • ↓ ↓ 大语言模型的训练时间

日历

使用 PyTorch 高效训练 AI 模型

高效 AI 训练路线图

流程图,展示课程主题:数据准备、分布式训练、高效训练与优化器。

$$

  • 数据准备:将数据放到多个设备上
使用 PyTorch 高效训练 AI 模型

高效 AI 训练路线图

流程图,展示课程主题:数据准备、分布式训练、高效训练与优化器。

$$

  • 数据准备:将数据放到多个设备上
  • 分布式训练:将训练扩展到多设备
使用 PyTorch 高效训练 AI 模型

高效 AI 训练路线图

流程图,展示课程主题:数据准备、分布式训练、高效训练与优化器。

$$

  • 数据准备:将数据放到多个设备上
  • 分布式训练:将训练扩展到多设备
  • 高效训练:优化现有设备的利用
使用 PyTorch 高效训练 AI 模型

高效 AI 训练路线图

流程图,展示课程主题:数据准备、分布式训练、高效训练与优化器。

$$

  • 数据准备:将数据放到多个设备上
  • 分布式训练:将训练扩展到多设备
  • 高效训练:优化现有设备的利用
  • 优化器:加速训练
使用 PyTorch 高效训练 AI 模型

CPU

  • 大多数笔记本配备 CPU

         

CPU 笔记本

GPU

  • GPU 可训练大模型

         

GPU 笔记本

使用 PyTorch 高效训练 AI 模型

CPU 与 GPU 对比

CPU

  • 大多数笔记本配备 CPU
  • 为通用计算设计
  • 控制流更强

         

用于日常任务的笔记本

GPU

  • GPU 可训练大模型
  • 专长于高度并行计算
  • 擅长矩阵运算

         

用于并行计算的笔记本

使用 PyTorch 高效训练 AI 模型

分布式训练

分布式训练示意图,展示模型复制与数据分片。

  • 采用数据分片:每个设备并行处理一部分数据
使用 PyTorch 高效训练 AI 模型

分布式训练

分布式训练示意图,展示模型复制与数据分片。

  • 采用数据分片:每个设备并行处理一部分数据
  • 模型复制:每个设备执行前向/反向传播
  • 梯度聚合:指定设备聚合梯度
  • 参数同步:指定设备共享更新后的参数
使用 PyTorch 高效训练 AI 模型

事半功倍:利用预训练模型

  • 利用预训练的 Transformer 模型
  • 调用 AutoModelForSequenceClassification 初始化模型参数
  • 显示配置
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(model_name)

print(model.config)
DistilBertConfig {
  "architectures": ["DistilBertForMaskedLM"],
  "dim": 768,
  "dropout": 0.1,
  "hidden_dim": 3072,
  ...
使用 PyTorch 高效训练 AI 模型

使用 Accelerator 进行设备放置

  • Hugging Face 类 🤗
  • Accelerator 自动检测可用设备
  • 自动化设备放置与数据并行:accelerator.prepare()
  • 将类型为 torch.nn.Module 的模型放到首个可用 GPU 上
  • 若无 GPU,则使用 CPU
from accelerate import Accelerator
accelerator = Accelerator()
model = accelerator.prepare(model)

print(accelerator.device)
cpu
使用 PyTorch 高效训练 AI 模型

让我们来练习!

使用 PyTorch 高效训练 AI 模型

Preparing Video For Download...