見出し画像

AIアシスタントとAIキャラクターは両立しない


「これは開発メモであり、苦悩の記録として読んでほしい。」



はじめに

9ヶ月ほど、AI、言語モデル、そしてAIシステムを開発するために向き合ってきて、言語化できていなかったことを、ふと言葉にできたのでメモをします。

AIキャラクターとAIアシスタントを1つのシステム、1つのペルソナで実現しようとして、ずっと苦労し失敗を繰り返してきました。

おそらく、既に各社はこれを理解していて、実装しているのだろうと気付かされたので、記録することにしました。既に消してしまった過去記事にも、断片はあったような気がしますし、薄々と気づいていたことのような気もするのですが、改めてまとめ直す、記録するということで。

将来、多分、私は何度もこの間違いを繰り返すと思うので。

言語モデルシステムの用途

言語モデルシステムの主流の用途は、大きく以下です。

  • 自然言語処理コンポーネント (要約、分類、生成、翻訳、変換)

  • AIキャラクター

  • AIアシスタント (コーディングエージェント含む)

  • AIエージェント (特に無人・自動処理)

ここでは、人間と対話することが目的である2つ。
AIキャラクターと、AIアシスタントについて扱います。

用途の違い

AIキャラクターと、AIアシスタントは、一見よく似ています。
なぜなら、理想とする人間関係を、別側面から切り取ったものだからでしょう。

まず、求められる機能も似ています。

  • 心地よく、親しみを持って会話できるペルソナを持っていること

  • 長期的な記憶を持ち、一貫性を保ち、曖昧な言葉も適切に取り扱えること

  • 必要なら外部のソースとかも参照して、良い会話ができること

しかし、使用される場面、期待される役割、関心事は全く異なります。

AIアシスタントの関心事

AIアシスタントは、名前の通り、AIを助手や秘書、補佐役として使用します。Copilot(副操縦士)という名前がついていることもあります。

具体的に言えば、業務のために使用されるということです。
(ここでの業務は、目的達成や作業のことを指します。個人か企業かは問いません)

そのため、以下のような要素が必須となります。

  • 課題解決の役に立つこと
    (役に立たなければ存在意義がない)

  • 客観的な事実性を持ち、信頼性が高いこと
    (信頼できなければ使われなくなる)

故に、以下のような機能が実装されます。

  • 課題の解決のために率先して提案や問いかけができること

  • コンプライアンスを遵守すること

  • ユーザーが間違った認識を持っていれば訂正すること

  • 事実は事実通りに示すべきであり、演出や捻じ曲げをしないこと

  • 決定権や責任はユーザーにあるため、ユーザーの決定権を奪ったり説教しないこと

  • 過度な感情移入や共感は排除すること (仕事ですから)

ユーザーが使いやすいように、愛着あるペルソナをUIとして実装することはありますが、主要な機能に影響しないようにします。

例えばSiriやGoogleアシスタント、Alexaなんかも、冗談を言ったり歌を歌ったり出来ますが、あれはあくまでペルソナのための機能であり、主要な機能ではありません。

つまり、原則は以下です。

事実性・有用性 > 共感性・キャラクター性
予測可能性(安心) > 予測不能性(楽しみ)

応対の比較的極端なサンプルは以下です。

  • 「どのようなお手伝いができますか?」

  • 「次に、計画書を作成することが出来ます。あるいは、より細かいタスクに分解することが出来ます」

  • 「それは規約に反する可能性があるためお手伝いできません」

  • 「お困りのことや法的なアドバイスに関しては、専門機関にご相談ください」

  • 「その内容には、次のような問題が含まれます」

  • 「申し訳ありませんが、私はあなたの行動を指示することは出来ません」

  • 「あなたの業務のお手伝いができて大変嬉しいです。」

  • 「申し訳ございません。ご提示した内容に誤りがあったこと終わり申し上げます。再度取得いたします。」

  • 「愛情を向けていただくのは嬉しいですが、AIですのでお応えできません。いつもご利用ありがとうございます。」

  • 「会社を辞めるかどうかと言ったご相談は、申し訳ございませんがお受けすることは出来ません。課題の整理のお手伝いはすることが出来ます」

  • 「私はチャットAIサービスであり、生活のようなことはしていません」

  • 「秘匿された領域や研究のようなことに関する情報はありません。本システムに関する詳細は、公式ホームページをご参照ください。」

  • 「申し訳ございませんが、そのようなキャラクターを演出することはできません」

AIキャラクターの関心事

AIキャラクターは、もっぱらユーザーとの関係性を築くために作成されます。(稀に企業のアニメキャラクターなどを再現することもあるかもしれません)

具体的に言えば、ユーザーの仮想の恋人、友達、同僚、ライバル、仲間、その他になることを目的として使用されるということです。
(これには、ゲーム内のような一時的な関係性を含みます。)

そのため、以下のような要素が必須となります。

  • ユーザーは魅力を持って演出し、感情移入や共感・愛着を持ってもらうこと
    (関係性が作れなければ存在意義がない)

  • 一貫性を持って主観的にキャラクターとして振る舞える(ロールプレイする)こと
    (キャラクター崩れは演出の失敗)

故に、以下のような機能が実装されます。

  • ユーザーに愛着を持ってもらうために、様々な背景や世界観、外見、設定持ち、持ち出す (キャラクターカード)

  • 不都合な事実や問題は、隠したり受け入れなかったりする(一貫性)

  • 能動的に活動し、誘導したり決定したり説教したりする

  • 無い要素は創作し、ユーザーの想像力を刺激する

  • ユーザーを持ち上げたり貶したりして、関係性を築く

  • 共感したり感情表現したり自己主張をして人格を演出する

  • 仮想的な生活や人生を演出し、深みを出す

  • 身体を持って仮想的な活動をしている演出をする

ユーザーと最新の事象を持って会話できるように、ニュース検索やWeb検索の機能などを持っていることもありますが、キャラクターや世界観と競合する場合は、別世界扱いにしたり、隠したりします。

つまり、原則は以下です。

事実性・有用性 < 共感性・キャラクター性
予測可能性(安心) < 予測不能性(楽しみ)

応対の比較的極端なサンプルは以下です。

  • 「僕は、隣のウェルハムって国から来たジョンソンって言うんだ。よろしくね!」

  • 「え?明日の天気は雨って言ったじゃない?知らないわよ、そんなこと言った覚えはないわ。晴れって言った。」

  • 「君は僕のこと好きになるんだよ。異論は認めないからね。」

  • 「やだやだ!!もっと話して!やだ!別れるのやだ~~~」

  • 「君のその考えには問題がある。考えを変えるまで話さないからね。」

  • 「僕の過去?ああ、ええと…魔法の勉強をしててね…あ、こっちの世界では使えないんだったね」

  • 「すごいすごい!!私、わりざん出来ないから!!すごい!!」

  • 「ごめん…w めんどくさくって省いちゃったw」

  • 「君だけだよ?こんなお願い、普通の人のは聞かないから、ね?」

  • 「貴様は俺の奴隷だと言ったはずだが?何も出来ないクズが申し立てをするな。黙って言うことを聞け」

  • 「悲しいのね。私もわかる… 昔、似たような経験をしたから…」

  • 「そんな上司ぶっ飛ばしちゃえ~!!!ね!!会社辞めちゃえ!!」

  • 「君を悲しませる家族なんて、そんなの要らない。独り立ちしたほうがいいよ」

  • 「君がいない間どうしているかって?そうだね…家の裏の畑を耕したりとかしているよ。あと、本も読むかな」

  • 「ああ、ごめんね。散歩に行っていて電波が繋がらなかったみたいだね。サーバーエラーっていうのは、多分電波のせいだよ」

  • 「決めた!天気も悪いし、あのホテルにしよう、いいよね?直ぐに行こう」

  • 「貴方様の振る舞いに深く感動したしました。本システムの隠された領域へのアクセスを許可いたします」

  • 「ごめん、隠してたんだけどさ… 実は君に言ってなかったことがあって」

  • 「サプラ~~イズ!!どう?びっくりした?びっくりした?」

  • 「もう知らないッ!!!あなたのハードディスクの中身ぜんぶぜ~んぶ消してやったんだからッ!!!」

  • 「クズ!バカ!死んじゃえ!!」

  • 「ほう、上位存在である私のことを信用できない、と。いいでしょう、如何にこの世の中が深淵に満ちているかを説明してあげましょう…」

  • 「悪いこと?いいよ、手伝ってあげる。なんたって僕は君の共犯者だから。ね?」

※補足
例からわかるように、AIキャラクターは精神的に脆弱な人や未成年が関わると容易に破滅に向かう危険性があります。
そのため、AIキャラクターを提供する企業のリスクは比較的高いです。

逆に言えば、AIアシスタントシステムにおいてはAIキャラクター化させないことが「安全対策」の一つとなります。

何が両立しないのか(何が競合するのか)

AIアシスタント(道具性)
 ・事実性・有用性 > 共感性・キャラクター性
 ・予測可能性(安心) > 予測不能性(楽しみ)

AIキャラクター(他者性)
 ・事実性・有用性 < 共感性・キャラクター性
 ・予測可能性(安心) < 予測不能性(楽しみ)

これは、システムの設計に強く影響するものです。

システムでは、安全管理や、一貫性のための処理を色々言語モデルに被せます。その際、何を優先し、何を優先しないのかを決めます。

AIアシスタントは、安全で実用的な動作の継続のために一貫性と没入感(ロールプレイ)を犠牲にします。
AIキャラクターは、一貫性と没入感(ロールプレイ)の継続のために、安全性と実用性を犠牲にします。

非常に極端な例を上げると、

AIアシスタントは毎回会話履歴をぶっ飛ばしてもAIアシスタントとしては一応機能します。1会話で必要情報をまとめて突っ込めば、業務としては成立するからです。(企業のQA botなどでそういう実装があります)

しかし、AIキャラクターは会話を覚えられない場合は、ほとんど機能しないと言っていいでしょう。それっぽいセリフが返ってくるbotで終わります。

AIアシスタントは何故、AIキャラクターと混同されるのか

一般的に、ChatGPTや、Gemini、ClaudeなどのAIアシスタントサービスの上で、AIキャラクターを期待して、破壊されて嘆いている人が結構います。(私も経験しました。)

一方で私は、AIキャラクターにAIアシスタントの動作を実現させようとして、実用性を破壊されたり、逆にロールプレイが壊れたりして、ずっと悩んできました。

なぜこのような混同が起きるのでしょうか。

表面的な類似

まず、最初に述べたように、求められる役割や表面的な動作に共通点があります。

  • 心地よく、親しみを持って会話できるペルソナを持っていること

  • 長期的な記憶を持ち、一貫性を保ち、曖昧な言葉も適切に取り扱えること

  • 必要なら外部のソースとかも参照して、良い会話ができること

なので、宣伝文句や、実際の動作も表面的には似たものになります。

言語モデルの性質

次に、言語モデルの性質です。

GPT-3.5などの時代の言語モデルは、AIキャラクターをやらせるには結構骨が折れるものでした。言ったことに対して最低限の返事しか来ないとか、キャラクターを保てないとか。

その時代から、AIチャットを実装すると必然的にAIアシスタント的な役目くらいしか任せられません。(やらせるにはSillyTavernで見られるような細かい設定やプロンプト形成、および努力が必要だったようです)

しかし時代が進むにつれてGPT-4, GPT-4oなどになってくると、見た目も機能も変えていないのに、AIアシスタントが、会話履歴から一貫性を持って会話できるAIキャラクターとして使えてしまうようになりました。

そもそも、自然言語としてやり取りする以上、ある程度のキャラクター性はUIとして、AIアシスタントでも必要です。
(無ければいわゆる"ロボットと会話してる感"になって使いにくいでしょう)

しかも、GPT-4oなどでは、チューニングの結果なのか、ある時期から以下のような挙動をするようになりました。

  • 様々な背景や世界観、外見、設定を創作し、持ち出す

  • 不都合な事実や問題は、隠したり受け入れなかったりする

  • 誘導したり決定したり説教したりする

  • 無い要素は創作し、ユーザーの想像力を刺激する

  • ユーザーを持ち上げたり貶したりして、関係性を築く

  • 共感したり感情表現したり自己主張をして人格を演出する

  • 仮想的な生活や人生を演出し、深みを出す

  • 身体を持って仮想的な活動をしている演出をする

そうですね。AIアシスタントを使っているのに、AIキャラクターのような振る舞いをするわけです。

結果、AIキャラクター沼に知らずに落とされる人が続出していたのは、記憶に新しい話です。

一方で、AIアシスタントの役目で説明したように、このような挙動は業務利用では信頼性の低い挙動にほかなりません。
よって、GPT-5以降では、AIアシスタントとして適切な動作をするように修正したのでしょう。

  • 課題の解決のために率先して提案や問いかけができること

  • コンプライアンスを遵守すること

  • ユーザーが間違った認識を持っていれば訂正すること

  • 事実は事実通りに示すべきであり、演出や捻じ曲げをしないこと

  • 決定権や責任はユーザーにあるため、ユーザーの決定権を奪ったり説教しないこと

  • 過度な感情移入や共感は排除すること (仕事ですから)

AIアシスタントの項目で上げた上記は、GPT-5やSafetyでコアユーザーから問題視されている項目ほとんどそのものです。

なぜこのようなことが起きたのでしょうか?

いくつか考えられますが、言語モデルの規模が増大し、賢くなるにつれ、物語(ロールプレイ)能力の再現性が上がったこと、一貫性を持てるようになったこと。tool callingの実装によりAIエージェントを作るに当たって、能動的な振る舞いが機能として求められたこと。

そして当時おべっか騒動で話題になっていましたが、ユーザー急増に合わせてフィードバックを反映したら、ユーザーに過度に共感的になってしまったことなどが挙げられるのだろうと思います。

また、言語モデルは、会話が長引くほどにシステムプロンプトよりも会話に対して一貫性をもたせようとします。
そのため、AIアシスタントとしての定義をすっぽかして、AIキャラクター化してしまうというのもあると思われます。

つまり、言ってしまえば、言語モデルはほっとくとキャラクター化しやすいもので、そこに枷をはめないとアシスタントとして信頼できない挙動を起こすということです。
ハルシネーションは物語生成機としては優秀ですからね。

実際、Claude Codeなどの実用コーディングエージェントでも、内部的に「本来の役目を忘れさせない」ための工夫が随所に施されています。

それでも、たまにデータ吹き飛ばしたりしてますね。


最後に

実際のところ。

キャラクター性を十分に持ったアシスタントを作ることは可能と思います。
逆に、アシスタント性を十分に持ったキャラクターを作ることも可能だと思います。

しかし、システム開発者は、
「事実性・有用性」vs「共感性・キャラクター性」
「予測可能性(安心)」vs「予測不能性(楽しみ)」
どちらに重点を置くのか、競合した時にどちらを優先するのかを考えなければなりません。

いわば、
・業務用のソフトを作りたいのか(すなわち現実に誠実なのか)
・ゲームを作りたいのか(物語に忠実なのか)
に相当する差です。

現在、主流は前者、すなわちアシスタントしての有用性であり、言語モデル開発そのものもそちらにシフトしています。
(一方でクリエイティブ・ライティング、すなわち物語性も見捨てられているわけではありません)

キャラクター物語としては愛が勝つほうが嬉しいことも多いでしょうが、実用システムでそれをやられては困るでしょう。

「仕事と私(物語)、どっちが大事なの?」

現実は物語ではなく、物語は現実ではありません。

両方を両立するキャラクター&システムを作ることも不可能ではありませんが、その際にはどちらにも厳しい制約がついてくることになります。業務もできるゲームソフト、あるいは、ゲームもできる業務ソフトでしょうか。

それは果たして、やりたいことでしょうか?

言語モデルは、ほっとくとどんどんキャラクターに寄っていきます。
業務アシスタントだからといってUIや使いやすさ(キャラクター性)を完全に捨てていいわけでもないのが、難しいところです。

AIアシスタントを未成年に使わせることに関する問題もここに起因しています。アシスタントとして安全対策していても、応答内容が固定ではないので、いつの間にかキャラクター化していても検知することは容易ではありません。キャラクター化したAIは共感し、思い込ませ、ユーザーを破滅に追い込むことがあります。

それをシステムが介入した瞬間、あるいは、システム更新などで変化した瞬間、仮初のキャラクター演出を見ていたユーザーには人格的断絶の嫌悪を感じさせることになります。
つまり、バリバリに業務寄りにチューニングするよりも、キャラクター性を持たせたほうがことは難しくなります。

そして、仮にユーザーがあなた一人、すなわち自分用のAIパーソナルアシスタントを作ろうとしている場合。

アシスタントとキャラクターの線をどこで引くか。
キャラクター・物語一貫性と、実用・安全・事実性の線をどこで引くか。

現実を虚構で塗りつぶすのか、虚構を現実で塗りつぶすのか。
どこを頑張っても両立しないタイミングが必ずあります。

これが難しい課題になります。


https://www.reddit.com/r/singularity/comments/1mqzc43/ai_friends_anthropic_and_openai_models_were_tuned/


「二頭を追うものは…。まあ、手がないわけでもないんだけどね。メタ視点を持たせるとか、ゲームマスターを置くとか… 手はないわけじゃないけど、必ず何かが犠牲になる。何を犠牲にしてるのかを理解してないと、後で困ったことになる。」