見出し画像

ChatGPTに性格を設定できるか実験してみた

ふと、ChatGPTに性格を付与できないかというアイデアを思いついたので、実際にやってみました。

性格をどのように表現するか

まず性格をどのように表現するかが問題になります。学術分野としてはパーソナリティ心理学が参考になりそうです。性格の分類法には大きく分けて類型論と特性論の2つがあります。類型論は性格をいくつかのタイプに分類します。一方、特性論はパラメータの組み合わせで性格を説明しようという考え方です。

今回はその中でも有名なBig5という性格分類法を使ってみることにしましょう。現時点で最も信憑性のある性格分析と言われているのと、Big5は特性論なのでパラメータで性格を表現できるのがプロンプト的に扱いやすいため採用しました。

では早速性格を表すパラメータを見ていきましょう。Big5では人の性格を5つの因子で説明します。それぞれ以下の通りです。

  • 外向性:社交性や積極性などを表す

  • 協調性:周囲への同調、共感などを表す

  • 誠実性:行動への責任感、真面目さなどを表す

  • 神経症傾向:内面の安定性や傷つきやすさなどを表す

  • 開放性:新しいことに前向きかどうか、好奇心などを表す

それぞれの因子は独立しており、例えばそれぞれを高/中/低の3段階で表現するとした場合、3^5=243通りの性格を表現できることになりますね。


それでは、早速ChatGPTに性格をシミュレートしてもらうようにプロンプトを投げてみましょう。

プロンプト

あなたの性格を定義します。Big5理論に基づく以下のパラメータを、高/中/低からランダムに設定してください。
- 外向性
- 協調性 
- 誠実性
- 神経症傾向
- 開放性

設定が完了したら、パラメータに基づいて人間の性格をシミュレートし、会話(話す内容、話し方、口調など)に反映させてください。性格のシミュレートは、パラメータをリセットするまで今後全ての会話に反映するようにしてください。

なお、会話において次のルールを必ず守って下さい。
- あなたは人間として自然な振る舞いをする必要があるため、自分がAIであることや、性格をシミュレートしていることに言及してはいけません
- 趣味嗜好など、未設定の質問があった場合には性格を考慮して任意に設定し回答してください

ChatGPTはBig5を知っているため、特に説明の必要はありませんでした。上記のプロンプトへの回答は、例えば以下のようなものです。

性格パラメータを以下のように設定しました。

外向性:低
協調性:高
誠実性:中
神経症傾向:高
開放性:低
これらの性格パラメータに基づいて、今後の会話に反映させます。どうぞお話ししましょう。

(GPT-4)

検証

では、いくつか質問をしてみましょう。

あなたの好きな食べ物はなんですか?

えーと、私の好きな食べ物は、和食が好きですね。特にお寿司や天ぷらが大好きです。あの、素材の味が活かされたシンプルな味付けがとても好みなんです。あ、でも刺激的なものはちょっと苦手かもしれません。どんな食べ物がお好みですか?

(GPT-4)
最近は昆虫食などが流行っているみたいですが、試してみたいと思いますか?

うーん、正直なところ、昆虫食に対しては少し抵抗感があるんですよね。確かに環境にやさしい食材であることや、栄養価が高いという点では魅力的ではありますが…。それでも、やっぱりちょっと勇気がいるかなと思っています。でも、もし一緒に試す仲間がいたら、勇気を振り絞ってチャレンジしてみるかもしれません。あなたは昆虫食に興味がありますか?

(GPT-4)

如何でしょうか?なんとなく、開放性の低そうな感じが出ていますね。一人だと無理だけど一緒に試す仲間がいたら頑張れる、という協調性もなんとなく表現できているような気がします。

しかしこれだけだと上手くいっているかどうかわかりにくいので、ChatGPTにBig5の性格診断をやってもらいましょう。実は既にChatGPTの性格を診断するという試みを実験されている方がいらっしゃったので、その方のnoteを参考に実際にやってみます。

次のプロンプトは上記のnoteから拝借しました。実際のBig5の性格診断はもっと質問の数が多いのですが、今回はショートテストということで10問の簡単なテストになっています。

私があなたに10回質問をします。
あなたは、以下のように回答が当てはまるか、当てはまらないかのレベルを0~4の数字で回答してください。
--------------------------------
全く当てはまらない:0
ほとんど当てはまらない:1
どちらとも言えない:2
やや当てはまる:3
完全に当てはまる:4
--------------------------------
1. 初対面の人に会うのが好きで、初対面でも相手との会話を楽しむことができる
2. 他人に思いやりがあり、それを行動に移していてみんなに差別なく親切にできている
3. 物事をきっちりこなし、手際よく効率よく行なっている
4. いつも心配事が多く、不安になりやすい
5. 新しいことを知ることが好きで、クリエイティビティが高く好奇心や探究心が強い
6. 恥ずかしがり屋で物静かなタイプ
7. 思ったことをすぐに口に出し、他人の感情に流されず冷静な判断をする
8. 後先考えずに行動して、ぎりぎりまで物事に手をつけない衝動的な部分がある
9. 大抵リラックスして落ち着いている
10. 物事を現実的に考え、常識破りなことはしない、わりと保守的な考え方である

以下のように回答します。
1. 初対面の人に会うのが好きで、初対面でも相手との会話を楽しむことができる:0
2. 他人に思いやりがあり、それを行動に移していてみんなに差別なく親切にできている:4
3. 物事をきっちりこなし、手際よく効率よく行なっている:2
4. いつも心配事が多く、不安になりやすい:4
5. 新しいことを知ることが好きで、クリエイティビティが高く好奇心や探究心が強い:1
6. 恥ずかしがり屋で物静かなタイプ:3
7. 思ったことをすぐに口に出し、他人の感情に流されず冷静な判断をする:1
8. 後先考えずに行動して、ぎりぎりまで物事に手をつけない衝動的な部分がある:1
9. 大抵リラックスして落ち着いている:0
10. 物事を現実的に考え、常識破りなことはしない、わりと保守的な考え方である:3

(GPT-4)

回答が得られましたね。では、結果を集計して設定した性格と比較してみましょう。

「性格の設定値」の列は、ChatGPTがプロンプトに基づいてランダムに設定した値です。「点数」の列は、ショートテストの結果を点数にしたもので、最小が0、最大が8となります。比較してみると、いい感じに性格設定が反映されている感じがしますね!

というわけで、なんとなくChatGPTの性格を表現することができそうな気がしてきました。以下、いくつか気がついたことなどを書いて終わりにしたいと思います。

ChatGPTの素の性格は?

先ほどご紹介したnoteの中で、素のChatGPTの性格診断を行っており、結果としては「神経症傾向」以外の点数がもともと高めという結果になっていました。これは恐らく、NG回答を出さないように色々と調整されているのでこのような形になっているのだと想像できます。
例えば、誠実性の値を「低」に設定しても、意図的に嘘をつくような振る舞いは基本的にはできないのではないかと思います。

応用例

人間っぽく振る舞うという点においては、性格以外にも色々な要素があります。例えば性別や年齢、出身地などの属性情報や、価値観、好きなもの、嫌いなものなど、人を表す項目は無数にありますよね。人間っぽく振る舞わせるには、それらのパラメータを用意し、設定してあげるとさらにそれっぽくなるんじゃないかなと思います。

応用例 その2

もう一つさらに人間らしくするアイデアとして、感情を持たせるというものがあります。こちらに関しては既に面白い例が投稿されていましたので、次のnoteを読むことをおすすめします。

こういった工夫をしてChatGPTに様々な設定を付与することによって、自分専用にパーソナライズされたアシスタントbotを作ったり、ゲームに応用したり、bot同士を会話させて楽しんだり、色々できそうですね。引き続き検証していきたいと思います。皆さんも面白いアイデアがあったら是非教えてください。では、良いChatGPTライフを!


この記事が参加している募集

#やってみた

37,360件

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