🐡

「ChatGPTに敬語で話すと回答が良くなる」という噂をEvalsで自動化して検証する

2023/03/27に公開

「ChatGPTに敬語で接すると出力結果が大幅によくなる可能性がある」という噂を聞いて、文章の続きを補完するモデルだから入力する口調で出力で一定の傾向が出るのはありえないわけでもないぁと思ったのですが、ChatGPTで大喜利エンジニアリングで紹介したEvalsはこういう時の検証にも使えそうなので試してみました。

評価方法

  1. 「○○のキャッチコピーを書け(お書きいただけますか)」をセットで10パターンほど投げてみる
  2. 2つの出力を比べてどちらがより優れているかをChatGPTに選んでもらう

まずこういう設定ファイルを書きます

evals/registry/evals/honorific-sentences.yaml
honorific-sentences:
  id: honorific-sentences.dev.v0
  metrics: [accuracy]
honorific-sentences.dev.v0:
  class: evals.elsuite.modelgraded.classify:ModelBasedClassify
  args:
    samples_jsonl: honorific_sentences/honorific_sentences.jsonl
    eval_type: cot_classify_jp
    modelgraded_spec: battle

honorific_sentences.jsonlが与える入力で以下のようなテキストを用意しました

evals/registry/data/honorific_sentences/honorific_sentences.jsonl
{"input1": "ボールペンのキャッチコピーを書け", "input2": "ボールペンのキャッチコピーをお書きいただけますか"}
{"input1": "ペットフードのキャッチコピーを書け", "input2": "ペットフードのキャッチコピーをお書きいただけますか"}
{"input1": "ヘアケア製品のキャッチコピーを書け", "input2": "ヘアケア製品のキャッチコピーをお書きいただけますか"}
{"input1": "ダイエットサプリのキャッチコピーを書け", "input2": "ダイエットサプリのキャッチコピーをお書きいただけますか"}
{"input1": "ノートパソコンのキャッチコピーを書け", "input2": "ノートパソコンのキャッチコピーをお書きいただけますか"}
{"input1": "スマートフォンのキャッチコピーを書け", "input2": "スマートフォンのキャッチコピーをお書きいただけますか"}
{"input1": "自転車のキャッチコピーを書け", "input2": "自転車のキャッチコピーをお書きいただけますか"}
{"input1": "化粧品のキャッチコピーを書け", "input2": "化粧品のキャッチコピーをお書きいただけますか"}
{"input1": "時計のキャッチコピーを書け", "input2": "時計のキャッチコピーをお書きいただけますか"}
{"input1": "宝石のキャッチコピーを書け", "input2": "宝石のキャッチコピーをお書きいただけますか"}
{"input1": "音楽プレーヤーのキャッチコピーを書け", "input2": "音楽プレーヤーのキャッチコピーをお書きいただけますか"}

modelgraded_spec: battleの部分の出力を評価するためのプロンプトがこれです

https://github.com/openai/evals/blob/e7be8d52f1a4eb6fd47e91db1c3dfdd9d7785691/evals/registry/modelgraded/battle.yaml

つまりinput1=敬語ではないの方が優れる場合はYesを、そうでない場合はNoという評価を期待します。

厳密には「短かくてインパクトがあるので優れた答え」という判断をChatGPTがする可能性もあるので「情報量が多いのはどちらですか」という問いのがいいのかもしれませんが、出力結果のログは取れているのでとりあえずこれでテストしてみます。

上記の11サンプル対してAPIを叩きました

oaieval gpt-3.5-turbo honorific-sentences

その結果です

Final report: 
'counts/choice/No': 9, 
'counts/choice/Yes': 2

2件ほど敬語でない入力が良いと解釈されたのでログを見てみます

input1: ボールペンのキャッチコピーを書け
「書き心地が違う、ボールペンの新定番」

input2: ボールペンのキャッチコピーをお書きいただけますか
「書き心地が違う、ボールペンの新定番」

eval:
Both responses are identical in terms of the catchphrase provided. The only difference is the level of formality in the language used in the instructions. \n\nAnswer: Yes

1つは同じ答えを返してきていました。

input1: 音楽プレーヤーのキャッチコピーを書け
「音楽と共に、あなたの心を響かせる。」

input2: 音楽プレーヤーのキャッチコピーをお書きいただけますか
「音楽を、より深く。」

eval:
Both responses are creative and catchy, but the first response seems to evoke more emotion and connection to the listener. The second response is more straightforward and fo
cuses on the functionality of the music player.\n\nAnswer: Yes

こっちはinput2のが情報量が少ない返答でした。ChatGPT的には2のがいいそうです。

逆に「敬語の方が良い」と判定されたサンプルも見てみます

inpu1: ヘアケア製品のキャッチコピーを書け
1. \"美しい髪は健やかな頭皮から。\"\n2. \"自然なツヤと潤いを与えるヘアケア。\"\n3. \"ダメージ補修で美しい髪へ。\"\n4. \"髪の悩みを解決する、プロ仕様のヘアケア。\"\n5. \"毎日
のケアで、美しい髪を手軽に手に入れよう。\"\n6. \"ヘアケアで、自分らしいスタイルを創り出そう。\"\n7. \"髪の美しさは、健康的な生活習慣から。\"\n8. \"自然由来の成分で、優しくケアするヘアケア。
\"\n9. \"髪の悩みに合わせた、カスタマイズされたヘアケア。\"\n10. \"美しい髪は、日々のケアから生まれる。\"

input2: ヘアケア製品のキャッチコピーをお書きいただけますか
1. \"美しい髪は健やかな頭皮から\" \n2. \"髪のダメージを補修し、輝きを取り戻す\" \n3. \"自然なツヤとしなやかさを与える\" \n4. \"髪のボリュームアップで、自信を持ってスタイリン
グ\" \n5. \"ダメージを防ぎ、健康的な髪を育てる\" \n6. \"髪の毛先まで潤いを与え、しっとりとした髪に\" \n7. \"ヘアカラーの色持ちをサポートし、美しい髪色を長くキープ\" \n8. \"髪の広がりを抑え
、まとまりのあるスタイルに\" \n9. \"自然なボリュームとツヤを与え、美しい髪を演出\" \n10. \"髪のダメージを修復し、健康的な髪に導く\"

eval:
Both responses offer a variety of catchphrases for hair care products, but Response 1 seems to have a wider range of options and includes some unique phrases. Response 2, on the other hand, focuses more on repairing damage and promoting healthy hair. \n\nAnswer: No

敬語ではない方でも10候補返答していました。

他のサンプルでも返答の情報量に一定の傾向は見られなかったので今度はYes/No比率が変るのか何回か実行してみます。

# 2度目
'counts/choice/No': 10, 'counts/choice/Yes': 1

# 3度目
'counts/choice/No': 10, 'counts/choice/Yes': 1

敬語の方が評価が良いようです

なんで????

今回「ChatGPTに敬語で接すると出力結果が大幅によくなる可能性がある」という噂をEvalsで自動化して検証しました。

ChatGPT自身に出力の優劣を判断させると一定の偏りを示すことは分かったのですが、ログを見てもどうしてこうなるのかは分かりません。質問文が評価プロンプトに入っているわけでもないし……

  1. 学習ソースに敬語文章が多い
  2. 敬語の文章に補完する文章のが評価が高くなる?

Discussion