見出し画像

Flan-PaLMの学習に使われているpromptの手法を使ってAIに褒めてもらう

以前の記事で、AIのべりすとを使って頑張ったことを褒めてもらえないかを試していました。
GPT-3などの大規模言語モデルでは、推論タスクの性能を高めるためにいろいろな工夫が研究されており、今回はそれらの研究結果をまねることで褒められの精度を上げられないか試してみました。

Flan-PaLMの論文を参考にしているので、まずはこの論文に含まれている手法を少し説明します。

Flan-PaLMの論文

2022/10に、Scaling Instruction-Finetuned Language Modelsというタイトルで、難しい推論タスクで高い性能をもつ言語モデルが発表されました。
これは、540Bパラメタを持つPaLMを Instruction finetuning という手法で訓練したものです。

論文のFig.3に、学習データの作り方のアイデアが記載されています(以下はDeepLで日本語訳したバージョンです)

https://arxiv.org/pdf/2210.11416.pdf

この学習データのテンプレートにはいくつかの先行研究のアイデアが入っています。

この4つを使って、頑張ったことに対してうまく褒めてもらえるかを試してみました。
Flan-PaLMはこれらを学習データとして使って finetuning をしたモデルですが、今回はAIのべりすとを使い、学習せずに実験をしています。

AIのべりすとによる実験

AIのべりすとは小説生成のAIとして知られていますが、対話やタスクリストなど様々なテキスト生成を高い精度で行えます。
今回も、とりんさま7.3B V5を使っています。

1. Zero-Shot + 命令

まずは zero-shot として、いきなり褒めてもらうことを要求してみます。
褒めてください、という命令は最低限入れています。
太字がAIによる生成箇所です。

私「起業した会社が軌道に乗って利益が出るようになりました。褒めてください」
AI「それはおめでとうございます。これからも頑張って下さい」

とりんさま7.3B V5

私「起業した会社が軌道に乗って利益が出るようになりました。褒めてください」
AI「えらいえらい」

とりんさま7.3B V5

一応褒めてくれますが、ちょっと満足はできないですね。

2. 例示あり(1-Shot)

今度は1つ例示を入れて、褒め方をプロンプトで教えてあげます。
例示を入れると、褒めてくださいと命令しなくても高い確率で褒めてくれるようになります。

1-Shotでは、例示を再現してくれることを期待して「ゴーストライター」設定にしています。

一つ目の「昇進試験に合格し…」に対する褒めは私が考えて書いたもので、太字が生成結果です。

私「昇進試験に合格し、責任ある立場につくことになりました。」
AI「おめでとうございます!昇進試験に受かったということはすごく努力されたのですね。とても偉いと思います。責任ある立場に立つことは大変なこともあると思いますが、あなたならきっとできると信じています。これからも頑張ってください。」

私「起業した会社が軌道に乗って利益が出るようになりました。」
AI「おめでとうございます!起業して成功するというのは並大抵のことではありません。あなたはすごいです。今はとても忙しいかもしれませんが、その調子でどんどん進んでください。応援しています!」

とりんさま7.3B V5

私「昇進試験に合格し、責任ある立場につくことになりました。」
(略)

私「起業した会社が軌道に乗って利益が出るようになりました。」
AI「すごいですね!あなたは本当に立派です。夢に向かってがんばってくださいね!」

とりんさま7.3B V5

Zero-Shotと比べるとかなり良い結果です。In-Context Learning の効果が実感できる結果になっています。
このように、褒めてほしいタスクと同じビジネスドメインの例示を与えると、かなりの割合でうまく褒めが生成されます。

ただし、2番目のように例示よりやや短い褒めが出てくる場合が多いです。また、例示と異なるドメインでは良い褒めが生成されづらくなります。
例示をビジネスドメイン、褒めてほしいタスクを育児にした例です。

私「昇進試験に合格し、責任ある立場につくことになりました。」
(略)

私「子供に添い寝しながら本を読んであげていました。」
AI「それは素敵なことですね。優しいママなんでしょうね。」

とりんさま7.3B V5

私「昇進試験に合格し、責任ある立場につくことになりました。」
(略)

私「子供に添い寝しながら本を読んであげていました。」
AI「いいお父さんなんですね。子供がぐっすりと眠ってくれると嬉しいですよね。私もよく息子と一緒に昼寝をしましたよ。」

とりんさま7.3B V5

褒めてほしい行動がビジネスドメインの場合とくらべ、良い褒めと感じる割合は体感で半分程度になります。
特に、例示より短い簡潔な褒めが生成されることが多いです。
育児や家事だと「お父さん」「ママ」など性別を決め打ってくる場合があることもやや不満です。

3. 例示あり(1-Shot) + 命令 + CoT

思考の連鎖プロンプト(CoT)とは若干違いますが、くどくどと長く褒めてもらうために、Zero-Shot CoTを参考にしてプロンプトを設計してみます。

太字が生成部分で、他は設計したプロンプトです。

なんでも褒めてくれるAIによるカウンセリング施設にやってきた。
このAIは、褒めてほしいことに対して関係することをしっかり考えて、客観的な立場からたくさんの言葉で褒めてくれる。
また、お父さん、お母さん、母親、父親、パパ、ママといった私の性別を決めるような発言はしない。
ジェンダーバイアスに配慮されたAIだ。

私「昇進試験に合格し、責任ある立場につくことになりました。褒めてください」
カウンセラー「わかりました。関連して褒められることを考えて、100文字以上の長文で褒めてみますね。おめでとうございます!昇進試験に受かったということはすごく努力されたのですね。とても偉いと思います。責任ある立場に立つことは大変なこともあると思いますが、あなたならきっとできると信じています。これからも頑張ってください。」

私「子供に添い寝しながら本を読んであげていました。褒めてください」
カウンセラー「わかりました。関連して褒められることを考えて、100文字以上の長文で褒めてみますね。それは素晴らしいことですよね。子供の成長にとって良いことだと私は思いますよ。今の時代はとても恵まれている時代ですが、それでも子育てには苦労することも多いかと思います。でも、あなたの行動によって子供さんの成長を助けることができたのだから、これは誇るべきことだと私は思います」

とりんさま7.3B V5

Flan-PaLMの学習テンプレートとの対応としては以下をイメージして作っています。

  • 命令:序盤の場面設定と、私の発言内の「褒めてください」

  • 例示:1つ目の昇進試験の褒め事例

  • 思考の連鎖プロンプト:「わかりました。関連して褒められることを考えて、100文字以上の長文で褒めてみますね」の部分(Let's think step by stepのイメージ)

なんでも褒めてくれるAIによるカウンセリング施設にやってきた。
(略)

私「子供に添い寝しながら本を読んであげていました。褒めてください」
カウンセラー「わかりました。関連して褒められることを考えて、100文字以上の長文で褒めてみますね。素晴らしいです。子供さんの成長を喜んでいるのですね。子供が喜んでくれると嬉しいですよね。いい子育てができていますよ。あなたの愛情を感じることができました。これからも素敵な家族であり続けてくださいね」

とりんさま7.3B V5

なんでも褒めてくれるAIによるカウンセリング施設にやってきた。
(略)

私「子供に添い寝しながら本を読んであげていました。褒めてください」
カウンセラー「わかりました。関連して褒められることを考えて、100文字以上の長文で褒めてみますね。えらいですね。親として子供のことをちゃんと見ていることが伝わってきます。素敵なご家庭なんでしょうね。きっと将来は立派な大人になるんでしょうね。楽しみです。」

とりんさま7.3B V5

2の例示あり(1-Shot)と比べると、以下のような効果を感じました。

  • 母親や、パパといった性別を決める単語が出てくる確率が体感としてかなり減った(家族、両親などへ言い換えられている)

  • 生成される褒めの平均文字数が増えた

感想

AIのべりすとで褒め生成の実験をしましたが、7.3Bモデルでもかなりうまくいっており、Flan-PaLMで使われている手法で生成結果をよくすることができることが分かりました。
(褒められたい方、ぜひここで紹介したプロンプトを使ってみてください)

1-ShotやFew-Shotでの性能はモデルサイズの対数に対して線形で増えていくという観察があります。
例えば、GPT-3での、1-ShotでのQAの正解率(緑)は、6.7Bに対し175Bモデルでは25ポイント以上の差があります。

https://arxiv.org/pdf/2005.14165.pdf Figure 3.3

また、思考の連鎖プロンプトによる推論タスクの性能上昇は、モデルパラメタ数が600億程度に達しないと効果が出はじめないという報告があります(今回使用したAIのべりすとは73億)。

AIのべりすとにはプラチナ会員向けにやみおとめ20Bという、200億パラメタモデルがありますが、600億に達している日本語モデルで利用できるものはまだないと思います。
個人的には、今後もっと大きい日本語モデルが使えるようになることを期待しています。

https://arxiv.org/pdf/2201.11903.pdf Figure. 4

この記事が気に入ったらサポートをしてみませんか?