2023.12.18

『ChatGPTの頭の中』 スティーヴン・ウォルフラム(早川新書)

    知らずに本屋で見つけて買ってしまったのであるが、これは英文としては著者のブログそのものなので、誰でも読むことができる。きちんとした和訳が本になった、というものである。勿論機械翻訳で充分ということであれば、本を買う必要もない。本だと図が小さくて見ずらいので、図だけでもネットで見た方がよいかもしれない。

    最初の方はニューラルネットの一般的な解説であるが、単純化した例を使っていて、判りやすい。教師あり学習において、何が起きているのかは出来上がったネットワークの各層を調べてみると想像が付くという話。与えられた画像などのデータを分類する訳なので、目的として与えられた分類を特徴づける要素を段階を追って抽出しているように見える。ただ、それらの要素を個別的にうまく要約することは難しい。つまり要素をニューラルネット以外の方法で組み合わせて学習されたニューラルネットの機能を再現することが難しい。ここでは有名なデカルトの方法論(要素に分解して再度組み上げる方法)が使えないのである。著者はこの事情を「計算に還元できない」と表現している。

    ニューラルネットは、学習において、与えられた多数の訓練データを再現するように、ニューロン素子間の結合定数(重み)を最適化するのであるが、これは一般的には非線形最適化問題として馴染み深いものである。通例、最適化すべきパラメータの数は多すぎない方が上手くいくのだが、ニューラルネットの場合には多い方が良い。関数形が解析的に単純な形をしていないので、今までの方法が使えなくて、訓練データの「教師解」に近づくように少しづつ重みを変えていくしかないという事情があって、最適化に至る経路が多次元的に増える方が楽な為であるという。そして、最適解は一つではない。どの解が良いのかは原理的には判らない。少しだけ異なる入力データに対して「奇妙な答え」を与える(過学習)かどうかを人間の側で判断(これはベイズ推論における事前(主観)確率に相当する)して、それなりに対策を取るしかない。その対策として確実なのは訓練データの数を増やすことであるが、勿論人間が経験的にネットワークの構造を工夫することも出来るし、それが AI の開発ということの意味である。そして、この訓練データに含まれていない入力に対する応答が「生成」と呼ばれている。

    要するに、ニューラルネットは膨大な訓練データを利用して、それを再現するように膨大なパラメータを最適化していて、その上で訓練データ以外の入力に対して応答するのである。従って、人間が文明史の中で見出してきた論理的規則に従って計算することは苦手である。ChatGPT が単純な計算をしばしば間違えるのは、そもそも計算を単なる習慣的な物真似で代替しているからである。逆に論理的規則そのものを言葉として表出することは得意としているのだが、それすら、論理として理解している(実行できる)からではない。皮肉な言い方をすれば、現在の ChatGPT は政治家や哲学者に似ている。パターン認識や小論文の執筆や作品の創出という人間にしかできないと思われてきたことは、意外にも計算の観点から言えば浅い問題だったのかもしれない。

    p67-71 の一節<ネットワークが大きくなれば何でもできる>のか、はちょっと混乱する。ニューラルネットがやっていることは「計算的還元不可能」である。この意味は、そこで計算機がやっていることをそのまま計算することなく、別のより単純な計算手続きに置き換えることができない、という意味である。自然界や社会を眺め渡せば計算的還元不可能な問題に満ちている。それを計算に還元することが文明の発展史であり、人間にしかできないのだが、計算機もまたその道具として活用されてきた。つまり、計算機には二つの使い方がある。1)計算的還元不可能なプロセスを模擬することと、2)計算的還元可能なプロセスを実行すること(従来の意味での計算)である。いずれの場合も人間がプログラムを書かなくてはならない。書くことは AI にもできるのだが、それは人間が作ったプログラムを真似することでしかない。著者は 1)の代表である ChatGPT に 2)の代表である WolframAlpha という数式処理プログラムを組み込むことを提案している。

    後半(p.72以降)でやっと ChatGPT の説明に入る。

    最初の<埋め込みの概念>は重要と思われる。ニューラルネットでは数値を扱うので、文字や単語にも数値を割り当てれば良いのだが、このままでは、例えば画像における画素の数値に比べて扱いにくい。画素の数値はお互いに近ければ似ているので、近さの基準(距離)を容易に計算できるが、文字や単語に割り当てた任意の数値からは「距離」の概念が得られない。そこで、任意に割り当てた数値ではなくて、単語同士の近さを計算しやすいような数値の組(ベクトル)を割り当てる。そのベクトル空間における距離が近さを反映するように、である。このベクトル空間への単語の配置を「埋め込み」と呼ぶ。これはテキストデータマイニングで行われるような単語同士が同じ文章内で現れれば近いという基準ではなくて、文脈の中で単語同士を置き換えても不自然でないという意味での近さという基準である。alligator と crocodile がその例である。これらが文章中で「隣り合って」現れることが多いわけではなくて、同じ文脈で「置き換えて」使われることが多いという意味で近いのである。例えば、前置詞同士はお互いに近い位置に配置されるし、名詞同士もそうである。

    埋め込みという操作は具体的にはニューラルネットによる認識学習によって行われる。画像の例として、手書きの 0 から 9 の数字を認識する場合、学習後における個別の画像を入力したときの、最終層の10個のニューロンの内で一番大きな値を取るニューロンが認識される数字に対応するという意味で、このニューロン層の状態(ベクトル値)を埋め込みベクトルとして使えば良い。というのは、この最終層において近いベクトルであるということは、それが同じ数字として認識される(置き換えて使われる)ということだからである。この場合、ベクトルの次元は 10 であるが、画像の分類(アンカー)数を増やせば、それだけ次元が増える。

(注)ここで VAE 等の生成モデルとの対応を考えてみる。生成モデルでは、この埋め込みベクトル空間において、実際に遭遇する手書き文字の訓練データ集合が対応する位置の集合体の大部分が元の空間の一部を為すような、より低次元の写像空間(潜在変数空間)で近似できる、ということになる。この潜在変数空間を使えば、例えば「3 と 9 の中間的な手書き文字」を「生成」することができる。

    単語(英語では接頭辞等に分割してトークンという単位で扱うので、以下「トークン」が使われる)の場合、「埋め込み」に必要な認識学習は、文章から隠された一つのトークンを当てるという予測学習(教師あり学習)である。膨大な量の文章例を使って、この予測学習を行うことが出来る。トークンの数がその次元であり、英語だと50,000次元程度になるが、「埋め込み」ベクトルはその一つ前の隠れ層なので、設計者が次元を設定できる。(説明していないので判らないのだが、これは隠されたトークンの前後が何であるかに依存する筈なので、その条件についての統計処理が必要だろうと思う。)更に、この埋め込み処理はトークンのレベルだけでなく、トークンの連鎖や文章についても行われている。

    次が<ChatGPT の内部>という節で、トランスフォーマーというアーキテクチャー(ニューラルネットの構成)が説明されている。これは画像認識で使われる「畳み込み」Convolutional Neural Network (CNN)と同じ発想である。画像の場合、認識すべき分類項目の観点から見れば、それが画像のどの位置にあるかどうかが重要ではないから、つまり猫はどこに居ても猫でなくてはならないから、最初のニューラルネット層から次のニューラルネット層への結合定数がニューロン間の相対位置関係に依存するような制限を加えている。フーリエ解析を想像すればよい。大げさに言えば、世界が背景とその中で動く独立な物体で構成されている筈だ、という事前確率分布(主観)を取り入れることで、計算を単純化していることになる。我々が認識するのは背景ではなくて動く独立物体なのである。(部品の集まりとして世界を認識する、という意味でデカルトの世界観を認めていることになる。)文章の場合はもう少し複雑で、注目すべきトークン列の相対位置関係を利用する為に「注意機構」を使う。その仕組みとして追加して組み込まれたモジュールがトランスフォーマーである。

    正規の処理系列(ニューラルネット層の連鎖)とは分岐してトランスフォーマーという処理系列(ニューラルネット層の連鎖)があって、トランスフォーマーによって正規の処理系列の離れた位置同士が繋がれている。正規の処理系列はトークンの並びを「埋め込みベクトル」の並びに変換することで、次に来るトークンを予測しようとするのだが、トランスフォーマーはトークンの文章中での「位置」(整数)を取得して、そこから次の「埋め込みベクトル」を生成する。これら二つの「埋め込みベクトル」が加算されて、次に来るトークンの予測が修正されることになる。それでは、このトランスフォーマーはどうやって自分独自の「埋め込みベクトル」を見出すのだろうか?実は、そこには人為的な介入はなくて、その結合定数は全て訓練データから学習されるのである。CNNの場合と同様に、人間が設計するのは具体的な手続きではなくて、何個のニューロンをどう繋ぐか、というアーキテクチャーだけである。トランスフォーマーがやっていることは、文章中での離れた位置を振り返ることで、人間の言語の構造的特徴を反映させている、という事なのだが、それを「文法」という明示的な法則で人間が理解することはできない。

    ここで、著者による ChatGPT の従来の計算処理との違いが強調される。従来の計算処理はデータと処理プログラムが区別されていて、計算プログラムはデータに対して処理を繰り返しているのが普通であるが、ChatGPT ではデータが処理プログラム(ニューラルネットワーク)を一度しか通過しない。ただし、生成された新しいトークンも含めて、全てのトークンが処理の度に読み込まれるのだから、「一番外側に」フィードバックループを備えてある、とも言える。

    ChatGPT で使われている重み(パラメータ)は1750億個もある。訓練にはほぼ同じ位のデータが必要である。パラメータ数 n に対して、訓練のコストは n^2 で増加する。この点が人間の脳に比べて劣る処である。人間の脳は記憶のシステムを活用しているので、学習が効率的であると考えられている。

    ChatGPT はトークンの系列を入力として次のトークンを予測して出力していくシステムであるが、全ては確率に従う。基本的な訓練で学習したままだと、人間の評価にそぐわない答えを出す場合が多いので、個別に人間が矯正しなくてはならない。しかし、今では、この人間の評価を予測する AI が開発されており、AI が ChatGPT を矯正している。但し、計算手続き上深い計算結果(例えば複雑な足し算や掛け算)についての間違いは矯正できない。それらは確率的な予測ではなくて、確定的論理的なアルゴリズムに従っているからである。その点を補うためには別途参照するような計算プログラムを付加する必要があり、その候補として Wolfram Alpha がある。

    <実際に ChatGPT を動かしているもの>の節での、(、)、終わり の3つのトークンだけからなる「言語」は面白い。統語規則として、( と ) は必ず対応していなくてはならないから、トークンの数を増やしていくと、ChatGPT では学習の限界に達する。「物真似」ではなくて、一つ一つの括弧の対応を調べていけば良いのだが、そのようなアルゴリズムにはなっていないからである。ただ、トランスフォーマーという機構によって、ある程度の統語構造を学習(物真似)してしまうことは出来る。それ以上になると、人間が紙と鉛筆でやっているように、何らかの外部記憶を利用して「計算」する必要がある。

    <意味空間と「意味論上の運動の法則」>では、ChatGPT の紡ぎだす文章が「意味」を持つのは何故か?という問題を考えている。(構文文法上正しいというだけでは、意味のある文章にはならない。)埋め込みベクトル空間で表現されたトークンはお互いに意味や用法が近いトークン同士が近く配置されているから、トークン系列から次のトークンを予測するときに、意味的な飛躍は避けられるということが考えられるだろうが、実際に ChatGPT が生成するトークン列を埋め込みベクトル空間上で調べても明確な法則性は見つからない。

    <意味文法と計算言語の力>の節以降。文章が意味あるものとなる為の文法(意味文法)の背後には、人間が持つ「世界モデル」(世界はこのようなものだという事前確率(主観))がある。ChatGPT はそれもある程度学習できているのだが、他方、人類は意味文法については定義の明確な記号を使った形式論理的な体系を築き上げてきた。それが「計算」である。その計算を日常言語で指令して行う為の体系が Wolfram Alpha なので、ChatGPT との相性が良い。

    ということで、結局は Wolfram Alpha の宣伝が狙いだったのかもしれない。。。

    (注)簡単に要約すると、以下のようになるのではないだろうか?

    人間の情報処理能力を2種類に分類すると、「パターン認識と生成」、「論理的思考」がある。これらはいずれも人間の脳の複雑さに依存していると考えられてきたが、「論理的思考」については脳の外部に大きく依存する。それは描画や文字による外部記憶システムの活用である。勿論それらは人間が国家レベルの大きな組織体を築いてきたこと(文明化)の副産物である。他方計算機の情報処理能力については、「論理的思考」が得意であって、「パターン認識と生成」は不得手であると考えられてきたのであるが、最近の AI 技術によって、後者の能力も高いことが証明されている。しかし、情報処理能力をもう一つの側面から区分けして考える必要がある。それは「学習能力」と「処理能力」である。上記の認識は実は「処理能力」に限定したものであった。「学習能力」の観点から言えば、計算機はこれまで殆ど無いものと思われてきた。処理過程のアルゴリズムは人間が与えてきたからである。しかし、これも最近の AI 技術によって、「パターン認識と生成」の「学習能力」が著しく向上したのである。その「処理能力」は「学習能力」の帰結にすぎない。他方「論理的思考」の「学習能力」はほぼゼロに近いので、依然として人間のプログラムに依存しているのである。

  <目次へ>       <一つ前へ>     <次へ>