「AWS Trainiumを使用した高速で費用効果の高いLLaMA 2の微調整」

「AWS Trainiumを活用した高速でコストパフォーマンスの高いLLaMA 2の微調整」

大型言語モデル(LLM)は、開発者、科学者、技術者、起業家、経営者など、さまざまな業界の人々の興味と関心を引きつけています。これらのモデルは、対話エージェントのカスタマーサポート、マーケティングのためのコンテンツ作成、コーディングアシスタントなどの応用において、質問応答、要約、翻訳などに使用することができます。

最近、Metaは研究者と商業企業の両方向けにLlama 2をリリースしました。これは、MosaicMLのMPTFalconを含む他のLLMのリストに加わるものです。この記事では、LLMのトレーニング時間とコストを削減するために専用のアクセラレータであるAWS Trainium上でLlama 2をファインチューニングする方法、AWS Neuron SDK (NeMo Megatron-LMを使用) が提供するファインチューニングスクリプト、使用したさまざまな設定、そして見られたスループットの結果について解説します。

Llama 2モデルについて

Llama 1モデルやGPTのような他のモデルと同様に、Llama 2はTransformerのデコーダー専用アーキテクチャを使用しています。3つのサイズで提供されており、7兆、13兆、70兆のパラメータを持っています。Llama 1と比較して、Llama 2はコンテキストの長さを2,000から4,000に倍増させ、グループ化クエリアテンション(70兆の場合のみ)を使用しています。Llama 2の事前学習モデルは2兆トークンで学習され、ファインチューニングモデルは100万以上の人間の注釈で学習されています。

Llama 2の分散トレーニング

2,000と4,000のシーケンス長でLlama 2を用いるために、NeMo Megatronを使用してデータ並列化(DP)、テンソル並列化(TP)、およびパイプライン並列化(PP)をサポートするスクリプトを実装しました。具体的には、単語埋め込み、回転埋め込み、RMSNorm、Swiglu活性化などのいくつかの新機能の実装により、Llama 2トレーニングスクリプトのサポートにGPT Neuron Megatron-LMの一般的なスクリプトを使用しています。

トレーニング環境では、分散トレーニングとスケジューリングを行うためにNeMoフレームワークの下で管理されているマルチインスタンスクラスタを使用します。

まず、Llama 2モデルとトレーニングデータセットをダウンロードし、Llama 2トークナイザを使用して前処理を行います。たとえば、RedPajamaデータセットを使用する場合、次のコマンドを使用します:

wget https://data.together.xyz/redpajama-data-1T/v1.0.0/book/book.jsonlpython nemo/scripts/nlp_language_modeling/preprocess_data_for_megatron.py

モデルのダウンロードと前処理スクリプトの引数の詳細なガイダンスについては、Download LlamaV2 dataset and tokenizerを参照してください。

次に、モデルをコンパイルします:

sbatch --nodes 4 compile.slurm ./llama_7b.sh

モデルがコンパイルされたら、次のスクリプトを使用して最適な設定とハイパーパラメータが組み込まれたLlama 2のトレーニングジョブを起動します(例のコードに含まれています):

sbatch --nodes 4 run.slurm ./llama_7b.sh

最後に、TensorBoardを監視してトレーニングの進捗状況を追跡します:

tensorboard --logdir ./

言及した完全なサンプルコードとスクリプトについては、Llama 7BのチュートリアルおよびNeuron SDKのNeMoコードを参照して、詳細な手順を確認してください。

ファインチューニングの実験

OSCRA(Open Super-large Crawled ALMAnaCH coRpus)とQNLI(Question-answering NLI)のデータセットで7BモデルをNeuron 2.12環境(PyTorch)でファインチューニングしました。2,000と4,000のシーケンス長ごとに、batchsizegradient_accumulationなどの設定を最適化してトレーニング効率を向上させました。ファインチューニング戦略として、すべてのパラメーター(約500ステップ)の完全なファインチューニングを採用しました。この戦略は、より長いステップと大規模なデータセット(たとえば、1T RedPajama)によるより長時間のプレトレーニングに拡張することができます。NeMo Megatronを使用して、4,000のより大きなシーケンス長でモデルのファインチューニングが成功するように、シーケンス並列処理も有効にすることができます。以下の表は、Llama 7Bのファインチューニング実験の設定とスループットの結果を示しています。スループットは、インスタンス数が4まで増加するにつれてほぼ線形にスケールします。

分散ライブラリ データセット シーケンス長 インスタンス数 テンソルパラレル データパラレル パイプラインパラレル グローバルバッチサイズ スループット(seq/s)
Neuron NeMo Megatron OSCAR 4096 1 8 4 1 256 3.7
. . 4096 2 8 4 1 256 7.4
. . 4096 4 8 4 1 256 14.6
. QNLI 4096 4 8 4 1 256 14.1

最後のステップは、ベースモデルでの正確性を検証することです。GPU実験のための参照スクリプトを実装し、GPUとTrainiumのトレーニングカーブが一致することを確認しました。以下の図は、QNLIデータセットでのトレーニングステップの数に対する損失カーブを示しています。GPUでは混合精度(青色)が採用され、Trainiumではデフォルトのストキャスティック丸めとbf16(オレンジ色)が採用されました。

トレーニングカーブ

結論

この記事では、TrainiumがLlama 2の高性能で費用効果の高い微調整を提供することを示しました。Trainiumを使用してNeMo Megatronを利用した分散事前学習とジェネレーティブAIモデルの微調整に関するリソースについては、AWS Neuron Reference for NeMo Megatronを参照してください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

アマゾンがベッドロックを展開:AIモデルの評価と人間のベンチマーキング

開発において、Amazon Bedrockは、特定のニーズに合わせて選択し、比較し、最適なファウンデーションモデル(FM)を選択する...

機械学習

このAIニュースレターは、あなたが必要とするすべてです#71

今週、ジョー・バイデン大統領は人工知能の規制を再び注目させるために、人工知能の監督を目的とする行政命令に署名しました...

機械学習

このAIニュースレターは、あなたが必要とするすべてです #57

「AIの世界では、LLMモデルのパフォーマンス評価が注目の話題となりました特に、スタンフォードとバークレーの学生による最近...

人工知能

会話の魔法を解き放つ:ChatGPTをReact.jsとNode.jsと統合する

この包括的なガイドでは、ChatGPTのフロントエンドにはReact.js、バックエンドにはNode.jsを組み合わせた強力なデュオの統合...

機械学習

「ディープラーニングベースのフレームワークを使用した高速かつ正確な音響ホログラム生成」

DGIST電気工学およびコンピュータサイエンス学科の黄宰潤教授率いるチームは、ホログラムに基づいたリアルタイムでの焦点超音...

AIニュース

Googleの安全なAIフレームワークを紹介します

今日、GoogleはSecure AI Frameworkをリリースし、協力してAI技術を安全に保護するのを支援します