AIの仕組みを読み解く技術論――かつてAIを作ろうとした筆者が、生成AIを考える
そろそろ、AIの技術的な面でも語るとするかぁ。
この記事は、生成AIの仕組みを、筆者自身の1980〜1990年代のAI開発体験と、ベクトル演算・GPU・ディープラーニングの技術史を重ねて整理したもので、「AIは、人になる-かつてのAI開発者が、挫折の果てに見た結論」の続編でもある。
はじめに――私はかつて、AIを作ろうとしていた
私は、いまの生成AIを単なる便利な道具としてだけ見ているわけではない。
むしろ、かつて自分が越えられなかった技術の壁を、数十年後の世界が別の方法で越えてしまったものとして見ている。
私は昔、AIを作ろうとしていた。
知識ベースを作り、推論エンジンを作り、条件に応じて機械が判断する仕組みを考えた。建築CADのような世界でも、メニューを選ばせるのではなく、条件を与えれば機械が形を考えるような仕組みを夢見ていた。
しかし、最後にどうしても越えられない壁があった。
それは、機械に「リンゴとは何か」を教える壁だった。
1. 「リンゴとは何か」という壁
人間は、リンゴを見れば一瞬でリンゴだとわかる。赤いリンゴでも、青リンゴでも、かじりかけでも、写真でも、絵でも、皿の上にあっても、木になっていても、多くの場合それをリンゴだと感じる。
ところが、これを機械に教えようとすると途端に難しくなる。
「赤くて丸くてヘタがあるものがリンゴである」と書くことはできる。
しかし、青リンゴはどうするのか。夕日に照らされて赤く見える白い物体はどうするのか。絵に描かれたリンゴは本物ではないが、リンゴとして扱うのか。リンゴ型の飾りはリンゴなのか。
つまり、リンゴを認識させるには、単に色や形の条件を書くだけでは足りない。そこには、光、角度、用途、文脈、経験、常識が絡んでいる。
私が当時ぶつかったのは、まさにこの問題だった。
機械に知識を与えるには、人間が知識を一つずつ書けばよい。そう思っていた。
しかし、世界の常識はあまりにも多い。リンゴ一つを教えるだけでも、世界中の知識を書き写すような作業になってしまう。
ここに、昔のAIの限界があった。
2. 昔のAIは「人間が知識を書く」方式だった
当時のAIは、基本的にはルールの集合だった。
もしAならB。
もしBならC。
ただしDの場合は例外。
この条件なら、この推論を行う。
このような形で、知識を人間が書き、機械はそれを使って判断する。エキスパートシステムと呼ばれたものも、その延長線上にあった。
これは、限定された世界では有効だった。たとえば、ある機械の故障診断、ある条件下の設計判断、ある業務の手順化には使える。
しかし、現実の世界は限定されていない。
光の当たり方が違う。言葉の意味が文脈で変わる。人間は省略する。例外がある。曖昧さがある。比喩がある。常識がある。
昔のAIは、この曖昧で広大な世界を、人間が書いたルールの中に閉じ込めようとしていた。
それは、あるところまでは進める。
しかし、最後に「世界そのものを書け」という無理難題にぶつかる。
私が越えられなかった壁は、そこである。

3. 現代AIは「人間が特徴を書く」のをやめた
現代のAIは、そこを違う方法で越えた。
人間が「リンゴとは赤くて丸くてヘタがある」と一つずつ書くのではない。
大量のリンゴ画像、大量のリンゴではない画像、大量の文章、大量の会話、大量の文脈を与える。
そして、AI自身に特徴を学ばせる。
低い層では、色や線や境界を見つける。
次の層では、丸い形や曲線を見つける。
さらに上の層では、ヘタ、くぼみ、光沢、果物らしさを組み合わせる。
そして最後に、「これはリンゴらしい」という内部表現にたどり着く。
ここで重要なのは、人間がすべての特徴を設計しているわけではないことだ。
大量のデータを通して、ニューラルネットワークの中に特徴のつながりが育っていく。
昔は、人間が知識を書いた。
今は、データの中から特徴が浮かび上がる。
この違いは大きい。

4. ディープラーニングとは、特徴が階段状に育つ仕組みである
ディープラーニングの「ディープ」とは、層が深いという意味である。
一つのニューロンは、小さな計算器にすぎない。入力を受け取り、それぞれに重みを掛け、足し合わせ、反応の強さを次へ渡す。
しかし、それが何層にも重なると、単純な数値がだんだん抽象的な意味へ変換されていく。
画像でいえば、最初はピクセルである。
それが、線や色になる。
線や色が、形になる。
形が、部品になる。
部品が、物体になる。
物体が、概念になる。
リンゴの場合なら、
ピクセル。
赤い領域。
丸い輪郭。
ヘタとくぼみ。
果物らしい立体感。
そして「リンゴ」という概念。
この階段を、AIは大量の学習によって作っていく。
私がかつてルールとして書こうとしたものは、現在のAIでは、ニューラルネットワーク内部の重みと結びつきとして形成されている。
人間にはその中身を完全には読めない。
しかし、その読めなさの中にこそ、現実世界の複雑さを吸収する余地がある。

5. 画像も言葉も、意味の座標に置かれる
もう一つ重要なのが、ベクトルである。
コンピューターにとって、画像も言葉も、そのままでは扱えない。
そこで、画像も文章も、いったん数値の並びに変換される。これがベクトルである。
リンゴという言葉も、リンゴの画像も、AIの内部では数値の並びになる。
そして、その数値の並びは、意味の空間の中の位置のように扱われる。
リンゴとミカンは近い。
リンゴとバナナも比較的近い。
リンゴと自動車は遠い。
この「近い」「遠い」を、AIはベクトルの距離や角度として扱う。
昔のAIでは、「リンゴとは何か」を定義しなければならなかった。
現在のAIでは、「この画像や言葉は、意味空間のどこに位置するか」を計算する。
認識とは、定義に当てはめることから、意味の空間の中で近い場所を探すことへ変わった。

6. 文章生成も、結局はベクトルと文脈の問題である
生成AIが文章を書く仕組みも、根本は同じである。
AIは、人間の言葉をそのまま読んでいるわけではない。
文章を細かい単位に分け、それを数値に変換し、文脈の中でどの言葉がどの言葉と関係しているかを計算する。
そして、次に来る言葉を選ぶ。
「明日の天気は」と来れば、「晴れ」「雨」「曇り」「わからない」などの候補が出る。
AIは、文脈に合う確率を計算し、最も自然な言葉を選び、それをつなげて文章にしていく。
このとき、ただ単語を並べているだけではない。
前後の文脈、質問の意図、過去の知識、文章の調子、相手が求めている答え方を総合している。
さらに現在のAIは、人間の評価によってチューニングされている。
良い答え、悪い答え、危険な答え、役に立つ答え、分かりにくい答え。こうした評価をもとに、より人間にとって自然で有用な受け答えへ調整されている。
つまり、現代AIは、単に大量の文章を覚えた機械ではない。
大量の文章から言葉の関係を学び、人間の評価によって振る舞いを整えられた機械である。

7. 私には、AIは「学習結果の雲」に見える
私には、現在のAIは、巨大な知識の雲のように見える。
その雲の中には、文章、画像、音声、コード、歴史、文化、科学、日常会話、人間の経験が、無数の結びつきとして沈んでいる。
質問を投げ込むと、その雲の一部に光が当たる。
すると、関連する知識や言葉が集まり、答えとして浮かび上がる。
もちろん、AIは人間のように意識を持って考えているわけではない。
しかし、外から見ると、あたかも膨大な経験の中から必要な言葉を取り出しているように見える。
私はそこに、かつて自分が作ろうとしていたものの延長を見る。
当時の私は、知識を一つずつ書こうとしていた。
現在のAIは、知識を一つずつ書くのではなく、膨大な学習結果の雲の中から、必要な関係を浮かび上がらせる。
ここが、決定的に違う。

8. もう一つの主役――ベクトル演算とGPU
ただし、現代AIはソフトウェアだけで生まれたわけではない。
ここで、私の現役時代のもう一つの記憶がつながってくる。1980年代から1990年代にかけて、コンピューターグラフィックの世界は急激に進歩した。
1990年代になると、私自身もCADシステムを設計してきたものとして、画像処理は仕事の範疇でもあったわけである。
3Dグラフィックとは、結局のところ、座標とベクトルと行列の世界である。
空間上の点を回転させる。拡大する。移動する。視点を変える。光を当てる。面の向きを計算する。物体の陰影をつける。
これらはすべて、ベクトル演算と行列演算によって行われる。
たとえば、二次元座標上の点を移動し、さらに回転させる場合、点の座標をベクトルとして持ち、それに移動や回転を表す行列を掛ける。点そのものを感覚的に動かしているのではなく、数値の列を行列で変換しているのである。
ここでいう行列式は、たとえば次のようなものだ。

この式は、単に数学の飾りではない。コンピューターの中で図形を動かすとは、まさにこのような計算を大量に繰り返すことだった。
初期の大型コンピューターや専用機では、こうした演算を高速に行うための工夫がハードウェア側に組み込まれていた。実際に演算回路がむき出しだったわけである。一方、パソコンレベルでは、座標変換や描画処理の多くをCPUとプログラムでこなしていた。
しかし、3Dグラフィックが複雑になるにつれ、CPUだけで処理するには限界が見えてくる。
画面上に表示される物体は、一つの点ではない。無数の頂点を持つ。面がある。光源がある。カメラの位置がある。物体が動けば、そのたびにすべての点を変換しなければならない。
つまり、3Dグラフィックでは、同じ種類の計算を、膨大な数の点や面に対して繰り返す必要があった。
そこで、こうした処理は専用のハードウェアに任せた方がよい、という流れになっていく。
もちろん、ゲーム機がその貢献をしたことは言うまでもない。
私が若いころ、1980年代から1990年代にかけて、SGI、つまりSilicon Graphicsのようなグラフィックワークステーションが登場し、3D表示、科学可視化、CAD、映像制作を大きく前に進めた。そこでは、座標変換、ポリゴン処理、陰影計算といった処理が、専用のグラフィックハードウェアによって高速に行われていた。
やがてOpenGLによって、3Dグラフィックの考え方が標準化されていく。
点を送る。行列で変換する。面を描く。光を計算する。テクスチャを貼る。
このような3Dの基本的な処理が、共通の枠組みとして扱われるようになった。そして1990年代後半になると、PCにも3Dアクセラレータ、のちにGPUと呼ばれるようになる装置が載るようになる。
最初、GPUは絵を描くための装置だった。
しかし、その「絵を描く」という仕事の中身をよく見ると、実体は大量のベクトル・行列演算であった。画面に物体を描くには、無数の点を変換し、面を計算し、光の当たり方を計算しなければならない。しかも、それを一秒間に何十回、何百回と繰り返す必要がある。
ここにGPUの本質がある。
GPUは、CPUのように一つ一つの複雑な処理を順番にこなすことよりも、似たような単純計算を大量に並列で処理することを得意とする。
これは、3Dグラフィックに非常に向いていた。
そして、のちに人類は気づくことになる。
この演算能力は、画像を描くだけでなく、ニューラルネットワークの学習にも使えるのではないか。
ところが、私は気づかなかった。2003年当時の文章を読むとAIの件に触れていない。私がリンゴの壁を越えられなかった理由がこれである。
ディープラーニングの中では、入力されたデータはベクトルとして扱われる。画像も、言葉も、音声も、最終的には数値の並びとして表現される。そして、その入力ベクトルに巨大な重み行列を掛ける。それを何層も繰り返すことで、単純な数値の集まりが、だんだん特徴や意味に近い表現へ変換されていく。
画像認識であれば、最初はピクセルの数値である。そこから線や色の変化が抽出され、次に形や輪郭が見つかり、さらに部品や構造がまとまり、最後に「リンゴらしさ」や「人の顔らしさ」といった概念に近づいていく。
文章生成でも同じである。
単語や文章は、まずベクトルに変換される。そのベクトルに重み行列を掛け、文脈に応じてどの言葉が重要かを計算し、次に来る言葉の候補を選んでいく。
つまり、ディープラーニングの正体もまた、巨大なベクトル・行列演算なのである。
学習時には、さらに膨大な計算が必要になる。
AIが答えを出す。正解や望ましい答えと比べる。誤差を計算する。その誤差を逆向きに伝え、どの重みをどのくらい直せばよいかを計算する。そして重みを少しずつ更新する。
この処理を、何百万回、何千万回、場合によってはそれ以上繰り返す。
ここで、グラフィックのために発展したGPUと、知能をデータから学ばせるディープラーニングが結びついた。

これは、私にとって非常に面白い接続である。
かつてAIの世界では、「知識をどう書くか」が問題だった。人間がルールを書き、条件を書き、例外を書き、推論の順番を考えた。
一方、グラフィックの世界では、「形をどう数値で動かすか」が問題だった。座標を変換し、ベクトルを計算し、行列で空間を動かしていた。
この二つは、当時は別々の流れに見えていた。
しかし現在から振り返ると、この二つの流れは生成AIの中で合流している。
知識や意味を、人間が一行ずつ書くのではない。膨大なデータをベクトルとして扱い、巨大な行列演算を通して、AI自身に特徴や関係性を学ばせる。
その計算を可能にしたのがGPUであり、その学習の仕組みを与えたのがディープラーニングである。
つまり現代AIとは、ソフトウェアだけの成果ではない。
ベクトル演算を高速に処理するハードウェアの進歩と、データから特徴を学ぶソフトウェアの進歩が、同じ場所で噛み合った結果なのである。
昔、私は知識を手で書こうとして壁にぶつかった。
今のAIは、その知識を手で書くのではなく、膨大なデータと計算の中から浮かび上がらせている。
その背後では、かつて3Dグラフィックを動かしていたベクトル演算の思想が、形を変えて生きている。
AIの発展とは、知能の歴史であると同時に、計算するハードウェアの歴史でもあるのだ。

9. ハードとソフトが極まって、現代AIが生まれた
私は、現代AIを次のように見ている。
一方に、ハードウェアの進歩があった。ベクトル計算機、3Dグラフィック、SGI、OpenGL、PC用GPU、CUDA、AI用GPU。大量の数値を一斉に計算する力が、年々大きくなった。
もう一方に、ソフトウェアの進歩があった。ルールベースAI、ニューラルネット、誤差逆伝播、ディープラーニング、Transformer、生成AI。人間が知識を書くのではなく、データから特徴や意味を学ばせる方法が成熟した。
この二つが合流して、現在のAIが生まれた。

GPUだけでは知能にならない。ディープラーニングだけでも、計算力が足りなければ大規模な学習はできない。
大量のデータ。大量の重み。大量のベクトル演算。大量の人間のフィードバック。
そのすべてがそろったとき、AIは、人間が一つずつ書けなかった常識や文脈を、統計的な結びつきとして扱えるようになった。
ここで、NVIDIAがなぜ現在のAI時代において大きな存在になったのかも見えてくる。
NVIDIAは、単に高性能なGPUを作っただけではない。GPUを、グラフィックを描くための部品から、汎用的な並列計算の装置へ変えていった。その中心にあったのがCUDAである。
CUDAとは、NVIDIAのGPUを使って一般的な計算を行うための仕組みである。もともとGPUは画像を描くための装置だったが、CUDAによって、研究者や開発者はGPUを科学計算、シミュレーション、画像処理、そして機械学習に使いやすくなった。
ここが大きかった。
ハードウェアだけなら、他社も作れる。
しかし、そのハードウェアを使いこなすための開発環境、ライブラリ、プログラム資産、研究者の経験、技術者の習慣が積み上がると、それは単なる製品ではなく、生態系になる。
AIの研究者がGPUで計算したいと思う。
深層学習のフレームワークがCUDAを前提に最適化される。
研究室や企業がNVIDIA GPUを導入する。
さらに多くのソフトウェアがCUDA対応になる。
すると、次にAIをやる人もNVIDIAを選ぶ。
この循環が、NVIDIAの強さになった。
言い換えれば、NVIDIAは「GPUというハード」を売っただけではなく、「GPUで計算する文化」と「GPUでAIを学習させる標準的な道具立て」を握ったのである。
現代AIの中では、画像も文章も音声も、巨大なベクトルとして扱われる。そして、そのベクトルに重み行列を掛け、何層にもわたって変換していく。これは、まさにGPUが得意とする大量並列計算である。
したがって、NVIDIAがAI時代に天下を取った理由は、単に半導体の性能が高かったからだけではない。
大量のベクトル・行列演算を高速に行うGPUを持ち、さらにそれを使うためのCUDAというソフトウェア基盤を早くから整えたからである。
昔は、「知識をどう書くか」の時代だった。
今は、「知識が浮かび上がるだけのデータ量と計算量をどう与えるか」の時代になった。
その計算量を支えるハードがGPUであり、そのGPUをAIの道具として使えるようにした土台がCUDAだった。
だから現在のAIは、ディープラーニングというソフトウェアの勝利であると同時に、GPUとCUDAという計算基盤の勝利でもある。

ここに、ハードとソフトが極まって現代AIが生まれた、という歴史の面白さがある。
終わりに――AIは、かつて見た夢の続きである
現代AIは、魔法ではない。
中身は、ベクトルであり、行列であり、重みであり、確率であり、学習である。
しかし、それらが極限まで積み上がると、人間から見れば、まるで言葉を理解し、画像を見分け、考えを組み立てているように見える。
私にとってAIとは、単なる流行ではない。
それは、かつて自分が作ろうとしたものの続きである。
昔は、知識を人間が一行ずつ書こうとした。
今は、膨大な学習結果の雲の中から、意味が浮かび上がる。
その変化を目の当たりにして、私は改めて思う。
AIの本質は、人間の知能をそのまま真似ることではない。
人間が扱いきれない膨大な関係を、数値の世界に沈め、必要なときに浮かび上がらせることなのだ。
そして、それを可能にしたのは、ハードウェアのベクトル演算能力と、ソフトウェアのディープラーニングが、ともに極まったからである。

さて、ここまで読み進めた賢明な読者は、こう思ったことだろう。
並列処理が鍵なら、次は量子コンピューターではないのか、と。
量子コンピューターは、重ね合わせや干渉を利用して、特定の計算を一気に探索できる可能性を持つ。
どうやら現在の巨人NVIDIAも、永遠に安泰というわけではなさそうである。
ただし、量子コンピューターが向かう先は、人間の思考をまねることではないのかもしれない。
人間の思考が量子的でないとすれば、量子コンピューターは人間の脳の代用品にはならない。
むしろそれは、人間の思考が届きにくい「可能性の空間」を計算する機械になるのだろう。
AIは、人間が残した言葉、画像、知識、文化の中から意味を浮かび上がらせる。
量子コンピューターは、そのさらに奥にある、自然界の重なり合う可能性を扱う。

そう考えると、未来の計算機は、人間の知能をまねる方向だけには進まない。
人間の思考を補い、人間の直感を越え、人間には見えない可能性の地形を開く方向へ進むのかもしれない。
次回掲載記事は未来技術、現状のAIに量子論が加わるのでお楽しみに。
#AI #人工知能 #AIの仕組み #AI技術論 #ディープラーニング #ニューラルネットワーク #Transformer #GPU #ベクトル演算 #AIで遊ぼう #機械学習
