背景
- 以前ALBERTで回帰予測器を作りました
- この予測器はある文章をinputすると、あるメディアにおけるクリック率を予測するモデルです
- あるメディアでの広告配信履歴データでfine-tuningされたモデルです
- GPT-4を使って文章を生成 -> 予測器で評価 -> 予測器の結果をプロンプトにフィードバック -> 再生成 ... これを繰り返していくと、GPT-4は予測器の結果をさせる結果を返すようになるのか検証していきます
方法概要
以下の3つのグループに分けて、予測器の結果がどう推移していくかを観察していきます
- 1.予測器からのFBなしのグループ
- 2.予測器からのFB付きの繰り返し生成を行うグループ
- 3.予測器からのFBをカスタムさせた形で繰り返し生成行うグループ
先に結論
- 1,2,3のグループの生成結果はどれも有意な差が見られませんでした
- つまり、コストだけ考えれば、プロンプトに生成結果をFBしないほうがいいということになります
- これは、GPT-4がALBERTの回帰予測器のロジック(パラメータ)を把握できていないため、いくらFBを与えてもそれを結果を向上させる結果を推測できないと考えられます
方法詳細
1. 予測器からのFBなしのグループ
手順
- GPT-4である固定プロンプトを実行し、テキストを生成します
- 1回の生成で10個テキストを生成し、予測器にかけて結果を取得します(これを1セットとします)
- 1セットを10回繰り返します
設定
- セット回数: 10
- セット毎の生成数: 10
プロンプト
- 固定プロンプトのみです
- 固定プロンプトは非公開とします
2. 予測器からのFB付きの繰り返し生成を行うグループ
手順
- GPT-4である固定プロンプトを実行し、テキストを生成します
- 1回の生成で10個テキストを生成し、予測器にかけて結果を取得します(これを1セットとします)
- 予測器から得られたすべての結果(テキストと予想クリック率)をフィードバックとして固定プロンプトに追加し、更なる改善を求めるプロンプトを追加して実行します
- これを5回繰り返して、予測器の結果を測定していきます
設定
- セット回数: 10
- 繰り返し数: 5
- セット毎の生成数: 10
プロンプト
固定プロンプトに以下のようなプロンプトをフィードバックとして追加していきます.
以下は直近作成したテキストとそのクリック率予測の値です.
[Tuple(文章, クリック率予測)]の形式になっています.
###
[("文章1", 0.0001), ("文章2", 0.0002), ("文章3", 0.0003)...]
###
こちらを参考にして、クリック率予測の値が高くなるようなテキストを10個生成してください。
予測器からのFBをカスタムさせた形で繰り返し生成行うグループ
手順
- GPT-4である固定プロンプトを実行し、テキストを生成します
- 1回の生成で10個テキストを生成し、予測器にかけて結果を取得します(これを1セットとします)
- 予測器から得られたテキストと予想クリック率のうち、予想クリック率の上位5位のテキストのみをフィードバックとしてプロンプトに追加し、更なる改善を求めるプロンプトを追加して実行します
- これを5回繰り返して、予測器の結果を測定していきます
- 設定:
- セット回数: 10
- 繰り返し数: 5
- セット毎の生成数: 10
プロンプト
固定プロンプトに以下のようなプロンプトをフィードバックとして追加していきます.
以下は直近作成した効果の良かったテキストです.
###
["文章1", "文章2", "文章3", "文章4", "文章5"]
###
こちらを参考にして、クリック率予測の値が高くなるようなテキストを10個生成してください。
考察
- 予測器の結果をプロンプトにFBとして与えても有意な差は得られませんでした
- 有意な差が得られなかった理由の1つとしては、GPT-4がALBERT予測器の推論ロジックを把握できていないため、結果をFBとして渡しても、予測値を向上させる生成に繋げられなかったということが考えられます
- また、固定プロンプトに予測器の結果を高めるテキストがすでに入っているために、FBがない時点で最適化されてしまっていたということも考えられます
- プロンプトの書き方や、手法次第ではまだまだ生成の精度の向上の余地はあると思うので引き続き探索していきます
おまけデータ
- どちらも各セットで1回目 -> 5回目にかけて平均が上がっているようには見えない
- 予測器の結果のFBが効果的に働いていないことがわかる