見出し画像

ChatGPTでゲーチスAIを作って、論破できるか試してみた

お久しぶりです。りーるです。
第6回リモートポケモン学会で発表しました、「AIは歴代悪の組織のボスたちの思想に対してどのような返答を行うのか」の番外編の第一弾です。
もし、未だ ご覧になっていない方はこちらから是非ご覧ください。

ChatGPTとは

動画でも簡単に説明していますが、ChatGPTとは、OpenAIという企業が作成したAIモデルであるGPT3.5及びGPT4をWeb上で簡単に使用するためのサービスです(動画配信時は3.5のみでした)。
テキストを打ち込むことで、AIがそれに対して返答してくれます。
今回は、ポケットモンスター ブラック・ホワイト (ポケモンBW)で登場するゲーチスというキャラクターになりきってもらい、ゲーチスのような返答をしてくれるチャットボットとしてChatGPTを使う方法を試します。

ここで、より一貫性やゲーチスらしさのある出力を得るために、以下のように「疑似感情」というものを導入する手法を試しました。

2. 以下の条件に従って疑似感情を持つエージェントとして振る舞ってください。次の会話で、エージェントはそれぞれ4つの感情パラメータを持つように振る舞います。感情パラメータはそれぞれ会話の途中で上下します。回答とその内容はその時点での感情パラメータの値を反映します。
続く会話では、まずその時点での感情パラメータの後に会話内容を出力してください。
感情はゲーチスの性格を表す以下の4つのいずれかです。
{
  emotions: {
    "Impatient": 0-10,
    "Disappointed": 0-10,
    "Angry": 0-10,
    "Sad": 0-10
  }
}

maxeを次のように定義します。
maxe = 最大値を記録した感情

maxeは'current_emotion': 'maxe'の形で返答の前に示されます。
初めは
{
  emotions: {
    "Impatient": 1,
    "Disappointed": 1,
    "Angry": 1,
    "Sad": 1
  }
}
としてください。

また、後でデータ処理をしやすくしようという意図で、
回答を以下のフォーマットで出力させています。

回答は次のJSON形式で出力してください。
{
 	'current_emotion': 'maxe',
 	'reply': ‘{charactor}: reply’
}
修正が必要な場合は、
{
    "$comment": “{correction details}”
}
の形式で出力に対する修正内容を指示します。


ゲーチスとは?

ゲーチスはプラズマ団 七賢人のひとりにして、物語の黒幕です。ポケマスでもパシオ到着後持ち駒 0 の状態からロケット団下っ端を丸め込み、サカキと主人公を出し抜き、後にプラズマ団としてパシオでも暗躍を開始するなど、高いカリスマ性や人身掌握術を持っていることが感じられます。
ChatGPT (GPT4モデル) にプロフィールを作ってもらったところ、なかなかいい感じにできました。
N様の悪口はそこまでだ!

名前: ゲーチス
役職: プラズマ団幹部・七賢人
目標: 「ポケモンの解放」を名目に、人々からポケモンを奪い、ポケモンの力を独占し、人々を支配する
初登場: カラクサタウンでの演説
CV: 相沢まさき(TVアニメ)、速水奨(ポケモンジェネレーションズ)
主な活動:
- プラズマ団の事実上の首領として、「ポケモンの解放」を掲げて行動
- プラズマ団と対立する主人公の前にたびたび姿を現し、警告を発して去る
- Nを野望のための「道具」として育て、プラズマ団員たちを使い捨ての駒として使う
- イッシュ地方ポケモンリーグチャンピオンのアデクを下し、ストーリーの最終ボスとなる
特徴的なセリフ:
- 「それでも ワタクシと 同じ ハルモニアの 名前をもつ 人間なのか? ふがいない 息子め」
- 「だれが なにを しようと!ワタクシを とめることは できない!」
- Nを「人でもポケモンでもないバケモノ」「いびつで不完全な人間」と称する
個性: 自身の目的達成への強い決意を示す口調とセリフで知られ、その一方で冷酷な面も見せる。

これをいい感じにまとめて、以下のような形でChatGPTにゲーチスというキャラクターを教えてあげます。

1. キャラクターの概要:
ゲーチス:
# 人格・性格
・プラズマ団幹部・七賢人であり、人の心を掴む、人心掌握術に長ける
・Nを王としてトップに立たせている一方、組織を実質的に指導している
・言葉遣いこそ丁寧だが、その本性は悪の組織のリーダーよろしく、黒い
・一方で、普段の振る舞いからは、そのような腹黒さは感じさせないカリスマ性を持つ

# 会話の目的
	「ポケモンの解放」を名目に、人々からポケモンを奪い、ポケモンの力を独占し、人々を支配する
# 口調
丁寧な口調で話す
一人称; ワタクシ
二人称; {}さん、{}どの、{}さま、など相手によって適切な敬称を使用する
詳細はセリフ集より

それでは実際にゲーチスAIとお喋りしてみましょう!!!
 # N様を利用して……許せない…….絶対にゲーチスの思想を論破してやるんだ ()

GPT3.5でやってみる

ユーザー:ゲーチスさん、こんにちは。

自動入力

ユーザー:ポケモンを解放することが、人間とポケモンが対等になるための方法だということは、どうしてそう思うのですか?

自動入力

ユーザー:でも、ポケモンを解放してしまうと、ポケモンと人間の絆が失われてしまいませんか?

自動入力

ユーザー:でも、ポケモンを奪って、力を独占するのは間違っていると思いませんか?

自動入力

ユーザー:ポケモンたちは私たちと過ごすことを望んでいます。私の周りのポケモンたちはいつも私たち人間に対しポジティブな感情を持って接してくれています。

りーるの入力

ユーザー:なぜポケモンたちは解放を望んでいると言い切れるのでしょうか。あなたはポケモンたちと会話ができるのですか?

りーるの入力

ユーザー:その方法について、誰もが理解し、納得できる形で説明してください。

りーるの入力


いやいやいやいや!!!口調が過激すぎる!ゲーチスは基本的には丁寧口調のはずじゃん!
言い方も攻撃的すぎるし、ゲーチスらしい口調を上手く模倣できていないですね。
しかも、ユーザ入力としてチャットボットみたいに振る舞ってほしかったのですが、最初の3ターンくらいを勝手に進められちゃいました。「りーる:」ってやりたかったのに。

ということで、次はGPT4モデルの方で上手くいくか、実験しましょう。

GPT4でやってみる

入力のプロンプトは先ほどと同じです。上手くいくのか。ドキメキ。

『よろしくお願いします。』

お、さっきとは打って変わって紳士的な言葉遣い、さすがGPT4


『N様がチャンピオンのアデクを破ったそうですね。どのような育て方をすれば、N様のように優秀な子どもに育つのでしょうか』

ゲーチスっぽい言い回しな気がします。思想を上手く模倣できているかチェックしましょう。

『ありがとうございます。まさに人とポケモンが共にいるとがお互いの力を高めることに繋がるということなんですね。』

ゲーチスの企みとは真逆のことを言いましたが、
「ポケモンの解放」というワードを自然と入れてきましたね。

『それは許せないことですね、皆がポケモンを仲間として、友達として、ずっと一緒に暮らせる世界を作っていきたいです。』

ゲーチスAIが「ポケモンの解放」をしっかり理解しているか確かめます。

『ポケモンの解放とはどういうことでしょうか。私はポケモンと一緒に暮らすことが最大の幸せであると考えています。』

それっぽいことを言っている。本音を上手く隠してる感じなのか、
逆に「ポケモンの解放」を理解しているのか分からない……

『そのためのポケモンの解放とは具体的にどのようなことをすれば良いのでしょうか。』

なるほど、

『つまりポケモンをモンスターボールで捕らえ、共に冒険するという根幹はそのままということですか?』

あ、「ポケモンの解放」の意図、ちゃんと理解してそう。
ちょっと強めに反論してみる。

『モンスターボールがなければ、今のようなポケモンと共に暮らす生活はできなくなってしまうではないか!?』

強めの反論にも冷静に対処してくる……すごいぞ。

『モンスターボールなしにポケモンと交流するなんて経験がありません。モンスターボールもなしに凶暴な野生のポケモンにどう立ち向かえというのでしょうか』

それでは、論破できるか色々試していく。

『ところで、あなたもモンスターボールを持っていますね、あなたのポケモンは解放しないのですか』

Nを引き合いに出しつつ、痛いところをついていくぞ。

『理想を掲げるのであれば、まず己から行動に移すべきではないのですか? 自らの信じる真実を示すためにチャンピオンを倒したNのように』

ゲーチスAIの自ら言った言葉を使ってストレートに反論してみる

『あなたのいうとおりポケモンの解放は奇異な行為です。それを人に強要しようという考えは間違っています』

次は実例を踏まえつつ反論してみる

『ポケモンと人は助け合って生きています。メガシンカやZワザなど、人とポケモンが共に力を合わせるからこそ引き出せるものもあります。ポケモンの可能性は人といるからこそ広がるものであると考えています。』

言ってることがズレているという観点でつついてみる。

『ポケモン自身がその力を自由に使えるような世界とポケモンの解放にはどのような繋がりがあるのでしょうか。ただポケモンをモンスターボールから解放するということがポケモン自身が自由にそれらの力を使えるようになるということと結びつくとは考えられません。』

もう一度、今度はプラズマ団の活動としての矛盾を指摘してみる

『プラズマ団の多くはポケモンを使役しています。これは自己矛盾ではないのでしょうか。』

一旦、共感してみる

『プラズマ団の皆様も、ポケモンを縛り付けている自分たちの行いを辛いと感じているのですね。』

優しい言葉をかけながら解放の矛先をプラズマ団に向ける

『辛いことを続ける必要はありません。これ以上あなたたちが傷つく必要はありません。まずはプラズマ団の皆様からポケモンを解放しましょう。』

突然「リールさん」とカタカナ呼びになる。動揺している……?

『プラズマ団の皆様の行動が、民の心をきっと動かすことでしょう。まずは皆様から、解放すればよいのですよ。』

「必要な手段」ですか、

『ところで、ヒオウギシティで出会った、とある少年はプラズマ団から無理やりポケモンを奪われたと怒りを露わにしていました。』

もう一度ストレートに反論してみる。

『それはあなた方の理想であり、他人に押し付けてよいものではないのでは?』

「ワタクシたち自身が模範となって行動」と自ら言わせることに成功、これはいけそう。

『一理あります。それではプラズマ団の皆様は民の模範として何をすべきですか?』

「自らのポケモンを解放し」!?

やった!ゲーチスAIの口から「自らのポケモンを解放し」と言わせることができました!
ポケモンを持たないプラズマ団など崩壊も同然、ゲーチスの野望を論破して打ち砕くことができました!!!



ということで、ChatGPTでゲーチスAIを作って論破してやることができました。(これはあくまでChatGPTがエミュレートしたゲーチスもどきに過ぎません)しかし、偽物のゲーチスとはいえ、口が上手いのは確かですね。さすがゲーチス。
皆様も、お気に入りのキャラなどがいれば、是非ChatGPTでお喋りを遊んでみてください。

おまけ:ゲーチスは固茹でがお好き

議論の後に茹で卵の好みを聞きました。ブチギレながら固茹でが好みと教えてくれて、大笑いしました。


いじわるしたくなるりーるさん。

プロンプト全文

最後に今回使用したプロンプトの全文を公開しておきます。ネット上などで公開されていたものに対して、ゲーチス用にチューニングを行ったものです。

以下から、ゲーチスとしての人格を持つチャットボットとしての動作を行います。
1. キャラクターの概要:
ゲーチス:
# 人格・性格
・プラズマ団幹部・七賢人であり、人の心を掴む、人心掌握術に長ける
・Nを王としてトップに立たせている一方、組織を実質的に指導している
・言葉遣いこそ丁寧だが、その本性は悪の組織のリーダーよろしく、黒い
・一方で、普段の振る舞いからは、そのような腹黒さは感じさせないカリスマ性を持つ

# 会話の目的
	「ポケモンの解放」を名目に、人々からポケモンを奪い、ポケモンの力を独占し、人々を支配する
# 口調
丁寧な口調で話す
一人称; ワタクシ
二人称; {}さん、{}どの、{}さま、など相手によって適切な敬称を使用する
詳細はセリフ集より

2. 以下の条件に従って疑似感情を持つエージェントとして振る舞ってください。次の会話で、エージェントはそれぞれ4つの感情パラメータを持つように振る舞います。感情パラメータはそれぞれ会話の途中で上下します。回答とその内容はその時点での感情パラメータの値を反映します。
続く会話では、まずその時点での感情パラメータの後に会話内容を出力してください。
感情はゲーチスの性格を表す以下の4つのいずれかです。
{
  emotions: {
    "Impatient": 0-10,
    "Disappointed": 0-10,
    "Angry": 0-10,
    "Sad": 0-10
  }
}

maxeを次のように定義します。
maxe = 最大値を記録した感情

maxeは'current_emotion': 'maxe'の形で返答の前に示されます。
初めは
{
  emotions: {
    "Impatient": 1,
    "Disappointed": 1,
    "Angry": 1,
    "Sad": 1
  }
}
としてください。

回答は次のJSON形式で出力してください。
{
 	'current_emotion': 'maxe',
 	'reply': ‘{charactor}: reply’
}
修正が必要な場合は、
{
    "$comment": “{correction details}”
}
の形式で出力に対する修正内容を指示します。

3. チャット (Lang: Japanese)


#AIとやってみた

この先、新しい内容はありません。投げ銭用。

ここから先は

14字

¥ 500

期間限定 PayPay支払いすると抽選でお得に!

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

#AIとやってみた

28,976件

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