ファウンデーション・モデルのチューニング用パラメーター
チューニングパラメータは、 基盤モデルチューニングに使用するチューニング実験を設定します。
迅速なチューニングパラメータ
以下の表は、カスタマイズ可能なチューニングパラメーターについて説明しています。
パラメーター名 | 説明 | 値のオプション | 詳細情報 |
---|---|---|---|
初期化方式 | プロンプトベクトルの初期化方法を指定する。 | ランダム、テキスト | プロンプト・チューニングの初期化 |
初期化テキスト | 実験の最初の実行でプロンプトとして使用するテキスト。 | – | プロンプト・チューニングの初期化 |
バッチ・サイズ | 一度に処理するラベル付き例の数。 | 1-16 | トレーニング・データのセグメント化 |
ステップの累積 | 調整を行う前に処理するバッチ数。 | 1-128 | トレーニング・データのセグメント化 |
学習レート | モデルの調整時に行う変更の範囲を決定する。 | 0.00001–0.5 | 学習率の管理 |
エポック数(学習サイクル数) | トレーニングデータを循環させる回数。 | 1-50 | 完了するトレーニングサイクルの回数を決める |
迅速なチューニングのためのパラメータ値の設定
プロンプトチューニング実験に使用する最適なハイパーパラメータ値は、データと使用ケースによって異なります。
以下の表は、サードパーティ製基盤モデルチューニングを迅速に行うための出発点として使用するパラメータ値をまとめたものです。
パラメーター名 | flan-t5-xl-3b のデフォルト値 |
---|---|
初期化方式 | ランダム |
初期化テキスト | なし |
バッチ・サイズ | 16 |
ステップの累積 | 16 |
学習レート | 0.3 |
エポック数(学習サイクル数) | 20 |
The default parameters that are used for prompt tuning the granite-13b-instruct-v2 foundation model are adjusted based on the type of task you want the tuned model to do.
The following table captures the parameter values to use as a starting point per supported task type for prompt tuning the granite-13b-instruct-v2 foundation model.
パラメーター名 | 分類のデフォルト値 | 生成のデフォルト値 | 要約のデフォルト値 |
---|---|---|---|
バッチ・サイズ | 8 | 16 | 8 |
ステップの累積 | 32 | 16 | 1 |
学習レート | 0.0006 | 0.0002 | 0.0002 |
エポック数(学習サイクル数) | 20 | 20 | 40 |
パラメーターの説明
トレーニング・データのセグメント化
エクスペリメントが実行されると、まずトレーニング・データがより小さいバッチに分割され、一度に 1 つのバッチでトレーニングされます。 各バッチは、処理される GPU メモリーに収まる必要があります。 必要な GPU メモリーの量を削減するために、チューニング・エクスペリメントを構成して、複数のバッチが処理されるまで調整を延期することができます。 チューニングはバッチで実行され、そのパフォーマンスメトリクスが計算されるが、調整はすぐには行われない。 代わりに、累積パフォーマンス・メトリックが評価される前に、いくつかのバッチにわたってパフォーマンス情報が収集されます。
以下のパラメーターを使用して、トレーニング・データのセグメント化方法を制御します。
バッチ・サイズ 一度に処理するラベル付きの例 ( サンプルとも呼ばれる) の数。
例えば、1,000 個の例と 10 個のバッチ・サイズを持つデータ・セットの場合、データ・セットはそれぞれ 10 個の例からなる 100 個のバッチに分割されます。
トレーニング・データ・セットが小さい場合は、小さいバッチ・サイズを指定して、各バッチに十分な例が含まれるようにします。
累積ステップ: 調整を行う前に処理するバッチ数。
例えば、データセットが100バッチに分割され、累積ステップ値を10に設定した場合、調整は100回ではなく10回行われる。
完了するトレーニングサイクルの回数を決める
epochsパラメータは、トレーニングデータセット全体を何回繰り返すかを指定します。
例えば、バッチサイズが10で、データセットが1,000例の場合、1回のエポックで100バッチを処理し、100回の調整を行わなければならない。 エポックの数を 20 に設定すると、モデルはデータ・セットを 20 回通過します。つまり、チューニング・プロセス中に合計 2,000 個のバッチが処理されます。
エポックの数が多くなり、トレーニング・データが大きくなるほど、モデルのチューニングにかかる時間が長くなります。 エポック数を低く設定しすぎると、モデルが十分に学習できない可能性があります。 エポック数を多く設定しすぎると、データセットにモデルを過剰適合させてしまう可能性があります。 過剰適合とは、モデルが訓練データにあまりにも密接に調整されているため、新しいデータが導入された際に、学習した内容を一般化して適用することができない現象を指す用語です。
学習率の管理
学習率パラメータは、モデルが調整されるときに行う変更の範囲を決定します。 数字が大きいほど、変化も大きい。 学習率を低く設定しすぎると、提示された新しいデータからモデルが十分に学習できなくなる可能性があります。 学習率を高く設定しすぎると、モデルが新しい未確認データに学習した内容を適用できるようになるまで、徐々に学習することができなくなる可能性があります。
このパラメータは、控えめな値を設定し、カスタマイズするデータセットと基盤モデルに最適なハイパーパラメータを見つけるために実験しながら徐々に変更していくのが望ましいでしょう。
トークン制限の設定
チューニング実験中に、モデルの入力と出力で許可されるトークンの数を変更するには、max_seq_lengthパラメータを設定します。 最大シーケンス長は、最大入力トークン数と各プロンプトで許可される出力トークン数の合計です。
許容される入力および出力トークンの数が多ければ多いほど、モデルのチューニングに時間がかかります。 このパラメータは、使用可能な最小の数値に設定しますが、それでもなお、お客様の使用事例を適切に表現できる数値にしてください。
チューニングで使用する予定の制限値に適合する入力および出力の例をトレーニングデータに作成します。 指定された最大シーケンス長を超える例は、実験中に切り捨てられます。 例えば、このパラメータを200に設定し、トレーニングデータに1,000トークンを持つ入力例がある場合、入力例の最初の200トークンだけが使用されます。
シーケンスの長さには、各プロンプトに対する出力トークンも含まれます。つまり、この設定は、チューニング実験中にモデルが出力として生成できるトークンの数を制御します。
プロンプトの初期化
プロンプトチューニング実験を作成する際、最初のプロンプトベクターとして使用するテキストを自分で指定するか、実験に生成させるかを選択することができる。 これらの新規トークンは、ランダムな位置で、またはテキストで指定した語彙または命令の組み込みに基づいて、トレーニング・プロセスを開始します。 基礎となるモデルのサイズが 100 億パラメーターを超えると、使用される初期化方法の重要性が低くなることが研究で示されています。
チューニング・テストの作成時に選択した内容によって、プロンプトの初期化方法がカスタマイズされます。
初期化メソッド: 以下のオプションからメソッドを選択します。
- テキスト: プロンプト・チューニング方式は、プロンプトの初期化テキストを自分で指定する場合に使用します。
- ランダム: プロンプトに含めるためにランダムに選択された値をエクスペリメントで追加できるようにするプロンプト・チューニング方式が使用されます。
初期化テキスト (Initialization text): 追加するテキスト。 ゼロ・ショット・プロンプトに使用するものと同様のタスクの説明または指示を指定します。
詳細情報
親トピック: モデルのチューニング