コンピュータ進化論から考える生成AIの価値【代表コラム】

エッセイ 代表コラム コラム 新着情報
コンピュータ進化論から考える生成AIの価値【代表コラム】

代表コラムです。なんとなく生成AIがこれまでのコンピュータの役割とあまりにも違いすぎるように意識が向きすぎている気もするので整理してみました。

=====

情報社会学的観点から今の生成AIがどのように理解されるべきか書いておきたい。
情報を取り扱う分野も様々だと思うが、趣味や娯楽の世界を除いたいわゆる業務やビジネス、政治のような実利を求めた情報的行為においては、認知資源を節約したいというのが情報学的な立場での基本原理だ。つまり、なるべく楽に情報処理をしたい。ということである。
そういう点でコンピュータの歴史というのはシンボリックな情報をなるべく高速に正しく処理するための技術開発の歴史である。その当たり前だが生成AIもその延長線上にあり、その歴史の流れに沿って理解していくことで一つの補助線が引けると思う。

今日のコンピュータの源流は一般的に第二次大戦中の弾道計算を目的としたENIACとされる。そこから様々な汎用計算可能なコンピュータが生まれてきた。しかしそれらの「汎用計算」の示す範疇は数学的に基礎づけられた四則演算や解析学、数値計算の理論をもとにしたような分野が中心であり、その背景に数学的正しさを持たせたうえで、人間には不可能な正確さと速さでの計算・演算を行う機械であった。
パーソナルコンピュータが普及するまでは、コンピュータは極めて高価なインフラであり、人間の時間よりもコンピュータの時間のほうが貴重だった。80年代ぐらいまでの大学では、大学の計算機室まちの行列ができる時代と言われる。そのような時代においては特定の計算を行うためのロジックを人間が事前に検討して(プログラミングして)計算を行う。という使い方が一般的であったと言えよう。
一方で、これらの演算能力が定期的に必要とされる計算シチュエーションがあることに気づいた人がいる。典型的なものは収入に対する納税額の計算や勤労者の勤怠管理に基づき給与計算するといったものである。これらの計算には所定のフォーマットでの繰り返しによる入力や出力が必要になることから、その工夫が行われていく。結果として計算機に対する情報の入出力機構を仕組みとして備えた「情報システム」の誕生を迎える。確か日本では1960年に大阪市(or府)での行政のコンピュータ利用が先端事例だった記憶がある。

いわゆる情報化時代とは情報システムが社会の隅々まで普及したうえで、人間生活、社会生活に取り込まれたプロセスのことを指していると思う。そうすると標準的な人間生活において求められる様々な行為に対応した情報システムが成立することになる。その情報システムに求められる社会的要請は実に様々である。しばしばその多様性に対応しきれずに開発の断念に追い込まれる巨額の情報システムプロジェクトは今日でもしばしば耳にする。そのぐらい情報システムの開発は一筋縄ではいかない難しいものだということに注意しておきたい。
一方で、その情報システムは主にビジネスとして構成され、効率的に開発工数、費用を削減することが求められる。そういう原理に基づいて、複数回用いられる処理については、一度書いたプログラムを複数の箇所で使い回せる「部品化」が重要なコンセプトとして注目された。その部品化をプログラミング言語では「ライブラリ」と呼ぶ。あるいはライブラリとして独立させなくとも、新しく設計された高級言語では言語仕様の中にそのような部品を多数組み込んだ仕組みが備わっているものがある。
そのようにして部品の汎用化が進んできたのがプログラミング言語の歴史である。

少し時代を遡ると、インターネットの時代になる。インターネットは世界中のコンピュータやネットワークを接続するメタでスーパーなネットワークのことである。そうするとオープンソースという形で共通の部品が優れた自発的開発モチベーションを持ったプログラマにより供給され、更に部品化が加速してきた。その部品化の一つの到達点がフレームワークであり、OSのコンテナ化、仮想化技術である。

例えば世界で最も使われているフレームワークの一つであるRubyOnRailsは、一般的な小規模なスタートアップががウェブアプリを高速に開発するという目的において、様々なユースケースに柔軟に対応できる極めて優れた性能を持っている。このRubyOnRailsはDHHと呼ばれる優れた開発者がリードし開発したRDBを活用する現代Webアプリケーションの技術の粋であり、その中に多数のWebエンジニアの効率化に向けた努力と工夫が結晶化である。
しばしば学術論文を書く際には、巨人の肩の上に乗るという表現をするが、それと同じように現代のプログラミングではオープンソースとして結実した過去の先人の努力のその結晶の上にプログラミングをしているという姿が現実的な描写だろうと思う。
しばしば言われるように、プログラミング能力の高さよりは、ライブラリ、フレームワークの検索能力、技術選定能力のほうがビジネス的には重要なこともあるぐらいだ。

そのように、計算機の誕生から情報システム、ライブラリ化、フレームワーク化というトレンドで計算機の歴史を振り返ってきた。その上に生成AIがあると位置づけてみよう。
生成AIはその原理として確率的な学習機構を持っている。そのため、いわゆる自然言語により管理されてきた様々な知的ノウハウや分類項目などをその内部に蓄える事ができる。それをプロンプトと呼ばれるクエリで取り出しながら使っている。
その取り出す中身がどうして作られているかといえば、インターネット上のテキストや画像だ。そこで書き溜めた人類の知識が濃縮されてLLMのモデルの中に存在している。それを必要に応じて組み立てて「ChatGPTは賢い」といったような印象を人類が受けている。
その「人類の知識が濃縮されている」という意味では、適用範囲の広さは格段に違うものの、基本的な原理としてはプログラミング言語におけるフレームワークと、自然言語におけるLLMではそう大きな違いはないように思われる。例えて言えばWikipediaのようなものだ。今はあまり言われなくなったがかつて集合知という言葉があり、オープンソースやWikipediaのような不特定多数による編集作業を通じて得られた知的成果をそのように読んでいた。LLMの学習はDeepLearning機構を通じてその学習を自動化した側面があるような気がする。つまりLLMは究極の集合知であるということだ。
さて、そこからどのようなインプリケーションが得られるだろうか。
まず集合知であるということが意味することはその中身があくまで大局的な知識であるということだ。おそらく平均的な知識に終止し、局所的、部分的な知識はおそらく追いやられる。仮に世の中に8割の人が信じてる大常識と、2割の人が信じてる小常識があった場合、大常識はのさばり、小常識は返さない。確率的に動作するとはそういうことである。一方で、小常識が有効になる背景やコンテキストがあるとしたら、そのコンテキストがプロンプトに含まれていると、小常識を返す。そんな仕組みが生成AIではないだろうか。つまり、小常識を使いたい場合はそれが求められる適切なコンテキストをプロンプトとして描写する必要がある。
そう考えると、生成AIとは既存の情報システムの連綿とした流れの一部として理解できる。ドットコムバブルに代表される熱狂と破綻のバブルが起きていることも歴史から学べる。とはいえ、今更記録媒体としてフロッピーを使うことが殆どなくなったように、不可逆なコンピュータ利用の変化も起きているのだろう。特に我々エンジニアのソースコードを書く「プログラミング」という領域において劇的な変化をもたらす、ViveCoding等のソースコード生成が示す衝撃が凄い。もっともこれは、ここで書いたような大局的知識として知られるメジャーなフレームワーク、言語を適切に(多数派を構成しつつ)使うことにより、ソフトウェア開発のかなりの部分を自動化できるということを意味しているのだろう。
その話はまた今度書く。

殺風景なのも何なのでワンワンの写真でも置いとく。