「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

人工知能

「2023年に試してみることができるChatGPTのトップ22の代替品(無料および有料)」

ChatGPTは、さまざまなタスクにおいて最も有名で一般的に使用されているAIツールです。さまざまなコースや教材があり、その潜...

人工知能

「人工知能対応IoTシステムのための継続的インテグレーションと継続的デプロイメント(CI/CD)」

CI/CDは、IoTにおけるAIにとって重要ですバージョン管理、テスト、コンテナ、モニタリング、セキュリティは、信頼性のある展...

人工知能

「Stack Overflowは、OverflowAIによって開発者サポートを革新します」

Stack Overflowは、技術的な回答を求める開発者向けの有名なプラットフォームです。革新的なOverflowAIの提供により、生成型A...

データサイエンス

トロント大学の研究者が、大規模な材料データセットにおける驚くべき冗長性と、情報豊かなデータの機械学習パフォーマンスの向上における力を明らかにする

AIの登場と共に、その利用は私たちの生活のあらゆる分野で感じられるようになっています。AIはあらゆる生活領域での応用が見...

機械学習

「MFAを超えて:オクタがエンタープライズアイデンティティを再定義する方法」

新しい解決策は、AIと自動化を活用して企業のセキュリティ姿勢を強化し、従業員の生産性を高めます

AI研究

このAI研究論文は、視覚の位置推定とマッピングのための深層学習に関する包括的な調査を提供しています

もし私があなたに「今どこにいるの?」または「周りの様子はどうですか?」と尋ねたら、人間の多感覚知覚という独特な能力の...