ChatGPT が突きつける「理解」とは何か

続いてChatGPTの話題。

GPT-3の登場あたりから、人間とコンピュータの対話(タイピングを通したチャット)が違和感のない文を通してできるようになったことで、この対話を通して、コンピューターは本当に分かって話しているのかどうかが議論になっている。

たとえば、フィボナッチ数列について、フィボナッチ数列とは言わずに 1, 1, 2, 3, 5, 8 の次の数字は何と聞くと、13と答える。GPT-4だと、これはフィボナッチ数列で隣り合った5+8 =13で13です、ということまで教えてくれる。ここで、昨年のSymbolic-Neural Learning Workshopで Ed Hovy先生の講演で取り上げられた通り,本当に分かって答えているのか、ネット上のいたるところにフィボナッチ数列の説明があるので、それを持ってきて生成しているだけではないのか、という疑問が湧く。

毎年、人工知能の講義の最初で、チューリングテスト中国語の部屋の話をしてきた。これまでは、単なる人工知能の常識としてこの2つの対比を取り上げてきたわけですが、ChatGPTの登場で、この問題が改めて「理解とは何か」についてのかなり深い問題提起になっている。

チューリングテストは、情報科学分野のノーベル賞といわれる賞であるチューリング賞 Alan Turingが考えたテスト。Alan Turingは、マンチェスター大学教授でチューリングマシンなど情報科学会に多大な功績を残した。余談になるが、残念ながらこれまで日本人は一人もチューリング賞を受賞していない。五十嵐滋筑波大学名誉教授はプログラム理論の研究でチューリング賞に近かった日本人のひとりであるが、これまで日本人の受賞者はいない。チューリングテストは、人間の判定者が、コンピュータまたは人間とチャットで会話して、相手が人間かコンピュータかわからなければ、そのコンピュータは知能を持っていると判断してよい、とするテスト方式である。チューリングテストは、知能とは何かを定義することが困難であることから、インタラクションを通して知的に見えればそれは知能を持っていると判断して良いという考え方だ。

これに対し、中国語の部屋は、UC バークレイ大学の哲学者 John Searleが、チューリングテストを批判するために考えた思考実験である。ある部屋の中に、英語しかわからない人間が居て、その部屋には膨大な量の本があり、その本には中国語の文字列を別の中国語の文字列に変換するルールが書かれている。部屋の中の人間は、非常に賢く、また中国語の文字は理解していないが、図形としてどの文字と文字が同じかのマッチングを大量の本に対して一瞬でできる。ありえない設定ではあるが、哲学で用いられる思考実験ですので、これをベースに考えを進める。さて、この部屋に外から中国語の文を入れると、中の人はこれをルールブックに従って超高速に処理し、漢字列を作って部屋の外に返すとする。ルールブックが良く出来ていて、部屋にいれた文に対する回答になっているとする(ここも思考実験の前提)。John Searle の問題提起は、この設定で中の人は中国語を理解していると言っていいのか、ということ。部屋の外からは中国語で対話できているように見えるが、実際に中の人はなにもわかってないではないか、という批判。

ここまでは、これまでも人工知能業界の中では考えられたことだし、哲学者ではなく工学者の立場から考えると、人を含めた部屋全体がシステムとして、それなりの答えを返しているのであれば、部屋がシステムとして知的であると考えて良いというのが模範解答になる。しかし、 ChatGPT の登場により、コンピュータが理解して会話しているのかということを議論しはじめると、John Searle の問いかけが重く圧しかかってくる。GTP-4になってから、会話の内容に極端なウソはなくなってきているし、人間でもときどき間違ったことを勘違いで言ってしまうことがある。前回の書いたように、プロムプトをうまく書くと、いろいろなシチュエーションを変えながら英会話をしてくれる。1970頃に開発されたElizaやScholarに始まる過去の作りこんだ対話システムでは、想定した範囲でしか会話が成立しなかったが、ChatGPT では明らかに人間と同じような柔軟性をもって会話してくれる。一見すると、ChatGPTは「分かって」会話しているように見える。しかしながら、本当に分かっているのか、分かっているとは何なのか、を突き詰めると答えが分からなくなる。チューリングテストに習えば、分かっていると見えれば分かっていると考えればいい、ということになるが、システム的に分かっていると言って良いかは工学的に気になる。John Searle 的に言えば、システム的にどこに分かっている部分があるかを明らかにしないと「分かっている」といってよい気がしない。

現状を分析すると、たぶん、GhatGPTは、分かって答えているものと分かって答えてないものが混ざっているという状態のように思う。ここで分かっていない、と思うのは、回答が明らかに整合しない場合があるから。特に、簡単な思考の連鎖でカバーできていないものは、回答がおかしくなる。分かっていると思うのは、簡単な連立方程式について教えてくれ、というとどの方程式の例題を与えても解き方をステップバイステップで教えてくれる。これでも分かっている、とは言えないと考える人も多いとは思いますが。分かってないと思うのは、ときどき、学習データにあった他の例題に引きずられたのか、与えたのと異なる連立方程式の解き方を説明することもあります。

基本的に、ChatGPT は言語モデルですので、中で知識ベースを持っているのではなく、次の文を生成するための隠れ状態に、過去の対話履歴や学習した言語情報を数値ベクトルに変換して保存しているだけですので、複雑な論理構造は持ってないと思われます。ここに埋め込める程度の論理性や繋がりの範囲では理解しているといってもいいのかもしれませんが、人間が思うような知識的な理解はできていないように思います。とはいえ、鳥と飛行機の関係のように、人間と同じように理解しなくても、近い将来には知識の埋め込みも対話生成のベースに入ることが想定でき、そのときにはどのような理解に基づいて会話しているのかまで追跡できるようになるかもしれません。あくまで個人的な想定ですが。