読書の記録

評論・小説・ビジネス書・教養・コミックなどなんでも。書評、感想、分析、ただの思い出話など。ネタバレありもネタバレなしも。

ChatGPTの頭の中

2023年08月14日 | テクノロジー
ChatGPTの頭の中
 
スティーヴン・ウルフラム 訳:高橋聡 監訳:稲葉通将
早川書房
 
 
 薄い新書でとっつきやすいかと思ったらおそろしく難解であった。こちとらなんとかG検定を合格した身だが、ここに書いてあることの4分の1も理解できていない。そもそも理解するのに大苦戦したG検定の参考書に書いてあった用語や概念が、こちらでは知っていて当然のごとく情け容赦なく怒涛のように押し寄せる。
 
 著者のスティーヴン・ウルフラムは理論物理学者である。世界的なステイタスのある人で、あの数学ソフトウェア「Mathematica」を開発した人でもある。「Mathematica」とは数学の複雑な演算や統計的なシミュレーションを行えるかなり本格的な数理計算ソフトウェアのことで、理系の研究室なんかではポピュラーな存在だ。
 
 しかし、世界的数学者が見えている世界というのは、凡人の解像度を大いに超えているものであって、本書の記述を読みながら彼がまなざしの向こうに何が見えているのかを想像するのは非常に難しい。ChatGPTの頭の中の前にスティーヴン・ウルフラムの頭の中を知る必要がありそうだ。
 
 こういう翻訳書でわけがわからないとなると、その八つ当たりが訳者にむけられることがある。しかし本書では、この方面に実績がある訳者が起用されたようだし、しかもご丁寧に監訳者も別に用意されている。わざわざ監訳がついているくらいだから本書はわかる人はわかる内容になっているのであろう。ちなみに2023年8月11日時点でAmazonのレビューを見てみると、16件のレビューがついており星は平均で4つと表記されていた。そこそこ高い印象を受ける。
 
 Amazonでは星の平均点だけでなく、星のつき方の内訳も提示されている。本書は以下のごとくであった。
 
 星5つ・・62%
 星4つ・・・8%
 星3つ・・・8%
 星2つ・・13%
 星1つ・・・8%
 
 星5つが最多である。この難読本を読破して高い評価を付けた人は少なからずいるのだが、しかし難しすぎたのか低スコアのほうにも星2つを中心に山がある。みんながみんな高い評価をしたわけではないようだ。
 
 こんな風に評価のばらつきが単純ではなさそうなとき、算出したくなるのが統計学で言うところの「分散」である。「分散」というのはデータがどのくらいばらついているのかを示すスコアだ。昔取った杵柄で計算してみる
 
 平均が4.0なので、分散値を出すには
 
 (5-4)²*0.62+(4-4)²*0.08+(3-4)²*0.08+(2-4)²*0.13+(1-4)²*0.08
 
 という計算をする。この計算式を解くと答えは1.94になる。ついでに分散の平方根である「標準偏差」というスコアも出しておこう。そうすると
 
 平均 4.0
 分散 1.94
 標準偏差 約1.39
 
 というのが、本書におけるAmazon評価の分布ということになる。
 標準偏差1.39というのは、雑に言うと各々がつけた評価点の平均点からの距離が平均1.39という意味だ。5段階評価という尺度でのそれだから、ばらつきは大きいとみていいだろう。
 
 以上の計算は面倒な手計算をしなくても、Excel統計などの統計ソフトウェアに数字をぶちこめばあっという間に出てくる。そういう意味ではこの手のものはコンピュータのお手の物の世界のはずだが、本書「ChatGPTの頭の中」で指摘しているように、実はChatGPTは数字の計算が大の苦手であることが知られている。
 
 そこでChatGPT3.5にどんなものか計算をしてもらおう。以下をプロンプトで問うてみた。
 
——————

とある書籍の星取り評価をみたら、以下のようになっていました。
 
 星5つ・・62%
 星4つ・・・8%
 星3つ・・・8%
 星2つ・・13%
 星1つ・・・8%
 
この書籍の、評価の平均点と分散と標準偏差を出してください。

——————
 
 この問いに対するChatGPTの回答が以下である。雰囲気だけでもつかんでほしい。
 
——————

まず、各評価の星数を数値に置き換えます。
 
星5つ → 5
星4つ → 4
星3つ → 3
星2つ → 2
星1つ → 1
 
次に、与えられたデータをもとに平均、分散、および標準偏差を計算します。
 
平均 (μ) = Σ(評価 * 頻度) / 総評価数
分散 (σ²) = Σ( (評価 - 平均)² * 頻度 ) / 総評価数
標準偏差 (σ) = √分散
 
計算を行います。
 
平均 (μ) = (5 * 62 + 4 * 8 + 3 * 8 + 2 * 13 + 1 * 8) / 100 = 3.69
分散 (σ²) = ( (5 - 3.69)² * 62 + (4 - 3.69)² * 8 + (3 - 3.69)² * 8 + (2 - 3.69)² * 13 + (1 - 3.69)² * 8 ) / 100 ≈ 1.87
標準偏差 (σ) = √1.87 ≈ 1.37
 
したがって、この書籍の評価の平均点は約 3.69、分散は約 1.87、標準偏差は約 1.37 となります。

——————
 
 想像していたよりも、ちゃんと計算過程が文章で表示されて出てきたので一瞬ビビる。μとかΣとか使ってくるあたり迫力充分だ。本当はChatGPTは計算できるんじゃないの? と信じたくなる。
 が、よくみると計算結果が先に挙げたものと違うではないか。相手はAIだ。自分のほうが計算間違いをしたのではと再び怯むがここは落ち着こう。何度みてもChatGPTは計算を間違えている。
 
 平均 (μ) = (5 * 62 + 4 * 8 + 3 * 8 + 2 * 13 + 1 * 8) / 100 = 3.69
 
 μ(ミュー)なんて統計用語を出すのでそれっぽいし計算式そのものは正しいのだが、これ肝心の計算結果がやはりおかしい。だって平均は4.0だってAmazonが言っているではないか。
 ねんのためにGoogleの検索窓に上記式をコピペしたら、ちゃんと4.0が出た
 
 その先を見ていこう。分散を計算している箇所も計算式そのものはあっているが計算間違いをしている(前の行で出した平均μ=3.69をちゃんと代入しているところなどすげえと思ったが)。ChatGPTが出したこの分散(σ²)の複雑な計算式をGoogleにぶち込んでみたら答えは約2.06となった
 
 ちなみに最後に標準偏差としてChatGPTが示した「1.87の平方根が約1.37」というのは正解である。なぜこれだけ計算が正解できたのかは興味深いが、もともと代入すべき分散の値が間違っていたのだからこれでは意味がない。

 ここで確認しておきたいことは、ChatGPTは計算ができないことではなくて、計算ができていないのにあたかも計算できたかのようにそれっぽいなめらかな文章を回答してくる、という現象である。そういうアウトプットを出してくるChatGPTはどういう頭の中をしているのか、というのをこれから考えてみる。

 
 まず、ChatGPTはなぜあんなに上手になめらかな文章で回答してくれるのか。本書「ChatGPTの頭の中」は、ChatGPTが「文章生成モデル」としてどのような仕組みをとっているかを解説している。
 
 その仕組みのココロは「これまでに入力された単語から判断して次は何の単語を出すのがもっとも適切かを決めていく」というシロモノである。
 
 その判断力を鍛えるためにChatGPTは膨大な学習データを事前に読み込んでいる。その学習データとはWEBの大海を埋め尽くす莫大な文書である。それらを読み込むことで、例えば「小さい」と「子犬」がでてくればどうやらかなりの確率で「かわいい」が出てくるらしいというような言葉同士の関係値を、星の数ほどもある膨大なテキストデータから学んで類推できるようにしておくのだ。
 そのような気が遠くなるほどの数の言葉同士のつながりの強弱を計算し、そこに文法や構文のお約束ごとを学習させればChatGPTはなめらかな文章を生成できてしまう。

 しかも、このミラクルのような文章生成を実現させたことは、逆説として「文章を書くという行為は実はたいしたことないのだ」ということを暴き出したと著者ウルフラムは言う。難解な本書において僕が数少なく理解できて、しかも大いに膝をうったところだ。
 
 小論文の執筆のように、人間にはできてもコンピュータにはできないと考えられてきた処理が、実は計算処理の点から考えると、ある意味では思ったより容易だということだ。言い換えるなら、ニューラルネットがうまく小論文を書けるのは、小論文の執筆というのが、これまで考えられていたより「計算処理的に浅い」問題だったからなのである。(P,71)
 
 人間の言語は(そして、それを支えている思考のパターンは)、どうやら私たちが考えていたよりも単純であり、その構造はもっと「規則的」らしいということだ。そのことを暗黙のうちに明らかにしたのがChatGPTである。(P.128)
 
 つまり「なめらかな文章を書く」というのは、とっても文系的とでも言うか、直感やセンスが要求される所作のように思われるが、実は計算式に還元できるようなアルゴリズム(それも計算処理的に浅いw)だったというのだ。衝撃的である。さすが天才は言うことが違う。ディープラーニングの世界はまたひとつパンドラの箱を開けてしまった。かつてAIで東大入試に合格させる東大ロボプロジェクトというのがあってこれが挫折したのは国語の問題が解けそうにもなかったということだったが、最後の砦であった国語能力までAIに乗っ取られそうな勢いである。
 
 だけれど、そこまで周到に単語ネットワークを張り巡らせているのに、文章の中に数学的な論理を必要とする要素を求められるとChatGPTはしゃあしゃあと嘘をつく。それはなぜなのか。
 これは数字だけではない。固有名詞や固有の出来事を説明させようとするとしばしばChatGPTは適当なことをでっちあげる
 
 おそらく、数字をちゃんと計算できないことと現実に存在する特定の小説や人物を説明できないことは同じ原因だ。ChatGPTは固有性が高いものを扱う能力を持っていないのである。固有性が高いというのは、それそのものを表す正解はこの世の中にひとつしかない、というものだ。数字の計算も、特定の小説を語るのも、固有性の高い事象を扱っていることになる。(数字の計算というのは、正解がひとつであとはすべて間違いという極めて固有性が極めて高いものである)

 ChatGPTがなめらかな文章を生成することはできるのに、固有性が高い事象を書き出すことがてきないというのは、どうやら上手に文章を作り出す能力と、数字を計算したり小説の中身を特定させるような能力はトレードオフの関係にあるらしいということだ。それがなぜなのかは本書を読んでも僕の頭では理解できなかった。文章を構成する一部としての数字と、演算の対象として書かれている数字を見分けることが技術的に難しいということなのだろうか。それとも、なめらかな文章をつくろうとすればするほど固有性を排除する方向で演算が進むということなのだろうか。
 
 一方で、「人間ならばどういう文章が書けるか」もまたここから浮かびあがってくる。
 たとえ無骨で読みにくい文章でも、そのほんの一部分から読み手に思考の契機を提供したり、なにがしかの思考実験を促せるものならば、それは「人を動かすことができる文章」だ。そういうぐっとくる文章は、平易と平凡の枠外にあるからこそ読み手の心にひっかかる。我々はChatGPTにはできない文章を書けるようにならなくてはいけないのかもしれない。数字計算を織り交ぜた、文理ハイブリッドの文章はその候補に充分なりうる。今回の投稿はなんと「ChatGPTの頭では書けない文章」だったのである。
 本書「ChatGPTの頭の中」の大半は専門的すぎて理解できなかったが、ここまで「自分の頭の中」に思考の契機を与えてくれたのだから本書は買いであった。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 1973年に生まれて 団塊ジュ... | トップ | 続 窓ぎわのトットちゃん ... »