最近、ちょっと面白い話を聞いて、ずっと考えてたんだ。
1997年のプロセッサで、今のAIが動いたって話。…うん、最初は意味が分からなかった。たぶん、何かの間違いか、大げさなジョークなんだろうなって。だって、1997年だよ?Windows 95とか使ってた時代。メモリなんてGBじゃなくて、MB。128MB。正直、今のウェブサイトを一つ開くだけでも怪しいレベル。
でも、これが本当の話で。しかも、その背景を知ると、ただの「レトロPCで遊んでみた」っていう懐古趣味の話じゃないってことが分かってくる。僕らが当たり前だと思ってたAIのあり方とか、テクノロジーの未来について、結構、根本的なことを問いかけてくるような、そんな話なんだ。
で、結論どうなの?:古いPCでもAIは動く、ただし…
まあ、先に言っちゃうと、動いたのは事実。でも、もちろん、今のChatGPTみたいに一瞬で答えが返ってくるわけじゃない。一つの質問に30秒から1分くらいかかる。…遅いよね。でも、ポイントはそこじゃない。重要なのは、「動かすことができた」っていう事実そのものなんだ。
これは、AIが必ずしも最先端の、バカでかいハードウェアを必要とするわけじゃないってことの証明になった。むしろ、僕らが知らないうちに、AIを「重くて、電気を食う、扱いにくいもの」にしてしまっていただけなんじゃないか?って思わされる。
一体どうやったの?魔法みたいな3つの工夫
じゃあ、どうやってそんな骨董品みたいなPCでAIを動かしたのか。研究者たちがやったことは、突き詰めると3つのすごく地味で、でも賢い工夫に行き着く。
一つ目は、「量子化」(Quantization)っていう技術。…なんか難しそうに聞こえるけど、要は「情報の精度を、ギリギリ意味が通じるレベルまで落とす」ってこと。例えば、AIが計算に使う数字って、普通はすごく小数点以下の桁数が多い、超高精度な32ビットの数字を使ってる。でもね、正直、ほとんどの答えを出すのに、そんな細かい精度って必要ないんだ。研究チームはこれを、思い切って8ビットとか4ビットまで落とした。カラー写真を、画質を保ったまま白黒にするようなイメージかな。これだけで、AIモデルのサイズがギガバイト単位からメガバイト単位に、劇的に小さくなる。
でも、それだけじゃ足りない。二つ目の工夫が、「スパース計算」(Sparse Computation)。スパースってのは「まばら」って意味。AIモデルって、巨大な計算フローチャートみたいなものだけど、ある瞬間に実際に使われてる部分って、ほんの一部なんだよね。残りの大部分は、言ってみれば会議中にぼーっとしてる社員みたいなもん。だから、このチームは、本当に必要な計算だけを叩き起こして、影響の少ない処理は全部スキップする仕組みを作った。これでCPUの負担も、メモリの使用量も、ぐっと減らせる。
そして最後が、「賢いキャッシュ」。一度計算したことは覚えておいて、二度と計算しないようにする。これは今のAIでもやってることだけど、彼らはもっと原始的な方法を使った。昔のゲームがCD-ROMからステージデータを少しずつ読み込んでたみたいに、あらかじめ計算しておいた結果のブロックをメモリに読み込んでおく。…こういう涙ぐましい努力の積み重ねなんだよね。
使われたAIモデルは、Meta社が公開している「LLaMA」の、一番小さい1Bモデルをさらに極限まで削ぎ落とした特別製。PyTorchとかTensorFlowみたいな、それ自体が数百MBもメモリを食う便利なライブラリは一切使わず、全部C言語で手書き。メモリのアドレスを直接いじるような、本当に低レベルなプログラミング。まさに職人技の世界だ。
「現代のAI」と「この実験」、何が違う?
この違いを整理してみると、僕らがどこで道を間違えたか…いや、どこで「楽」を覚えてしまったのかが、よく分かる気がする。
| 比較項目 | 現代の一般的なAI | 今回の実験のAI |
|---|---|---|
| ハードウェア | 最新のGPUが何枚も必須。電気代もすごい。 | 博物館レベルのPC。押し入れから出てきそう。 |
| メモリ(RAM) | 平気で数十〜数百GBを要求してくる。ないと動かない。 | たったの128MB。今のスマホの何百分の一…? |
| 応答速度 | ほぼリアルタイム。まあ、それが売りだしね。 | 一つの答えに1分とか。…でも、動くだけ奇跡。 |
| 開発スタイル | PyTorchみたいな便利ツールに頼りきり。楽だけど、重い。 | C言語でゴリゴリ書く。完全に職人技の世界。 |
| 根底にある思想 | 「力こそパワー」。ハードの力で問題をねじ伏せる感じ。 | 「知恵と工夫」。ないものは自分たちで作る精神。 |
この実験が突きつける、もっと大きな問題
この実験が本当に面白いのは、ここから。ただの技術デモじゃなくて、僕らの社会が抱えるいくつかの問題に、静かに光を当てているんだ。
まず一つは、「ソフトウェアの肥大化」の問題。知ってる?昔の腕の立つプログラマーは、たった4キロバイトの容量に3Dゲームを詰め込んだりしてた。1バイト単位でコードを最適化してたんだ。でも今はどうだろう。便利なフレームワークやライブラリを重ねていって、何もしないアプリが起動するだけで数百MBのメモリを使う。Pythonみたいな高級言語は開発が速くて楽だけど、その裏でリソースをどんどん食いつぶしてる。この実験は、そんな現代のソフトウェア開発への強烈な皮肉にもなってる。
そして、「計画的陳腐化」と電子ゴミの問題。まだ使えるはずのハードウェアを、僕らはなんでこんなに頻繁に買い替えるんだろう?その大きな理由の一つが、ソフトウェアがどんどん重くなって、古いハードじゃ快適に動かなくなるから。でも、もしソフトウェア側がもっと効率的になる努力をすれば?1997年のPCでAIが動くなら、僕らが捨ててるたくさんの古いPCやスマホは、本当はまだ何か役割があったんじゃないか。こういうのって、日本人が昔から持ってる「もったいない」っていう感覚に、すごく近い話だと思う。
そういえば、ムーアの法則の終わりも囁かれてるよね。「ハードウェアは無限に進化し続ける」っていう前提が、もう崩れかけてる。これからは、力技じゃなくて、ソフトウェアの知恵がもっと重要になる。そういう時代の訪れを、この実験は予感させてるのかもしれない。
もちろん、限界もあるし、批判もわかる
当然だけど、この実験は万能じゃない。「そんなのスケールしないよ」っていう批判もある。確かにその通りで、この方法で最新の画像生成AIを動かしたり、巨大な言語モデルをゼロからトレーニングしたりするのは不可能だ。あくまで、学習済みのモデルを使って「推論」する、つまり答えを出す作業に特化した話。
でも、研究者たちの目的は、ChatGPTを置き換えることじゃなかった。「徹底的に最適化すれば、AIの基本的な動作は、極端に制約された環境でも可能なのか?」っていう仮説を証明すること。そして、彼らはそれに成功した。
これって、最近注目されてるTinyMLっていう動きと、精神的にすごく似てるんだ。TinyMLは、指先に乗るくらい小さなマイクロコントローラで機械学習を動かす技術。日本でも、ルネサスエレクトロニクスみたいな半導体メーカーが、省電力なチップでAIを動かす研究を進めているよね。この実験は、そのTinyMLの精神を、新しいチップじゃなくて「歴史の遺物」でやろうとした、もっと過激な試み、って言えるかもしれない。
で、これからどうなるの?
このプロジェクトチームは、コードとセットアップの方法を全部公開した。カスタムのLinuxカーネルをコンパイルしたり、DOS時代のメモリ管理ハックを使ったり、かなりマニアックな内容だけど、その本気度が伝わってくる。
そして彼らの次の目標は、わずか5ドルで買えるコンピュータ「Raspberry Pi Zero」で、リアルタイムのAIチャットを動かすことらしい。目標メモリは200MB以下。もしこれが成功したら…インターネットがなくても動く、完全にオフラインのAIデバイスが、一気に現実味を帯びてくる。クラウドに接続できない世界中の何十億っていう人たちにも、AIの恩恵が届くかもしれない。
そう考えると、この一件は、ただのノスタルジックな技術デモなんかじゃなかった。それは、「AIは、必ずしもエリートのものでも、高価なものでもないんだ」という挑戦状だったんだと思う。僕らが便利さのために重ねてきたレイヤーを一枚一枚剥がしていくと、その核には、信じられないくらいミニマルな魂が残っていた。…なんだか、すごい話だよね。
あなたの家にも、昔使ってたPC、どこかに眠ってない?もしかしたら、それに新しい魂を吹き込める時代が、もうすぐ来るのかもしれないね。
