ファインチューニング用の基盤モデルとハイパーパラメータ - Amazon SageMaker AI

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

ファインチューニング用の基盤モデルとハイパーパラメータ

基盤モデルは計算コストが高く、ラベルの付いていない大規模なコーパスでトレーニングされます。事前トレーニング済みの基盤モデルを微調整することは、小規模なコーパスでモデルをカスタマイズしながら、その幅広い機能を活用する手頃な方法です。微調整は、さらにトレーニングを重ねるカスタマイズ方法で、モデルの重みは変わります。

微調整は、次のような必要がある場合に役立ちます。

  • 特定のビジネスニーズに合わせたモデルのカスタマイズ

  • 業界用語、専門用語、その他の特殊な用語など、ドメイン固有の言語をうまく扱うためのモデル

  • 特定のタスクに対するパフォーマンスの強化

  • アプリケーションにおける正確で相対的、かつコンテキスト対応のレスポンス

  • より事実に即しており、有害性が低く、特定の要件により合致したレスポンス

ユースケースと選択した基盤モデルに応じて、微調整には主に 2 つのアプローチがあります。

  1. ドメイン固有のデータに基づいてモデルを微調整することに関心がある場合は、「ドメイン適応を使用して大規模言語モデル (LLM) を微調整する」を参照してください。

  2. プロンプトとレスポンスの例を使用してインストラクションベースの微調整を行うことに興味がある場合は、「プロンプトの指示を使用して大規模言語モデル (LLM) を微調整する」を参照してください。

ファインチューニングに使用できる基盤モデル

以下の JumpStart 基盤モデルのいずれかを微調整できます。

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • BloomZ 7B1 FP16

  • Code Llama 13B

  • Code Llama 13B Python

  • Code Llama 34B

  • Code Llama 34B Python

  • Code Llama 70B

  • Code Llama 70B Python

  • Code Llama 7B

  • Code Llama 7B Python

  • CyberAgentLM2-7B-Chat (CALM2-7B-Chat)

  • Falcon 40B BF16

  • Falcon 40B 指示 BF16

  • Falcon 7B BF16

  • Falcon 7B 指示 BF16

  • Flan-T5 Base

  • Flan-T5 Large

  • Flan-T5 Small

  • Flan-T5 XL

  • Flan-T5 XXL

  • Gemma 2B

  • Gemma 2B Instruct

  • Gemma 7B

  • Gemma 7B Instruct

  • GPT-2 XL

  • GPT-J 6B

  • GPT-Neo 1.3B

  • GPT- ネオ 125M

  • GPT-NEO 2.7B

  • 照明GPT指示 6B

  • Llama 2 13B

  • Llama 2 13B Chat

  • Llama 2 13B Neuron

  • Llama 2 70B

  • Llama 2 70B Chat

  • Llama 2 7B

  • Llama 2 7B Chat

  • Llama 2 7B Neuron

  • Mistral 7B

  • Mixtral 8x7B

  • Mixtral 8x7B Instruct

  • RedPajama INCITE ベース 3B V1

  • RedPajama INCITE ベース 7B V1

  • RedPajama INCITE チャット 3B V1

  • RedPajama INCITE チャット 7B V1

  • RedPajama INCITE 3B V1 を指示する

  • RedPajama INCITE 指示 7B V1

  • Stable Diffusion 2.1

一般的にサポートされているファインチューニングのハイパーパラメータ

ファインチューニング時に使用できるハイパーパラメータは、基盤モデルによって異なります。以下は、トレーニング中にモデルをさらにカスタマイズするために一般的にサポートされているハイパーパラメータです。

推論パラメータ 説明

epoch

トレーニング中にモデルがファインチューニングのデータセットを何回繰り返すかを示す数 (エポック数)。1 より大きい整数を指定する必要があります。

learning_rate

ファインチューニングのトレーニングサンプルの各バッチを終了した後で、モデルの重みをどの程度更新するかを表す値 (学習率)。0 より大きい正の浮動小数点数を指定する必要があります。

instruction_tuned

モデルでインストラクションチューニングを行うかどうかを指定します。'True' または 'False' を指定する必要があります。

per_device_train_batch_size

トレーニングCPU用のGPUコアまたは あたりのバッチサイズ。正の整数を指定する必要があります。

per_device_eval_batch_size

GPU コアまたは評価CPU用のバッチサイズ。正の整数を指定する必要があります。

max_train_samples

デバッグの目的またはトレーニングの迅速化のために、トレーニングのサンプルの数をこの値に切り詰めます。値を -1 にした場合、モデルはすべてのトレーニングサンプルを使用します。正の整数または -1 を指定する必要があります。

max_val_samples

デバッグの目的またはトレーニングの迅速化のために、検証のサンプルの数をこの値に切り詰めます。値を -1 にした場合、モデルはすべての検証サンプルを使用します。正の整数または -1 を指定する必要があります。

max_input_length

トークン化後の入力シーケンスの最大長。これより長いシーケンスは切り詰められます。-1 の場合、max_input_length は 1024 またはトークナイザで定義された model_max_length の小さい方に設定されます。正の値に設定すると、max_input_length は指定された値とトークナイザで定義された model_max_length の小さい方に設定されます。正の整数または -1 を指定する必要があります。

validation_split_ratio

検証チャネルがない場合に、トレーニングデータをトレーニングと検証に分割する比率。0~1 の間で指定する必要があります。

train_data_split_seed

検証データが存在しない場合に、入力トレーニングデータをモデルが使用するトレーニングデータと検証データにランダムに分割するためのシードを指定します。整数を指定する必要があります。

preprocessing_num_workers

前処理に使用するプロセスの数。None の場合、メインプロセスが前処理に使用されます。

lora_r

Low-Rank Adaptation (LoRA) の r 値。重みの更新のスケーリング係数として機能します。正の整数を指定する必要があります。

lora_alpha

Low-Rank Adaptation (LoRA) のアルファ値。重みの更新のスケーリング係数として機能します。一般に、lora_r のサイズの 2~4 倍にします。正の整数を指定する必要があります。

lora_dropout

Low-Rank Adaptation (LoRA) 層のドロップアウト率。0~1 の間の正の浮動小数点数を指定する必要があります。

int8_quantization

True の場合、モデルはトレーニング用に 8 ビット精度でロードされます。

enable_fsdp

True の場合、トレーニングでは Fully Sharded Data Parallelism (FSDP) が使用されます。

Studio でモデルをファインチューニングするときに、ハイパーパラメータ値を指定できます。詳細については、「Studio でモデルをファインチューニングする」を参照してください。

を使用してモデルを微調整するときに、デフォルトのハイパーパラメータ値を上書きすることもできます。 SageMaker Python SDK。 詳細については、「」を参照してください公開されている基盤モデルを JumpStartEstimator クラスでファインチューニングする