チューニングパラメータは、基礎モデルのチューニングに使用するチューニング実験を設定します。
チューニング実験中に発生するステップと、設定可能なパラメータがプロセスにどのような影響を与えるかについて、詳細をご覧ください。
プロンプト調整ワークフロー
テスト中に、チューニング・モデルはプロンプトの構造を繰り返し調整して、予測が時間の経過とともに改善されるようにします。
次の図は、プロンプトチューニング実験の実行中に起こるステップを示したものである。 あなたが設定できる実験フローの部分は、ユーザーアイコンで強調表示されます。 これらの決定点は、ユーザーが制御するエクスペリメント・チューニング・パラメーターに対応しています。
この図は、テストの以下のステップを示しています。
プロンプトの初期化に使用するために選択した初期化メソッドから開始します。
初期化メソッドの パラメーターが
text
に設定されている場合は、初期化テキストを追加する必要があります。指定すると、初期設定テキストがトークン化され、プロンプト・ベクトルに変換されます。
トレーニング・データを読み取り、トークン化し、バッチに変換します。
バッチのサイズは、 batch size パラメーターによって決まります。
バッチ内の例からの入力をファウンデーション・モデルに送信して、モデルが出力を処理および生成できるようにします。
モデルの出力を、実行依頼されたトレーニング・データ入力に対応するトレーニング・データからの出力と比較します。 次に、損失グラジエントを計算します。これは、予測された出力とトレーニング・データからの実際の出力との差です。
ある時点で、エクスペリメントは、モデルのパフォーマンスに基づいて、入力に追加されるプロンプト・ベクトルを調整します。 この調整がいつ行われるかは、 「累積ステップ」 パラメーターの構成方法によって異なります。
調整は、ステップ 2 で初期化されたプロンプト・ベクトルに適用されます。 ベクトルが変更される度合いは、 Learning rate パラメーターによって制御されます。 編集されたプロンプト・ベクトルは、トレーニング・データ内の次の例からの入力に接頭部として追加され、入力としてモデルに送信されます。
このプロセスは、すべてのバッチ内のすべての例が処理されるまで繰り返されます。
バッチのセット全体が、 「エポック数」 パラメーターで指定された回数だけ再処理されます。
プロンプト・チューニングのデフォルト・パラメーター
プロンプトチューニング実験に使用する最適なハイパーパラメータ値は、データと使用ケースによって異なります。
次の表は、サードパーティの基礎モデルを迅速にチューニングするための出発点として使用するパラメータ値を示しています。
パラメーター名 | flan-t5-xl-3b のデフォルト値 | 詳細情報 |
---|---|---|
初期化方式 | ランダム | プロンプト・チューニングの初期化 |
初期化テキスト | なし | プロンプト・チューニングの初期化 |
バッチ・サイズ | 16 | トレーニング・データのセグメント化 |
ステップの累積 | 16 | トレーニング・データのセグメント化 |
学習レート | 0.3 | 学習率の管理 |
エポック数(学習サイクル数) | 20 | 完了するトレーニング実行の数の選択 |
granite-13b-instruct-v2 基礎モデルの迅速なチューニングに使用されるデフォルトのパラメータは、チューニングされたモデルに行わせたいタスクのタイプに基づいて調整されます。
次の表は、granite-13b-instruct-v2 基礎モデルのプロンプトチューニングで、サポートされるタスクタイプごとに開始点として使用するパラメータ値をキャプチャしたものです。
パラメーター名 | 分類のデフォルト値 | 生成のデフォルト値 | 要約のデフォルト値 | 詳細情報 |
---|---|---|---|---|
バッチ・サイズ | 8 | 16 | 8 | トレーニング・データのセグメント化 |
ステップの累積 | 32 | 16 | 1 | トレーニング・データのセグメント化 |
学習レート | 0.0006 | 0.0002 | 0.0002 | 学習率の管理 |
エポック数(学習サイクル数) | 20 | 20 | 40 | 完了するトレーニング実行の数の選択 |
パラメーターの説明
以下の表は、カスタマイズ可能なチューニングパラメーターについて説明しています。
パラメーター名 | 説明 | 値のオプション | 詳細情報 |
---|---|---|---|
初期化方法(プロンプトチューニング) | プロンプトベクトルの初期化方法を指定する。 | ランダム、テキスト | プロンプト・チューニングの初期化 |
初期化テキスト(プロンプトチューニング) | 実験の最初の実行でプロンプトとして使用するテキスト。 | – | プロンプト・チューニングの初期化 |
バッチ・サイズ | 一度に処理するラベル付き例の数。 | 1-16 | トレーニング・データのセグメント化 |
ステップの累積 | 調整を行う前に処理するバッチ数。 | 1-128 | トレーニング・データのセグメント化 |
学習レート | モデルの調整時に行う変更の範囲を決定する。 | 0.00001–0.5 | 学習率の管理 |
エポック数(学習サイクル数) | トレーニングデータを循環させる回数。 | 1-50 | 完了するトレーニング実行の数の選択 |
トレーニング・データのセグメント化
エクスペリメントが実行されると、まずトレーニング・データがより小さいバッチに分割され、一度に 1 つのバッチでトレーニングされます。 各バッチは、処理される GPU メモリーに収まる必要があります。 必要な GPU メモリーの量を削減するために、チューニング・エクスペリメントを構成して、複数のバッチが処理されるまで調整を延期することができます。 チューニングはバッチで実行され、そのパフォーマンスメトリクスが計算されるが、調整はすぐには行われない。 代わりに、累積パフォーマンス・メトリックが評価される前に、いくつかのバッチにわたってパフォーマンス情報が収集されます。
以下のパラメーターを使用して、トレーニング・データのセグメント化方法を制御します。
バッチ・サイズ 一度に処理するラベル付きの例 ( サンプルとも呼ばれる) の数。
例えば、1,000 個の例と 10 個のバッチ・サイズを持つデータ・セットの場合、データ・セットはそれぞれ 10 個の例からなる 100 個のバッチに分割されます。
トレーニング・データ・セットが小さい場合は、小さいバッチ・サイズを指定して、各バッチに十分な例が含まれるようにします。
累積ステップ: 調整を行う前に処理するバッチ数。
例えば、データセットが100バッチに分割され、累積ステップ値を10に設定した場合、調整は100回ではなく10回行われる。
完了するトレーニング実行の数の選択
「エポック数」 パラメーターは、トレーニング・データを循環する回数を指定します。
例えば、バッチサイズが10で、データセットが1,000例の場合、1回のエポックで100バッチを処理し、100回の調整を行わなければならない。 エポックの数を 20 に設定すると、モデルはデータ・セットを 20 回通過します。つまり、チューニング・プロセス中に合計 2,000 個のバッチが処理されます。
エポックの数が多くなり、トレーニング・データが大きくなるほど、モデルのチューニングにかかる時間が長くなります。
学習率の管理
学習率パラメータは、モデルが調整されるときに行う変更の範囲を決定します。 数字が大きいほど、変化も大きい。
プロンプトの初期化
プロンプトチューニング実験を作成する際、最初のプロンプトベクターとして使用するテキストを自分で指定するか、実験に生成させるかを選択することができる。 これらの新規トークンは、ランダムな位置で、またはテキストで指定した語彙または命令の組み込みに基づいて、トレーニング・プロセスを開始します。 基礎となるモデルのサイズが 100 億パラメーターを超えると、使用される初期化方法の重要性が低くなることが研究で示されています。
チューニング・テストの作成時に選択した内容によって、プロンプトの初期化方法がカスタマイズされます。
初期化メソッド: 以下のオプションからメソッドを選択します。
- テキスト: プロンプト・チューニング方式は、プロンプトの初期化テキストを自分で指定する場合に使用します。
- ランダム: プロンプトに含めるためにランダムに選択された値をエクスペリメントで追加できるようにするプロンプト・チューニング方式が使用されます。
初期化テキスト (Initialization text): 追加するテキスト。 ゼロ・ショット・プロンプトに使用するものと同様のタスクの説明または指示を指定します。
詳細情報
親トピック: モデルのチューニング