プロンプトのチューニング
プロンプトの調整は、モデルに渡されるプロンプトの内容を調整し、モデルが指定したパターンに一致する出力を生成するように導きます。 基盤モデルおよびそのパラメータの重み付けは変更されません。 入力が迅速な場合のみ、変更されます。
迅速なチューニングの仕組み
基盤モデル、あなたが与える入力に敏感に反応します。 ユーザーの入力、またはモデルへの指示方法によって、モデルが生成する出力を調整するために使用するコンテキストを導入することができます。 適切なプロンプトを迅速に見つけるための迅速なエンジニアリングは、多くの場合、うまく機能します。 しかし、時間がかかり、エラーが発生しやすく、また、その有効性は、基礎となるモデルで許可されているコンテキストウィンドウの長さによって制限される可能性があります。
Tuning Studio でモデルを迅速にチューニングすることで、機械学習を迅速なエンジニアリングのタスクに適用します。 プロンプトチューニングとは、入力自体に単語を追加するのではなく、入力テキストの接頭辞として追加することで、モデルが望む出力を生成する能力を向上させる値のシーケンスを見つけるための方法です。 この一連の値はプロンプトベクトルと呼ばれます。
通常、プロンプト内の単語はモデルによってベクトル化されます。 ベクトル化とは、テキストをトークンに変換し、さらにトークンを識別するためにモデルのトークナイザーによって定義された数値に変換するプロセスです。 最後に、トークンIDはエンコードされ、つまりベクトル表現に変換され、これはモデルの埋め込み層で期待される入力形式となります。 プロンプトチューニングは、モデルのテキストベクトル化プロセスをバイパスし、代わりに直接プロンプトベクトルを作成します。 この可変プロンプトベクトルは、ベクトル化された入力テキストに連結され、2つはモデルの埋め込み層に1つの入力として渡されます。 この巧妙に設計されたプロンプトベクトルから得られる値は、モデルによって設定される単語の埋め込み重みに影響を与え、モデルが出力に追加する単語に影響を与えます。
プロンプトベクトルの最適値を見つけるには、チューニング実験を行います。 トレーニングデータでモデルにインプットとアウトプットの例をペアで与えることで、対応するインプットに対して求めるアウトプットのタイプを実証します。 実験のトレーニング実行ごとに、生成された出力はトレーニングデータの出力と比較されます。 2つの違いから得られた情報に基づいて、実験ではプロンプトベクトルの値を調整します。 トレーニングデータで何度も実行した後、モデルは最も効果的なプロンプトベクトルを見つけます。
実験でベクトル化されたテキストを提供することで、トレーニングプロセスを開始することができます。 または、プロンプトベクトルでランダムな値を使用する実験を行うこともできます。 いずれにしても、初期値が正確に設定されていない限り、トレーニングの過程で繰り返し変更されることになります。 初期化テキストを独自に用意することで、実験がより早く良い結果に達するようになります。
実験の結果、基礎となるモデルの調整版が得られます。 チューニングされたモデルにインプットを送信して推論を行い、モデルはチューニングされたパターンに従ったアウトプットを生成します。
Tuning Studio で使用されているプロンプトチューニングプロセスに関する詳細は、「プロンプトチューニングのワークフロー」 を参照してください。
即時調整ワークフロー
実験中、チューニングモデルは予測が徐々に改善されるように、プロンプトの構造を繰り返し調整します。
次の図は、プロンプト調整の実験実行中に発生するステップを示しています。
設定可能な実験フローの部分は、ユーザーアイコン でハイライト表示されます。 これらの決定ポイントは、お客様が制御する実験調整パラメータに対応しています。 基盤モデルチューニングパラメータ を参照してください。
この図は、実験の次のステップを示しています
プロンプトを初期化する際に使用する初期化方法から開始します。
初期化方法パラメータが
text
に設定されている場合、初期化テキストを追加する必要があります。指定された場合、初期化テキストをトークン化し、プロンプトベクトルに変換します。
トレーニングデータを読み込み、トークン化し、バッチに変換します。
バッチのサイズはバッチサイズパラメータによって決定されます。
バッチ内の例から基盤モデルに入力を送信し、モデルが処理して出力を生成します。
モデルの出力と、入力されたトレーニングデータに対応するトレーニングデータの出力を比較します。 次に、損失勾配を計算します。これは、予測された出力とトレーニングデータからの実際の出力との差分です。
この実験では、モデルの計算された損失に基づいて入力に追加されるプロンプトベクトルを調整します。 この調整がいつ行われるかは、Accumulation stepsパラメータの設定によって異なります。
ステップ2で初期化されたプロンプトベクトルに調整が適用されます。 ベクトルがどの程度変化するかは、 学習率パラメータによって制御されます。 編集されたプロンプトベクトルは、トレーニングデータの次の例の入力に接頭辞として追加され、入力としてモデルに送信されます。
すべてのバッチのすべての例が処理されるまで、このプロセスが繰り返されます。
バッチの全セットは、「エポック数」パラメータで指定された回数だけ繰り返し処理されます。
詳細情報
親トピック: 基盤モデルチューニング方法