在人工智能和自然語言處理領域,大語言模型(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模型為例,介紹如何使用已準備好的訓練數據進行模型訓練。
進入快速開始頁面。
登錄PAI控制臺。
在頂部左上角根據實際情況選擇地域。
在左側導航欄選擇工作空間列表,單擊指定工作空間名稱,進入對應工作空間內。
在左側導航欄選擇快速開始 > 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模型格式轉換。