有奖捉虫:行业应用 & 管理与支持文档专题 HOT

一、Tilearn.llm 大模型训练加速

训练加速能力详细使用文档(计算优化、通信优化、优化器融合、CPU/GPU亲和性优化、自适应混合精度)可参考 Tilearn.llm 使用说明
?
计算优化接口与 huggingface 完全兼容,以 llama 模型为例使用方法如下:
### TILEARN.LLM
from tilearn.llm.transformers import LlamaForCausalLM
?
### 模型接口与标准huggingface一致
model = LlamaForCausalLM.from_pretrained(...)

二、tiacc_training 旧版训练加速

tilearn.llm>=0.7.12,tilearn.ops>=0.2.0.1已经支持旧版tiacc_training加速能力(Tilearn.llm 使用说明第2节-通用训练加速功能介绍)
使用新的平台镜像 tilearn-llm0.4.2-torch2.1-deepspeed0.10.0-py3.10-cuda12.1-gpu 可直接使用

tiacc_training.distributed.launch 函数

初始化 DDP 通信加速优化,接口与原生 torch.distributed.launch 完全一致,会默认将原生 DDP 相关的函数调整为调用 TI-ACC 通信加速能力,原生 DDP 相关的主要模块/类包括:torch.distributed和 torch.nn.parallel.DistributedDataParallel()。

adaptfp16.MixedPrecision_TrainingPolicy 类

实现对训练过程中自动混合精度自适应策略的实例化,自适应策略包括时间混合精度、时间学习率混合精度策略、损失函数混合精度策略。 初始化参数:
参数
类型
是否必填
参数说明
示例
默认值
policy
INT
自适应混合精度策略,
0:时间混合精度,适用于通用自适应情况;
1:时间学习率混合精度策略,适用于训练过程中某一阶段 loss 波动出现异常的情况;
2:损失函数混合精度策略,适用于训练过程中 loss 下降过快或过慢情况。
0
start_time
INT
开启自适应混合精度的开始时间,一般建议设为10。策略为0和1时必填,为2时非必填。
10
10
end_time
INT
开启自适应混合精度的结束时间,一般建议设为最后一个 epoch 时间。策略为0和1时必填,为2时非必填。
1000
None
hold_time
INT
开启策略1时的保持时间,在保持时间内采用统一策略:开启或者不开启。一般建议为训练过程中 loss 异常波动的持续时间。策略为1时必填,为0和2时非必填。
20
None
interval_time
INT
开启策略2的间隔时间,默认值为1000,即每间隔1000轮 epoch 开启策略2。策略为2时需要填写,为0和1时无需必填。
1000
1000
interval_hold_time
INT
在 interval_time 间隔时间开启策略2后的保持时间,默认值为100,如 interval_time 为1000,即在1000-1100,2000-2100...开启策略2。策略为2时需要填写,为0和1时无需必填。
100
100
实例化对象:
对象
类型
对象说明
policy
MixedPrecision_TrainingPolicy 类
训练过程中自动混合精度自适应策略的实例化对象

enable_mixed_precision 函数方法

属于 MixedPrecision_TrainingPolicy 类,根据输入的参数得到当前 epoch 是否需要开启自动混合精度。 输入参数:
参数
类型
是否必填
参数说明
示例
默认值
epoch
INT
当前的 epoch
20
scaler
torch.cuda.amp.GradScaler
梯度缩放实例化对象
scaler
lr
float
lr 是当前 epoch 的学习率
0.01
None
loss
float
loss 是上一轮 epoch 的损失值
0.1
None
输出参数:
输出参数
类型
参数说明
mixed_precision
BOOL
输入的参数得到当前 epoch 是否需要开启自动混合精度,是返回 TRUE,否则返回 FLASE。
?


http://www.vxiaotou.com