SageMaker トレーニングジョブを使用した Amazon Nova モデルの微調整 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SageMaker トレーニングジョブを使用した Amazon Nova モデルの微調整

SageMaker トレーニングジョブで Amazon Nova モデルをファインチューニングすると、特定のユースケースに合わせて基盤モデルをカスタマイズする強力な方法が提供されます。

前提条件

トレーニングジョブを開始する前に、次の点に注意してください。

  • トレーニングジョブの入力データと出力を保存する Amazon S3 バケット。両方のバケットに 1 つのバケットを使用するか、データタイプごとに個別のバケットを使用できます。バケットがトレーニング用の他のすべてのリソースを作成する AWS リージョン のと同じ にあることを確認します。詳細については、「汎用バケットの作成」を参照してください。

  • トレーニングジョブを実行するアクセス許可を持つ IAM ロール。必ず IAM ポリシーを にアタッチしてくださいAmazonSageMakerFullAccess。詳細については、SageMaker 実行ロールの使用方法」を参照してください。

  • Amazon Nova の基本レシピについては、「」を参照してくださいAmazon Nova レシピの取得

データ準備

高品質で適切にフォーマットされたデータを準備することは、大規模言語モデルのファインチューニングプロセスにおける重要な最初のステップです。教師ありファインチューニング (SFT) と Direct Preference Optimization (DPO) のどちらをフルランクまたは低ランク適応 (LoRA) アプローチで使用する場合でも、モデルトレーニングを成功させるには、データは特定の形式要件に従う必要があります。このセクションでは、Amazon Nova モデルの微調整のためにデータセットを効果的に準備するために必要なデータ形式、検証方法、ベストプラクティスの概要を説明します。

SFT

SFT データ形式の要件 - フルランク SFT と LoRA SFT の両方で、データは Converse 形式に従う必要があります。この形式の例と制約については、「モデルを理解する」の「ファインチューニングのためのデータの準備」を参照してください。

SFT データ検証 - 送信前にデータセット形式を検証するには、Amazon Bedrock サンプルリポジトリから次の検証スクリプトを使用することをお勧めします。この検証ツールは、ファインチューニングジョブを送信する前に、jsonlファイルが必須の形式仕様に準拠し、潜在的な問題を特定するのに役立ちます。

DPO

DPO データ形式の要件 - フルランクの DPO と LoRA の DPO の両方について、データは Converse 形式に従う必要があります。また、データセットは SFT と同様の形式である必要があります。ただし、最後のターンにはプリファレンスペアが必要です。

DPO データセットのその他の制約 - データセットのその他の制約は SFT でも同じです。詳細については、「データセットの制約」を参照してください。トレーニング用の 1 つの JSONL ファイルと検証用の 1 つの JSONL ファイルが必要です。検証セットはオプションです。

DPO データセットのレコメンデーション - 効果的なトレーニングのために最低 1,000 個の設定ペア。高品質のプリファレンスデータを使用すると、より効率的な結果が得られます。

サンプル DPO データ形式

// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }

サンプル DPO データ形式 (マルチターン)

{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }

サンプル DPO データ形式 (イメージ付き)

{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }

トレーニングジョブのデフォルトは 1 日間の時間制限ですが、以下の表の見積もりでは、説明のために 5 日間のトレーニング期間を想定しています。ベストプラクティスとして、より長いトレーニングワークロードに対応するために、トレーニング時間の制限を最大 28 日間に増やすことをお勧めします。制限の引き上げをリクエストするには、「クォータの引き上げのリクエスト」を参照してください。

SFT データセットの制限

コンテキストの長さ モデル [メソッド] データセット 説明

32,000 コンテキスト長ジョブ

Amazon Nova Micro フルランクと LoRA テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 100,000 レコードしか保持できません。

Amazon Nova Lite

フルランク テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 100,000 レコードを持つことができます。

イメージと動画

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 50,000 個のレコードを持つことができます。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 100,000 レコードを持つことができます。

イメージと動画 すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 90,000 個のレコードを持つことができます。

Amazon Nova Pro

フルランク テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 40,000 個のレコードを持つことができます。

イメージと動画

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 30,000 個のレコードを持つことができます。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 40,000 個のレコードを持つことができます。

イメージと動画

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 35,000 個のレコードを持つことができます。

64,000 コンテキスト長ジョブ

Amazon Nova Micro フルランクと LoRA テキストのみ

すべてのレコードのコンテキスト長が 64,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 50,000 レコードしか保持できません。

Amazon Nova Lite

フルランク テキストのみ

すべてのレコードのコンテキスト長が 64,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 50,000 個のレコードを持つことができます。

イメージと動画

すべてのレコードのコンテキスト長が 64,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 30,000 個のレコードを持つことができます。

LoRA -

LoRA は、Nova Lite の 64k ではサポートされていません。

Amazon Nova Pro フルランクと LoRA テキストのみ

すべてのレコードのコンテキスト長が 64,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 17,000 個のレコードを持つことができます。

イメージと動画

すべてのレコードのコンテキスト長が 64,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 15,000 個のレコードを持つことができます。

DPO データセットの制限

コンテキストの長さ モデル [メソッド] データセット 説明

16,000 コンテキスト長ジョブ

Amazon Nova Micro フルランク テキストのみ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 120,000 レコードしか保持できません。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 125,000 レコードしか保持できません。

Amazon Nova Lite

フルランク テキストのみ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 130,000 レコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、2 日以内に 20,000 サンプルを完了できます。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 140,000 個のレコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、例えば 5 エポックで実行する場合、2 日以内に 20,000 サンプルを完了できます。

Amazon Nova Pro

フルランク テキストのみ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 45,000 個のレコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、たとえば 5 エポックで実行すると、4 日以内に 20,000 サンプルを完了できます。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 55,000 個のレコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 16,000 のデータセットを使用し、たとえば 5 エポックで実行すると、4 日以内に 20,000 サンプルを完了できます。

32,000 コンテキスト長ジョブ

Amazon Nova Micro フルランク テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 45,000 レコードしか保持できません。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 50,000 レコードしか保持できません。

Amazon Nova Lite

フルランク テキストのみ

すべてのレコードのコンテキスト長が 32,000 であるデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 55,000 個のレコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 35,000 個のレコードを持つことができます。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 60,000 個のレコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 35,000 個のレコードを持つことができます。

Amazon Nova Pro フルランク テキストのみ

すべてのレコードのコンテキスト長が 32,000 であるデータセットを使用し、たとえば 5 エポックで を実行する場合、最大 20,000 個のレコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 64,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 16,000 個のレコードを持つことができます。

LoRA テキストのみ

すべてのレコードのコンテキスト長が 32,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 22,000 個のレコードを持つことができます。

イメージ

すべてのレコードのコンテキスト長が 64,000 のデータセットを使用し、例えば 5 エポックで を実行する場合、最大 18,000 個のレコードを持つことができます。

エポックの数やレコードのコンテキストの長さを減らすことで、より多くのレコードを提供できます。

フルランク SFT および LoRA PEFT 設定

このセクションでは、フルランク教師ありファインチューニング (SFT) アプローチと低ランク適応パラメータ効率ファインチューニング (LoRA PEFT) アプローチの両方のレシピ設定に関するガイダンスについて説明します。これらのレシピファイルは、モデルカスタマイズジョブの設計図として機能し、モデルがデータから学習する方法を決定するトレーニングパラメータ、ハイパーパラメータ、およびその他の重要な設定を指定できます。ハイパーパラメータを調整するには、「ハイパーパラメータの選択」のガイドラインに従います。

ファインチューニング設定 (フルランク SFT および LoRA PEFT)

レシピの点でフルランク SFT と LoRA PEFT の唯一の違いはLoRA PEFT 設定です。これはフルランクの場合は「null」に設定され、LoRA PEFT ベースのファインチューニングを使用する場合は適切な値に設定されます。サンプルレシピは、SageMaker HyperPod レシピ GitHub リポジトリで利用できます。次の表は、役に立つ可能性のある詳細な設定を示しています。

「実行」設定について。

キー 定義 Micro ライト Pro (プロ)
構成を実行する model_type

使用する Nova モデルバリアントを指定します。このフィールドは変更しないでください。

「amazon.nova-micro-v1:0:128k」

「amazon.nova-lite-v1:0:300k」

「amazon.nova-pro-v1:0:300k」

model_name_or_path

ベースモデルへのパス。

「nova-micro/prod」

「nova-lite/prod」

「nova-pro/prod」

レプリカ

分散トレーニングに使用するコンピューティングインスタンスの数。

2、4、または 8

4、8、または 16

6、12、または 24

「training_config」設定について。

ルートキー 子キー 定義 最小 最大
max_length

トークンの最大シーケンス長。これにより、トレーニングのコンテキストウィンドウのサイズが決まります。最も近い 1024 倍、最大値: 65536 (Lite Lora 32768 の場合) に調整できます。

1024

32768 をサポートする Lite LoRA を除く 65536。
global_batch_size

ステップあたりのサンプルの合計、許容値は 16、32、64 です。最大値: Nova Pro の場合は 32、Nova Lite および Micro の場合は 64。

16 Nova Pro の場合は 32、Nova Lite および Micro の場合は 64。
トレーナー設定 トレーナー max_epochs

トレーニングデータセットを通過する完全なパスの数。ほとんどのカスタマイズタスクでは、通常 1~5 エポックで十分です。最大 5 つにすることをお勧めします。

1 -
モデル設定 モデル hidden_dropout

非表示状態の出力を削除する確率。(0.0~0.2) を増やして、小さいデータセットのオーバーフィットを減らします。境界は 0~1 です。

0 1
モデル attention_dropout

注意の重みが減る確率。一般化に役立ちます。境界は 0~1 です。

0 1
モデル ffn_dropout

フィードフォワードネットワーク出力を削除する確率。境界は 0~1 です。

0 1
オプティマイザの設定 model.optim lr

学習レートは、最適化中のステップサイズを制御します。制限は 0~1 です。通常、パフォーマンスを高めるために 1e-6 から 1e-4 の間で設定します。

0 1
model.optim 名前

オプティマイザアルゴリズム。現在は、distributed_fused_adam のみがサポートされます。

- -
model.optim adam_w_mode

AdamW モード (true/false) を有効にします。

- -
model.optim eps

数値安定性のためのイプシロン。

model.optim weight_decay

L2 正則化の強度は、0.0 から 1.0 の間である必要があります。

0 1
model.optim ベータ

Adam オプティマイザのベータは 0.0 から 1.0 の間である必要があります。

0 1
model.optim sched_warmup_steps

学習率を徐々に増やすステップの数。これにより、トレーニングの安定性が向上します。1~20。

1 20
model.optim sched_constant_steps

一定の学習レートでのステップ。

1.00E-10 1.00E-06
model.optim sched.min_lr

減衰終了時の最小学習レート。制限は 0~1 ですが、学習レートより小さくする必要があります。

0 1

LoRA PEFT 設定

model.peft peft_scheme

「lora」または「null」を使用します。「lora」はパラメータ効率の高いファインチューニングに LoRA PEFT メソッドを使用します。「null」はフルランクのファインチューニングを開始します。

- -
model.peft lora_tuning.loraplus_lr_ratio

LoRA+ 学習レートスケーリング係数は、0.0~100.0 の間でなければなりません。

0 100
model.peft lora_tuning.alpha

LoRA ウェイトのスケーリング係数。使用できる値は 32、64、96、128、160、192 です。

32 192
model.peft lora_tuning.adapter_dropout

LoRA パラメータの正則化。0.0 から 1.0 の間である必要があります。

0 1

特定の設定の微調整 (DPO)

LoRA PEFT と FullRank SFT と比較した Direct Preference Optimization (DPO) の違いは、dpo_cfg 設定と許容値のみです。DPO 専用に許可されている については、例の下の表を参照してください。サンプルレシピは、SageMaker HyperPod レシピ GitHub リポジトリで利用できます。次の表は、役に立つ可能性のある詳細な設定を示しています。

ルートキー 子キー 定義 最小 最大
max_length トークンの最大シーケンス長。これにより、トレーニングのコンテキストウィンドウのサイズが決まります。最も近い 1024 倍に調整可能、最大値: 32,768。

1024

32768

global_batch_size

グローバルバッチサイズ、許可される値は {16, 32, 64, 128, 256} です。

16 256
トレーナー設定 トレーナー max_epochs

トレーニングデータセットを通過する完全なパスの数。ほとんどのカスタマイズタスクでは、通常 1~5 エポックで十分です。最大エポックは 5 です。

1 5
モデル設定 モデル hidden_dropout

非表示状態の出力を削除する確率。(0.0~0.2) を増やして、小さいデータセットのオーバーフィットを減らします。境界は 0~1 です。

0 1
モデル attention_dropout

注意の重みが減る確率。一般化に役立ちます。境界は 0~1 です。

0 1
モデル ffn_dropout

フィードフォワードネットワーク出力を削除する確率。境界は 0~1 です。

0 1
オプティマイザの設定 model.optim lr

学習レートは、最適化中のステップサイズを制御します。制限は 0~1 です。通常、パフォーマンスを高めるために 1e-6 から 1e-4 の間で設定します。

0 1
model.optim 名前

オプティマイザアルゴリズム。現在は、distributed_fused_adam のみがサポートされます。

- -
model.optim adam_w_mode

AdamW モード (true/false) を有効にします。

- -
model.optim eps

数値安定性のためのイプシロン。

1.00E-10 1.00E-06
model.optim weight_decay

L2 正則化の強度は、0.0 から 1.0 の間である必要があります。

0 1
model.optim ベータ

Adam オプティマイザのベータは 0.0 から 1.0 の間である必要があります。

0 1
model.optim sched_warmup_steps

学習率を徐々に増やすステップの数。これにより、トレーニングの安定性が向上します。1~20。

1 20
model.optim sched_constant_steps

一定の学習レートでのステップ。

model.optim sched.min_lr

減衰終了時の最小学習レート。制限は 0~1 ですが、学習レートより小さくする必要があります。

0 1

LoRA PEFT 設定

model.peft peft_scheme

「lora」または「null」を使用します。「lora」はパラメータ効率の高いファインチューニングに LoRA PEFT メソッドを使用します。「null」はフルランクのファインチューニングを開始します。

- -
model.peft lora_tuning.loraplus_lr_ratio

LoRA+ 学習レートスケーリング係数は、0.0~100.0 の間でなければなりません。

0 100
model.peft lora_tuning.alpha

LoRA ウェイトのスケーリング係数。使用できる値は 32、64、96、128、160、192 です。

32 192
model.peft lora_tuning.adapter_dropout

LoRA パラメータの正規化。0.0 から 1.0 の間である必要があります。

0 1
DPO 設定 model-dpo_cfg beta

優先設定の適用の強さ。

0.001 0.1

カスタマイズされた Nova モデルを SageMaker トレーニングジョブで実行する

このセクションでは、Jupyter ノートブック環境を使用して SageMaker トレーニングジョブでカスタマイズされた Nova モデルを実行する方法を示します。トレーニングジョブの設定と起動のプロセスを説明する完全な例と、適切なコンテナイメージ URIs とインスタンス設定を選択するためのリファレンステーブルがあります。このアプローチにより、SageMaker のマネージドインフラストラクチャを活用してモデルをカスタマイズしながら、ファインチューニングワークフローをプログラムで制御できます。詳細については、SageMaker AI 推定器を使用してトレーニングジョブを実行する」を参照してください。

リファレンステーブル

サンプルノートブックを実行する前に、次の表を参照して、適切なコンテナイメージ URIs とインスタンス設定を選択してください。

イメージ URI の選択

レシピ イメージ URI

SFT イメージ URI

708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest

DPO イメージ URI

708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest

インスタンスタイプとカウントの選択

モデル ジョブタイプ インスタンスタイプ 推奨されるインスタンス数 許可されたインスタンス数
Amazon Nova Micro ファインチューニング (SFT/DPO)

p5.48xlarge

2 2、4、8
Amazon Nova Lite ファインチューニング (SFT/DPO)

p5.48xlarge

4 4、8、16
Amazon Nova Pro ファインチューニング (SFT/DPO)

p5.48xlarge

6 6、12、24

サンプルノートブック

次のサンプルノートブックは、トレーニングジョブを実行する方法を示しています。SageMaker AI トレーニングジョブを使用して Nova モデルをカスタマイズする方法に関するその他の入門ノートブックについては、SageMaker AI 推定器を使用してトレーニングジョブを実行する」を参照してください。

# 1. Install dependencies !pip install sagemaker # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")

ハイパーパラメータ最適化ガイダンス

Nova LLM モデルを効果的に微調整するには、ハイパーパラメータを慎重に選択する必要があります。このセクションでは基本的なレシピ構造とコンポーネントについて説明しますが、特定のユースケースに合わせてハイパーパラメータを最適化するには、追加のガイダンスが必要になることがよくあります。ハイパーパラメータの選択、ベストプラクティス、最適化戦略に関する包括的な推奨事項については、「ハイパーパラメータの選択」を参照してください。このリソースでは、データセットの特性とトレーニング目標に基づいて、適切な学習率、バッチサイズ、トレーニングエポック、その他の重要なパラメータを選択するための詳細なガイダンスを提供します。最適なモデルパフォーマンスを実現するためにレシピ設定を微調整する場合は、このガイドを参照することをお勧めします。

エポック、学習レート、学習ウォームアップステップの最小値、最大値、デフォルト値の詳細については、「モデルを理解する」の「ハイパーパラメータ」を参照してください。

一般的なレシピの変更

特定のユースケースに基づく一般的なレシピ調整は次のとおりです。

  • 小さいデータセットの場合 (< 1,000 の例)

    training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
  • コンピューティングが制限された効率のために

    peft: peft_scheme: "lora" lora_tuning:
  • 複雑な命令チューニングの場合

    optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability