在人工智能和自然语言处理领域,大语言模型(LLM)已经成为推动技术进步的核心力量。但在实际应用中,针对特定任务或领域的继续预训练往往是提升模型性能的关键。本方案以通义千问2(Qwen2)模型为例,为您介绍如何对模型进行继续预训练。
准备继续预训练数据
大模型的持续预训练解决方案采用了Pai-Megatron-Patch工具包。该工具包专为简化使用Megatron框架训练大语言模型(LLM)和视觉语言模型(VLM)而设计,旨在高效利用GPU计算能力。通过Pai-Megatron-Patch,开发者可以轻松应用Megatron-LM提供的多种加速技术来训练常见的大型语言模型。
此外,Pai-Megatron-Patch使用MMAP格式的预训练数据,这种格式经过预先的tokenize处理,大大缩短了数据读入时间,尤其在数据量庞大时优势明显。您可以通过其数据转换教程,将原始数据转化为MMAP格式,同时在PAI-Designer中也预置了“文本数据转mmap格式”组件。不管是通过数据转换教程还是通过Designer组件,在使用时,PAI-QuickStart限制MMAP格式数据文件名为dataset.bin和dataset.idx。为方便试用,PAI提供了已经处理好的小规模数据,您可直接下载使用:
wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/llama3-datasets/wudao_llama3bpe_content_document.bin
wget https://atp-modelzoo-wlcb-pai.oss-cn-wulanchabu.aliyuncs.com/release/models/pai-megatron-patch/llama3-datasets/wudao_llama3bpe_content_document.idx
mv wudao_llama3bpe_content_document.bin dataset.bin
mv wudao_llama3bpe_content_document.idx dataset.idx
使用PAI-QuickStart进行模型继续预训练
完成数据准备后,您可以在PAI-QuickStart中直接进行模型的继续预训练。本方案以Qwen2-72B模型为例,介绍如何使用已准备好的训练数据进行模型训练。
进入Model Gallery页面。
登录PAI控制台。
在顶部左上角根据实际情况选择地域。
在左侧导航栏选择工作空间列表,单击指定工作空间名称,进入对应工作空间内。
在左侧导航栏选择快速开始 > Model Gallery。
在Model Gallery页面右侧的模型列表中,单击通义千问2-72B-预训练(Megatron版)模型卡片,进入模型详情页面。
在模型详情页单击右上角训练。关键配置如下:
训练输出配置:仅支持NAS数据集(创建数据集)作为输出Channel。在输出文件夹中,checkpoint子文件夹保存训练过程中存储的各个Megatron Checkpoint。
计算资源配置:Qwen2-72B模型继续预训练消耗的计算资源为4机32*A100/A800/H100/H800(80G)或以上规格。
超参数配置:训练算法支持的超参信息如下,您可以根据使用的数据,计算资源等调整超参,或是使用算法默认配置的超参。
超参数
默认值
类型
含义
job_name
qwen2-72b-cpt
string
指定模型训练任务类型,不需要修改。
batch_size
1
int
每张GPU卡在一次训练迭代的数据量。
global_batch_size
32
int
全部GPU卡在一次训练迭代的数据量,计算方式为batch_size*GPU卡数。
learning_rate
5e-5
float
模型训练的学习率。
min_learning_rate
5e-6
float
模型训练的最小学习率。
sequence_length
1024
int
文本序列长度。
pad_length
128
int
文本序列填充长度。
save_interval
1000
int
每次保存Checkpoint的训练迭代次数。
train_tokens
1638400
int
训练任务总消耗的token数,其中,每个迭代消耗的token数为global_batch_size*sequence_length。
warmup_tokens
163840
int
训练任务warmup阶段总消耗的token数。
单击训练,PAI-QuickStart自动跳转到模型训练页面,并开始进行训练,您可以查看训练任务状态和训练日志。
(可选)将模型Checkpoint转换为HuggingFace格式
Qwen2-72B模型预训练格式为Megatron Dense Checkpoint。如果需要将此格式的Checkpoint转换为 Huggingface模型,请参见Megatron-Core模型格式转换。