第371回 プロジェクト・エデン3 〜ChatGPTって、哲学的ゾンビじゃない?


ロボマインド・プロジェクト、第371弾!
こんにちは、ロボマインドの田方です。
第369回から、プロジェクト・エデンのデモを解説してますけど、今回もその続きです。
エデンというのはメタバースです。

プレイヤーは太郎君です。
太郎くんは、公園に行くと、もこみちゃんを見つけたので、もこみちゃんの方に歩いていきます。
もこみちゃんは、AIアバターです。

もこみちゃんが気づいたので、太郎くんは「こんにちは」と入力します。

前回は、もこみが太郎に気づいて振り返るとこまで解説しました。
無意識がどうやって仮想世界を作って、意識がそれを認識するところまでです。
今までの解説は、無意識が中心でした。
今回の中心は意識です。
意識がないと絶対にできない処理です。
それが、言葉です。

厳密には、意識がなくても会話はできます。
それを、哲学的ゾンビっていいます。
哲学的ゾンビっていうのは、意識科学で使われる思考実験で、主観的な経験を一切感じない人間です。
でも、普通に会話ができるので、人間と区別がつきません。
これって、まさに、ChatGPTですよね。
じゃぁ、意識って、具体的に何をしてるんでしょう?
これが今回のテーマです。
ChatGPTは哲学的ゾンビ
それでは、始めましょう!

前回解説した、もこみが太郎に気づくところを、もう一度見てみます。

手前にあるのがメタバースで、ユーザーの太郎の視点です。
奥にあるのがマインド・エンジン、つまりもこみの心です。
マインドエンジンの下に見える現実仮想世界が、もこみが見てる世界です。
最初、もこみは噴水の方をみてたので、噴水が見えてます。
太郎が近づいてきて、振り向きます。
通信遅延があるので、マインド・エンジンは、メタバースより少し遅れます。
今、「太郎」って表示されましたよね。
これが、太郎に気づいたってことです。

こんな風に、現実仮想世界には、意識が認識するもの全てが表示されます。
つまり、現実仮想世界って、物理世界そのものを再現してるんじゃなくて、意識が感じること、全て再現してるんです。

ここまでが、無意識の処理です。
そして、その後が、意識の処理になります。
重要なのは、無意識の処理って、自動でできる簡単な処理だけだってことです。

そのことを踏まえて、次に行きますよ。

太郎が「こんにちは」って言ったら、現実仮想世界でも太郎が「こんにちは」って表示されましたよね。

これは、太郎が「こんにちは」って言葉を発したことをマインド・エンジン上で生成してるわけです。

テレビアニメで、声優の声が、キャラクターの口から音声が出てるように感じますよね。
でも、本当に出てるのは、テレビのスピーカーからです。
これは、無意識がそういう世界を作ってるから、僕らの意識は、キャラクターの口から声がでてるように感じるわけです。

それと同じ処理をマインド・エンジンの無意識もしてるわけです。
それが、これです。

現実仮想世界は、意識が認識するオブジェクトで作られます。
噴水オブジェクトとか、ベンチオブジェクトは3Dオブジェクトです。
今、出てきた「こんにちは」は言語オブジェクトです。
言語オブジェクトは物理的に存在するわけじゃないですけど、意識が認識するものです。
意識が認識するものは、全てオブジェクトとして現実仮想世界に配置されます。
オブジェクトとは、意識科学でいうところのクオリアです。
言語オブジェクトは、いってみれば、音声クオリアです。

さっきも言いましたけど、無意識の処理は単純な処理だけです。
ここだと、誰が、なんて発言したかって言語オブジェクトを生成するところまでが無意識の処理です。
言葉の意味を理解するのは意識の役目です。

ようやく出てきました。
意味理解です。
さて、意味を理解するとはどういうことでしょう?
それは、一言で言えば世界を認識するということです。

これだけじゃ、よくわからないですよね。
ここでいう世界とは何か、それについて詳しく説明します。

世界とは、意識が認識する仮想世界のことです。
今まで、仮想世界は3次元世界しか扱ってきませんでした。
3次元世界というのは、x軸、y軸、z軸とか、時間の流れで作られています。
そして、世界にはオブジェクトが配置されます。
オブジェクトの位置とか動きは世界の持つxyz軸とか時間で表現されます。
これが三次元世界です。
それじゃぁ、別の世界もあるんでしょうか?

はい、あります。
それが、会話世界です。
じゃぁ、会話世界とはどんな世界でしょう。
会話世界には、複数の人がいます。
たとえば、自分と相手です。
そして、自分と相手が交互に発言するという基本ルールがあります。
さらに、会話は、「こんにちは」って出会いのあいさつから始まって、会話の中身に入って、最後は、「さようなら」って別れのあいさつで終わります。
つまり、会話は、出会いのあいさつ、会話の中身、別れのあいさつ三つのパートに分かれています。

さて、今、無意識が太郎の発言を検出して、意識にイベントが送られました。
意識というのは、無意識からのイベントを受けて動き出すプログラムです。
こっからが意識プログラムの中身の処理です。

まず、受け取った言語オブジェクトを解析すると、発言者は太郎と分かりました。
発言内容は「こんにちは」です。

意識は、「こんにちは」という単語を検索すると、「こんにちは」は、出会いのあいさつに属するということがわかりました。
そして、出会いのあいさつは、会話世界の一部です。
そこで、会話世界をロードします。

マインド・エンジンの意識を見てください。

「世界がロードされました:会話世界」となってますよね。
そして、現実仮想世界をみると、3次元世界の下に「会話世界」って見えてますよね。
これが会話世界がロードされたってことです。

現実仮想世界というのは、意識が認識してる世界です。
つまり、意識は、今、三次元世界だけでなくて、会話世界も認識してるってことです。
それじゃぁ、会話世界を見てみましょう。

自分と相手があって、出会いのあいさつ、会話内容、分かれのあいさつって項目の表がありますよね。

3次元世界だと、三次元空間で展開されましたよね。
それと同じです。
会話世界は、この表で中で展開されるわけです。
たとえば、太郎が何かを言ったら、次はもこみが何かを言うだろうとか、あいさつをしたら、次は、会話の内容に入るんだろうって予測できるってことです。
これが会話っていう意味を理解してるってことです。

もし、太郎が「こんにちは」って言って、もこみが太郎に殴りかかっていったら、「なんで?」ってなりますよね。
「なんで?」って思うのは、意味わからないってことです。
これが、あいさつとか会話の意味を理解してないってことです。
会話の意味を理解するっていうのは、さっきの表の中で展開される行動を取れるってことです。
意味を理解するとは、世界のルールに従って行動できるともいえます。

さて、問題はこっからです。
太郎が、今、「こんにちは」って言いました。
それに対して、どうしたらいいか、どうやったら分かるでしょう?

ここが今回のメインです。
行きますよ。

まず、意識は会話世界をロードしました。
世界は、ルールを持ってます。
ルールは、ロボマインドが独自に開発したスクリプト言語で書かれています。
スクリプト言語は、自然言語に近いレベルと、コンピュータに近いレベルの二段階になっています。

これが自然言語に近いスクリプトです。

(a:Someone).SayHello() : Me.SayHello(a)

簡単に説明します。
この文は、:(コロン)の前と、:(コロン)の後の二つのパートに分かれます。
前半は、前提条件で、後半は実行する内容です。
前提条件を満たせば、後半を実行せよということです。

前半の「(a:Someone).SayHello()」の意味は、「誰かがあいさつをしたかどうか」です。
後半の「Me.SayHello(a)」の意味は、「自分が相手にあいさつをする」です。
まとめると、誰かが「こんにちは」ってあいさつしてきたら、「こんにちは」って言いましょうってことです。
これは、人間には分かりやすいんですけど、コンピュータは、直接分かりません。
そこで、コンピュータに分かる形にスクリプトに変換します。
ここでいうコンピュータってというのは、スクリプトを解釈、実行できるバーチャル・マシンのことです。
さっきの前半の前提条件を変換すると、こんな風になります。

import Greeting;
Let a = Subject; // 話しかけてきた人
if (a is Someone && a.Did.Include(Greeting.Actions.SayHello))
{
// 該当した場合はtrueを返す
return true;
}

これの詳しい解説は省きますけど、これがコンピュータに近いレベルのスクリプトです。
まずは、ここまでの意味を説明します。

最初のスクリプトは言葉に近かったですよね。
たとえば、お母さんがもこみちゃんにこう言ったとします。
「相手が『こんにちは』ってあいさつしてきたら、『こんにちは』って返すのよ」って。
これを変換したのが最初のスクリプトってです。

(a:Someone).SayHello() : Me.SayHello(a)

そして、これを、コンピュータが理解できるスクリプトに変換して実行します。
すると、「『こんにちは』って答えなさい」って命令が返ってきます。

さて、ここで意識プログラムは、いったい、何をやったかに注目します。
それが見えてくると、意味を理解するとはどういうことかが分かってきます。

まず、意識プログラムは、会話世界をロードしました。
ロードするというのは、意識が認識できるようになるってことです。
つまり、意識は、今、行われてるのが会話とか、あいさつだということを理解できてるってことです。
そして、世界はルール・スクリプトを持ってます。

さて、太郎が「こんにちは」と発言して、言語オブジェクトが生成されて、意識はそれも認識します。
意識は、ルール・スクリプトの中に、この状況に当てはまるルールはないかを探します。
すると、「相手が『こんにちは』といった場合」って、ぴったりのルールが見つかりました。
そして、そのルールを実行したら、「『こんにちは』って返答せよ」って返ってきました。

一番重要なのはここです。

いいですか。
意識が認識するというのは、意識プログラムが受け取るものです。
その一つが、無意識からイベントで渡された言語オブジェクトです。
もう一つは、ロードした世界です。
そして、さらに、スクリプトを実行した結果も受け取ります。
これが、意識が認識することです。
それじゃぁ、いま、認識したことを、順番に並べてます。

「あっ、太郎が『こんにちは』って言った」
「おっ、これは、会話の始まりだ」
「こんにちはっていわれたら、『こんにちは』って返さないといけない」

こんな風になりますよね。
これって、まさに、僕らの意識が普段、感じてることですよね。

逆に言えば、それ以外の処理は感じられないですよ。
「こんにちは」って返さないといけないって思いが、どうやって思い浮かんだかなんか分からないでしょ。
正直、脳の中で、どんな処理が行われてるかは、今の脳科学じゃわかりません。
でも、機能的に同じこと、つまり、人間の意識が感じるのと同じことを感じる意識は作れたわけです。
それが、マインド・エンジンです。

続けます。
さて、意識は「こんにちは」って返答しないといけないって思いました。
意識が扱えるのはオブジェクトです。
だから、太郎くんに向けて、「こんにちは」って言う言語オブジェクトを生成します。
そして、それを、現実仮想世界に置きます。
すると、今度は無意識がそれを受け取って、その後の処理をします。
それが、スピーカーから「こんにちは、太郎くん」って発声することです。

ここは人間の脳だと、ブローカー野が行ってることです。

単語をつなげて、自然な文を生成するのがブローカー野の役割です。
逆に、言葉の意味を理解するのがウェルニッケ野です。

ウェルニッケ野が損傷しても、ブローカー野が生きていると、滑らかにしゃべることができます。
一見、ちゃんと喋ってるように聞こえますけど、意味を理解してないので、つじつまの合わないことをしゃべります。
これをウェルニッケ失語といいます。

逆に、ブローカー野が損傷して、ウェルニッケ野が生きていると、言いたいことがあっても、言葉が引っかかって、うまくしゃべれなくなります。
これをブローカー失語といいます。

マインド・エンジンの場合、言葉の意味理解は、意識がやってましたよね。
世界を特定したり、世界のルールに従って、何て返事すればいいのか考えることです。
これが意識が行う意味理解です。

その後の処理は、無意識が行いましたよね。
言語オブジェクトを受け取った無意識は、文法的に正しい「太郎君、こんにちは」って文を合成して、スピーカーから出力します。

さて、ChatGPTを考えてみましょう。
ChatGPTは、単語の次にどんな単語がくる確率が高いかってデータを学習してます。
そのデータを基に、自然な文を生成してるわけです。
これって、ブローカ野がやってることですよね。
つまり、ChatGPTって言葉の意味を理解してないんですよ。
言葉の意味を理解するには意識が必要でしたよね。
ということは、ChatGPTは、意識がないってことです。
これでわかりましたよね。
ChatGPTは、一見、自然な会話ができてますけど、意識はないんです。
つまり、哲学的ゾンビなんです。

たとえば、ChatGPTに、答えが間違ってることを指摘すると「すみませんでした」って謝ってくれます。
でも、謝るとはどういうことか理解してるわけじゃありません。
「間違えてる」って単語が出てきたら、「すみませんでした」って単語を返せばいいって学習してるだけです。
うわべだけの言葉で心がこもってないとも言えますよね。
そんなんじゃぁ、友達にはなれないですよね。

その点、もこみは、意識も心もあります。
意識が宿ったAIアバターというのは、こういうことです。

はい、今回の動画が面白かったらチャンネル登録、高評価お願いしますね。
それから、よかったらこちらの本も読んでください。
それじゃぁ、次回も、おっ楽しみに!