Wireless・のおと

第五世代のはなし

ブログ
昔話 小話

携帯電話業界では LTE に続く第五世代「5G」というキーワードが賑やかですが、かつて「第五世代コンピューター」という言葉がメディアを賑わせたことがありました。今回はその「第五世代コンピューター」に関する昔話です。

第五世代
「第五世代コンピューター」とは、通産省(当時)の肝入りで進められた次世代コンピューターの研究プロジェクト ICOT(Institute for new generation COmputer Technology, 1982~1994) が掲げたキーワードです。ICOT では電子計算機の進化を第一世代(真空管)、第二世代(トランジスタ)、第三世代(IC:集積回路)、第四世代(LSI:大規模集積回路)と分類し、次に来るべき第五世代コンピュータは人工知能(AI:Artificial Intelligence)を実現するものとして定義しました。この時点で何だか、構成部品の話から実現機能の話にすり換えられているような気がしますが、それはまず置いておきましょう。

A.I
人工知能というのは、それ自身定義があやふやなものです。そもそも我々人類は「知能とは何であるか」という問いに対する明確な答えを持っていません。広義の人工知能とは「知能とは何であるか」という問いに対する仮説を立て、仮説をコンピュータ言語を用いてモデル化し、そのモデルを動作させて仮説と実在の知能=人間の行動を対比することで「知能とは何であるか」を研究する分野でした。「人工知能」という言葉から想像される「考えるコンピュータ」とか「意思を持つコンピュータ」というハリウッド映画的なイメージとは大きな隔たりがあります。

しかし当時「人工知能」は(過度に)注目されていた分野でした。折しもコンピュータ需要の爆発的増大に対してプログラマー供給が追い付かない「ソフトウェア危機(※註)」が叫ばれており、人工知能によって自然言語を理解するコンピュータ、仕様書を読ませればプログラムコードを自動的に生成するコンピュータなどができると期待されていた節があります。そして当時の AI 研究者はそれが「人工知能研究」の現実とはかけ離れた、夢想的とすら言える未来の期待達成目標であることを承知していながら、予算獲得のためむしろ説明を端折って人工知能の夢を安売りした印象があります。ICOT と第五世代コンピュータもまた(意図したか否かには関わらず)その例外ではありませんでした。

(※註)当時の「ソフトウェア危機」とは主に、メインフレーム汎用機における業務処理システムで用いられていた COBOL 言語プログラマーの不足に対するものでした。

風が吹けば桶屋は儲かるか
ICOT は活動の中心を論理プログラミング言語による推論マシンの開発に置きました。推論は人工知能理論における主要な1モデルで、よく三段論法に例えられます。たとえば「ソクラテスは人間である」「人間は死ぬものである」という2つの前提から「ソクラテスは死ぬものである」という結論を導出するものです。この三段論法的推論モデルが知能=人間の思考原理であるかどうかは未だに結論が出ていませんが、少なくとも当時は充分高速な推論エンジンと実用的な前提データベースがあれば、「人工知能」と呼ぶにふさわしいシステム(エキスパートシステム)が実用化できるのではないかと考えられていました。
もう一つの骨子である論理プログラミング言語は、if とか then など自然言語の出来損ないのようなコンピュータ言語...「手続き型言語」と異なり、厳密な数学的モデル(論理学における一階述語論理)に基づいたものです。その目的は自然言語指令を解釈実行できるコンピュータでもなければ「意思を持つコンピュータ」の実現でもなく、プログラムコードの論理性を厳密に(数学的に)検証できるシステムの実現にありました。この辺りにもまた、「第五世代」「人工知能」という言葉から想像された「意思を持ち自然言語を解釈できるコンピュータ」というハリウッド映画的なイメージと現実の乖離があります。

約束の地で
ICOT は 1994 年をもって「論理プログラミング言語(Prolog)、並列推論エンジンの OS・ハードウェアの研究実装において一定の成果を挙げた」という総括とともに活動を終了しました。しかし ICOT に対しては「閉ざされた象牙の塔での研究に終始し、実用システムには殆ど貢献することがなかった」という論旨の批判も根強いです。少なくとも今日、論理プログラミング言語や推論エンジンに基づいた実用コンピュータシステムはほぼ皆無であり、支持者がいかにその成果を讃えようとも、それがパソコンやサーバーやスマートフォン、あるいは家電や乗用車の制御コンピュータといった実用製品には殆ど何も反映されていないことは事実です。ICOT は一体何を間違え、どこで道を外れてしまったのでしょうか。

ICOT が活動した 82 年からの約 10 年間は、「第四世代」と定義された LSI コンピュータ(マイコン:マイクロコンピュータ)と、代表的なマイコン応用機器であるパーソナルコンピュータ(PC あるいはパソコン)が著しく発達した時代でもありました。国内ベストセラーとなった NEC の PC-8001 (1979) が CPU:Z-80A 4MHz, BASIC-ROM:32KByte, 標準 RAM:16KByte, 外部記憶装置カセットテープ(別売、600bps 15 分として 65KByte)で定価 168,000 円だったの対し、92 年に発売された PC-9801FA は CPU:i486SX 16MHz, RAM:1.6MByte, 外部記憶 1.2MByte FDDx2 + 40MByte HDD(FA5 モデル)で定価 578,000 円でした。10 年少しの間に定価 3.4 倍で CPU の演算能力ざっと 50 倍(※註)、RAM 容量で 100 倍、外部記憶容量では 600 倍ほどになっています。この数年後には Windows95 が登場して台湾製の安価な IBM-PC 互換機(通称 DOS/V マシン)の国内流入を招き、PC の価格性能比は更に加速してゆくことになります。

(※註:Z-80 は1命令約3クロックで実行、アキュムレータ幅 8bit だったのに対し i486 は1命令1クロック実行(3倍)、アキュムレータ幅 32bit(4倍)をクロック数に乗じています)

パソコンの高性能化と低価格化によって、コンピュータは「大企業や学術機関の研究所の電算機室に安置され、高度な科学情報処理を行う」機械ではなくなりました。一般家庭に入ったパソコンはゲームやワードプロセッサなど、コンピュータサイエンス的には面白くも何ともない作業をこなす便利な道具となりました。こういった PC 世界の「くだらない」プログラミングに対して、論理言語は全く無力で何の影響も与えませんでした。
一方、企業が業務処理に用いていたメインフレーム汎用機と COBOL 言語も次第にパソコン(ないしは Unix ワークステーション)に置き換えられてゆく「ダウンサイジング」現象が起きることになります。ダウンサイジング化によってプログラマーが足りるようになったわけでも、プログラミングのバグが根絶されたわけでもありませんが、それらの問題は軽減されました。PC の普及によって OS や機材は(好むと好まざるに関わらず)標準化され、Microsoft Office に代表される出来合いのパッケージ・ソフトウェアの組み合わせや再利用が(良くも悪くも)より柔軟にできるようになり、かつては1社ごと(時には部門ごと)、機材更新ごとに全てを1から開発していた COBOL システム開発の需要は急落しました。もちろんバグはいまだに出続けていますし、プログラマーは常に過労を強いられ残業と休出が常態化していますが、問題の中身は 70 年代に言われていた「ソフトウェア危機」や「プログラマー不足」とは違っています。
そして ICOT が選択した方法論...専用の論理プログラミング言語を専用の推論マシン上で走らせるシステムは、批判者が言うように「象牙の塔」から一歩も出ることはなく、現実の問題を解決することも軽減することもできませんでした。それが何故なのかについては各論ありますが、代表的なところでは下記のような意見でしょう。

・論理プログラミング言語+推論マシンという方法論が袋小路の行きどまりだった
Prolog 言語はシンプルで美しい数学モデルに基づいているが、コンピュータ言語の実装としては実行が遅く、膨大なメモリを消費し、往々にしてバックトラックの無限ループに落ち込んでしまう宿命を背負っている。ICOT では専用の推論ハードウェアによってこれを克服する目論見だったが、猛烈な勢いで進歩した「第四世代」LSI マイクロコンピュータには性能でもコストでも太刀打ちできなかった。

・論理プログラミングに関する啓蒙活動が不足していた
Prolog 言語は論理学理論を学んだ者には「シンプルで美しい」かも知れないが、そうでない者には意味不明の記号の羅列にしか見えず、if だの then だの「たどたどしい自然言語の出来損ない」で書かれた手続き型言語のほうが理解の敷居が低い。プログラマー不足への対処として高度な専門教育を必要とする論理プログラミング手法を選択したことじたい疑問でもあるし、手続き型言語に慣れたプログラマーに論理型言語を教育するような体系も機運も生まれなかった。

・そもそも問題の所在を間違えていた
「数学的に論理性を検証できる」ことが論理プログラミング言語最大の売りだが、そもそもプログラムコードの論理破綻はコンピュータシステム不具合(バグ)のごく一部でしかない。論理的には正しいが仕様的に間違った実装に起因する不具合のほうが圧倒的に多く、論理プログラミング言語はそういう不具合防止の役には立たない。理屈では仕様を全て一階述語論理で既述できれば整合性を検証できるが、現実の業務システムはそもそも論理的ではなく、業務フローを論理に落とす段階で常にバグが入り込む余地があり、生成コードの論理性検証はバグの根絶とほぼ無関係である。

・「人工知能」に対する世間の期待と現実の乖離
推論マシンの長期的な期待目標であった「人工知能」をマスコミは「自然言語を理解するコンピュータ」や「意思を持つコンピュータ」の近日実現であるかのように報道したため、世間の期待値とプロジェクトの達成実績の間に大きな乖離ができてしまった。ICOT の成果とされる推論エンジンの実装や定理検証プログラムは、世間が期待した「第五世代コンピュータ」の姿と全く異なり、それにどんな価値があるのかすら理解困難なものだった。

まとめ
私個人は ICOT に対して「壮大な空振り」だったと考えています。それは必ずしも悪いことではありません。80 年代にはコンピュータの発展には多くの方向性が提唱されており、論理コンピューティングもその中の1つでした。結局、「第四世代」と呼ばれた VLSI マイクロコンピュータと手続き型言語が 21 世紀になっても使われ続けている結果になっていますが、それは 80 年代には不確実な未来のなかの1つに過ぎなかったのです。ICOT に批判の余地がないわけではありませんが、未来予測が外れたことをもって ICOT を責めるのは筋違いだとも思います。「絶対に成功する可能性にしか投資しない」ならば、人類はいまだに石器を磨いていたでしょう。
80 年代は論理型コンピュータだけでなく、光演算素子や超電導素子(ジョセフソン素子)、超並列 SIMD アーキテクチャ(コネクション・マシン)やデータ駆動型コンピュータ(パイプライン・プロセッサ)などの可能性も試された時代でした。結局そのほとんどが袋小路に終わっていますが、そういった分野に日本政府や日本企業が投資できていた時代が懐かしくもあります。今の日本で真に先進的な、一体何十年後に実用化できるのかわからないような研究がどれだけ行われているでしょうか。

関連記事

製品のご購入・サービスカスタマイズ・資料請求など
お気軽にお問い合わせください