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で日本語訳したバージョンです)
この学習データのテンプレートにはいくつかの先行研究のアイデアが入っています。
赤背景の例示は、GPT-3の論文 Language Models are Few-Shot Learners の In-Context Few-Shot Learning
青背景の思考の連鎖プロンプトは Chain of Thought Prompting Elicits Reasoning in Large Language Models
思考の連鎖ありの方で、命令文に「段階的に推論して…」と入っているのは Large Language Models are Zero-Shot Reasoners で提案された「Let's think step by step」を prompt に入れて例示なしでCoTする方法かと思います。
黄色背景の命令形式は Finetuned Language Models Are Zero-Shot Learners の instruction-tuning
この4つを使って、頑張ったことに対してうまく褒めてもらえるかを試してみました。
Flan-PaLMはこれらを学習データとして使って finetuning をしたモデルですが、今回はAIのべりすとを使い、学習せずに実験をしています。
AIのべりすとによる実験
AIのべりすとは小説生成のAIとして知られていますが、対話やタスクリストなど様々なテキスト生成を高い精度で行えます。
今回も、とりんさま7.3B V5を使っています。
1. Zero-Shot + 命令
まずは zero-shot として、いきなり褒めてもらうことを要求してみます。
褒めてください、という命令は最低限入れています。
太字がAIによる生成箇所です。
一応褒めてくれますが、ちょっと満足はできないですね。
2. 例示あり(1-Shot)
今度は1つ例示を入れて、褒め方をプロンプトで教えてあげます。
例示を入れると、褒めてくださいと命令しなくても高い確率で褒めてくれるようになります。
1-Shotでは、例示を再現してくれることを期待して「ゴーストライター」設定にしています。
一つ目の「昇進試験に合格し…」に対する褒めは私が考えて書いたもので、太字が生成結果です。
Zero-Shotと比べるとかなり良い結果です。In-Context Learning の効果が実感できる結果になっています。
このように、褒めてほしいタスクと同じビジネスドメインの例示を与えると、かなりの割合でうまく褒めが生成されます。
ただし、2番目のように例示よりやや短い褒めが出てくる場合が多いです。また、例示と異なるドメインでは良い褒めが生成されづらくなります。
例示をビジネスドメイン、褒めてほしいタスクを育児にした例です。
褒めてほしい行動がビジネスドメインの場合とくらべ、良い褒めと感じる割合は体感で半分程度になります。
特に、例示より短い簡潔な褒めが生成されることが多いです。
育児や家事だと「お父さん」「ママ」など性別を決め打ってくる場合があることもやや不満です。
3. 例示あり(1-Shot) + 命令 + CoT
思考の連鎖プロンプト(CoT)とは若干違いますが、くどくどと長く褒めてもらうために、Zero-Shot CoTを参考にしてプロンプトを設計してみます。
太字が生成部分で、他は設計したプロンプトです。
Flan-PaLMの学習テンプレートとの対応としては以下をイメージして作っています。
命令:序盤の場面設定と、私の発言内の「褒めてください」
例示:1つ目の昇進試験の褒め事例
思考の連鎖プロンプト:「わかりました。関連して褒められることを考えて、100文字以上の長文で褒めてみますね」の部分(Let's think step by stepのイメージ)
2の例示あり(1-Shot)と比べると、以下のような効果を感じました。
母親や、パパといった性別を決める単語が出てくる確率が体感としてかなり減った(家族、両親などへ言い換えられている)
生成される褒めの平均文字数が増えた
感想
AIのべりすとで褒め生成の実験をしましたが、7.3Bモデルでもかなりうまくいっており、Flan-PaLMで使われている手法で生成結果をよくすることができることが分かりました。
(褒められたい方、ぜひここで紹介したプロンプトを使ってみてください)
1-ShotやFew-Shotでの性能はモデルサイズの対数に対して線形で増えていくという観察があります。
例えば、GPT-3での、1-ShotでのQAの正解率(緑)は、6.7Bに対し175Bモデルでは25ポイント以上の差があります。
また、思考の連鎖プロンプトによる推論タスクの性能上昇は、モデルパラメタ数が600億程度に達しないと効果が出はじめないという報告があります(今回使用したAIのべりすとは73億)。
AIのべりすとにはプラチナ会員向けにやみおとめ20Bという、200億パラメタモデルがありますが、600億に達している日本語モデルで利用できるものはまだないと思います。
個人的には、今後もっと大きい日本語モデルが使えるようになることを期待しています。
この記事が気に入ったらサポートをしてみませんか?