特定のタスクまたはドメインに合わせて調整された継続的な事前トレーニングにより、実際の使用における大規模言語モデル (LLM) のパフォーマンスが向上します。 このトピックでは、例としてQwen2-72Bモデルを使用して、LLMで継続的な事前トレーニングを実行する方法について説明します。
背景情報
このトピックでは、Pai-Megatron-Patchツールキットを使用して、継続的な事前トレーニングを実行します。 Pai-Megatron-Patchは、Megatronフレームワークを使用してLLMとビジョン言語モデル (VLM) を簡単にトレーニングするために設計されたトレーニングツールキットです。 Pai-Megatron-Patchは、LLMにGPUの計算能力を効果的に利用することを目的としており、Megatron-LMによって提供される高速化技術を使用して、一般的に使用されるLLMの便利なトレーニングを可能にします。
データの準備
Pai-Megatron-Patchは、MMAP形式の事前トレーニングデータを使用します。これは、特に大規模なデータセットシナリオでデータの読み込みを修正するために事前トークン化されています。 次のいずれかの方法で、MMAP形式のデータを準備できます。
生データをMMAP形式に自分で変換します。「pretrain_data_前処理」をご参照ください。
Visualized Modeling (デザイナー) の [データをmmapフォーマットに変換] コンポーネントを使用します。 詳細については、「機械学習デザイナーの概要」をご参照ください。
トライアル用の小規模データセットのダウンロード:
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でデータを使用するには、MMAPファイルの名前がdataset.binおよびdataset.idxである必要があります。
PAI-QuickStartを使用して継続的な事前トレーニング
以下のステップは、Qwen2-72Bについて準備されたデータを用いて継続的な事前訓練を行う。
モデルギャラリーページに移動します。
PAI コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースを見つけ、ワークスペースの名前をクリックします。
左側のナビゲーションウィンドウで、[クイックスタート] > [モデルギャラリー] を選択します。
モデルギャラリーページで、Qwen2-72B-Base (メガトロン) のモデルカードを見つけて、モデルカードをクリックします。
Qwen2-72B-Base (メガトロン) ページで、右上隅の電車をクリックします。 Trainパネルで、次の主要なパラメータを設定します。
出力設定: ModelOutputパスを指定します。 NASデータセットのみがサポートされています。 データセットの作成方法については、「データセットの作成と管理」をご参照ください。 トレーニング中、Megatronチェックポイントはパスのチェックポイントサブフォルダに保存されます。
コンピューティングリソース: Qwen2-72Bの継続的な事前トレーニングには、4つのノードと、A100/A800/H100/H800 (80 GBのメモリ) 以上の32個のGPUが必要です。
ハイパーパラメータ: トレーニングアルゴリズムは、次のハイパーパラメータをサポートしています。 データとリソースに基づいてハイパーパラメータを調整したり、デフォルトの設定を使用したりできます。
ハイパーパラメータ
デフォルト値
タイプ
説明
job_name
qwen2-72b-cpt
String
トレーニングジョブタイプ。 変更は必要ありません。
batch_size
1
int
1つの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
チェックポイントを保存する頻度。
train_tokens
1638400
int
トレーニングジョブで消費されるトークンの総数。 各反復で消費されるトークンの数は、global_batch_sizeにsequence_lengthを掛けたものです。
warmup_tokens
163840
int
トレーニングジョブのウォームアップ段階で消費されるトークンの数。
[微調整] をクリックしてトレーニングを開始します。 PAI-QuickStartは、トレーニングジョブのステータスとログを監視できるモデルトレーニングページにリダイレクトします。
(オプション) チェックポイントをHuggingFace形式に変換
Qwen2-72Bのプレトライアン処理は、Megatron Dense Checkpointフォーマットを使用する。 この形式のチェックポイントをHuggingFace形式に変換するには、「Megatron-CoreからHuggingfaceへの変換」をご参照ください。