結果を改善するために、プロンプトチューニング実験に変更を加える。
Python ノートブックのサンプル Use watsonx.aito tune IBM granite-13b-instruct-v2 model with Car Rental Company customer satisfaction document というサンプルノートブックがあり、watsonx.ai の基礎モデルを迅速にチューニングするためのコードが含まれています。 サンプルノートブックには、実験パラメータを最適化するセクションと、調整されたモデルを推論するセクションがあります。 詳しくはPythonノートブックを使って基礎モデルをチューニングするを参照してください。
チューニング・パラメーターの調整
チューニング実験の実行が終了すると、損失関数のグラフが表示される。 損失関数は、トレーニングの実行ごとに予測結果と実際の結果の差を測定する。 チューニング実験が成功すると、損失関数は下向きのカーブを描く。
損失が減少し、平準化する場所をコンバージェンスと呼ぶ。 曲線が下がる、つまり収束し、曲線の末尾ができるだけ0に近くなるようにします。これは、予測された結果がトレーニングデータからの結果にできるだけ似ていることを意味するからです。
実験の損失関数が複数のピークを持つ山脈のような場合、損失が収束しない場合、または損失は収束するがゼロよりはるかに高い数値に留まる場合は、チューニング・パラメーターを調整してください。
Tuning Studio でパラメータ値を設定するか、サンプルノートブックを使用してください。 サンプルノートブックには、チューニングパラメータに使用する最適な値を見つけるためのステップがあります。これはハイパーパラメータ最適化と呼ばれることもあります。 詳しくは、ノートブックを使ってチューニング・パラメータ値を最適化するをご覧ください。
以下の表は、一般的なチューニング実験の結果と、その結果を改善する可能性のあるアクションの一覧です。
損失関数グラフ | 原因 | 試すべき行動 |
---|---|---|
損失曲線は平坦で、下がることはない。 |
チューニングをしても結果はあまり改善されない。 | - 学習率を上げて(10x)、実験がプロンプト・ベクトルをよりドラスティックに調整するようにする。 |
損失カーブは下がるが、テールは高すぎる数字に落ち着く。 |
チューニングは結果をそれほど向上させていない。 | - 学習率を上げて(5x)、実験がプロンプト・ベクトルをより大きく調整するようにする。 |
損失曲線は低下し、その後着実に減少するが、水平になることはない。 |
モデルが完全にチューニングされる前にトレーニングは終了した。 | - エポック数を増やしてモデルの学習時間を増やす。 |
損失曲線は上昇し、そして下降するが、十分に低くなることはない。 |
トレーニングが不安定なのは、学習率が高いためにプロンプトベクトルが変化しすぎるからだ。 | - 学習率を下げて(10x)、プロンプトベクトルの調整を小さくする。 |
チューニング・パラメーターを変更し、チューニング実験を再実行する方法の詳細については、基礎モデルのチューニングを参照してください。
チューニングされたモデル出力のデータ品質問題への対応
チューニングしたモデルにゼロショットのプロンプトを送信し、期待通りの出力が返ってくれば、チューニングが終わったと判断できる。
以下の表は、トレーニング・データの品質に関する一般的な問題を説明し、それらに対処するためのアクションを示したものです。
結果 | 原因 | 試すべき行動 |
---|---|---|
チューニングされたモデルの出力が、トレーニングデータの出力例の内容や形式と一致しない | トレーニングデータの例が少ない | トレーニングデータのサイズを大きくする。 |
チューニングされたモデルの出力は不完全である | チューニング・プロセスは、あなたが考えているような例を使っていない | トレーニングデータの入力例と出力例の長さに注意してください。 最大入力トークンは256、最大出力トークンは128である。 最大許容長を超える例は切り捨てられる。 |
分類タスクにおける分類ラベルの欠落 | 分類タスクに必要な各クラスタイプの例が十分ではない | モデルに認識させたい各クラス・タイプの例をさらに追加します。 |
テキスト抽出タスクの欠落 | 抽出タスクに必要な各エンティティタイプの例が十分でない | モデルに認識させたい各エンティティ・タイプの例をさらに追加します。 |
不正確なクラスラベルやエンティティタイプのテキスト抽出 | 正しいクラスやエンティティタイプを選択するためのコンテキストが不十分 | - - 各タイプに同じ数の例を追加する モデルに識別または抽出させたいクラスまたはエンティティが互いに異なることを確認します。 |
親トピック: チューニング実験結果の評価