要点(30秒で): 8ドルのマイコン単体で、28.9MパラメータのLLMが毎秒約9トークンで物語を紡ぐOSSが公開された。鍵は「重みの大半はRAMに載せず、フラッシュから読むだけ」という発想の転換。クラウドもGPUも要らない小型AIを試したい人は、MITライセンスのリポジトリを今すぐ覗いてみてほしい。

手のひらに収まる8ドルのチップが、ネットにもサーバーにもつながずに、自分で短い物語を書き始める。しかもその文章に、小さな液晶へ一語ずつ、毎秒9語ほどの速さで刻まれていく。

slvDev が公開した esp32-ai は、そんな「マイコン単体で動くLLM」だ。GitHubで公開直後に1,700スター・181フォークを集め、Tom’s HardwareやXDAといった海外メディアが相次いで取り上げた。派手なモデルでも新記録のベンチマークでもない。にもかかわらず技術者が食いついたのは、ここに一つの発想の転換があるからだ。

何がすごいのか——「$8」という制約

まず舞台を確認したい。使われているのはESP32-S3、電子工作でおなじみの安価なマイコンだ。スペックは高速なSRAMがわずか512KB、中速のPSRAMが8MB、そしてストレージにあたるフラッシュが16MB。

比較のために言えば、いまのローカルLLMは数GBのVRAMやRAMを平気で要求する。KB単位のメモリしか持たないチップにLLMを載せるなど、常識で考えれば無理な話だ。それでも28.9Mという規模のモデルが動いている。

規模感の目安として、初代のGPTがおよそ117Mパラメータだった。つまりこのマイコン上のモデルは、その約4分の1の「頭の大きさ」を持つ計算になる。8ドルのチップに載っているのだと思うと、数字の印象はだいぶ変わってくる。

図1:メモリの三層構造——「計算する部分」と「保管する部分」を切り分け、KB級RAMのマイコンで28.9Mを成立させる役割分担
図1:メモリの三層構造——「計算する部分」と「保管する部分」を切り分け、KB級RAMのマイコンで28.9Mを成立させる役割分担

仕組みの核——「重みは計算するな、読め」

なぜ載るのか。答えは、モデルのパラメータの大半をRAMに置くのをやめたことにある。

開発者の言い分はシンプルだ。言語モデルの重みの大部分は、実は「計算する対象」ではなく「引く対象」——つまり巨大な埋め込みテーブルにすぎない。ならばそれを、狭くて速いRAMに抱え込む必要はない。広くて遅いフラッシュに置いておき、必要な行だけをその都度読み出せばいい。

実際、28.9Mのうち25Mぶんのパラメータは16MBのフラッシュにテーブルとして格納される。1トークンを生成するたびに読むのは、そのうちわずか6行・約450バイトだけ。メモリマップされたフラッシュを直接実行する仕組み(XIP)を使い、コピーすら省いている。

図2:この記事の核心——「重みは計算するな、読め」。全部をRAMに載せる従来方式に対し、25Mはフラッシュに置き1トークンあたり約450バイトだけ読む
図2:この記事の核心——「重みは計算するな、読め」。全部をRAMに載せる従来方式に対し、25Mはフラッシュに置き1トークンあたり約450バイトだけ読む

メモリの三層構造

この設計を、開発者はメモリの三層に役割分担させることで成立させている。

速くて小さいSRAMには、毎トークンで必ず使う「思考の中核」だけを置く。ここが実質の演算エンジンで、占有はおよそ560KBに収まる。中速のPSRAMには出力ヘッドや作業メモリを預ける。そして巨大で遅いフラッシュが、25Mの重みテーブルという「本棚」を丸ごと引き受ける。

計算する部分と保管する部分を、はっきり切り分けたわけだ。この分業のおかげで、RAMに全部を詰め込もうとする従来の発想では絶対に無理だった規模が、平然と動く。4ビット量子化まで施したモデル本体は14.9MB、生成速度は端から端まで約9.5トークン/秒に達する。

図3:元ネタはGoogle Gemma 3nのPLE。埋め込みを狭いメモリから“逃がす”発想を、esp32-aiはマイコンのフラッシュに置き換えた
図3:元ネタはGoogle Gemma 3nのPLE。埋め込みを狭いメモリから“逃がす”発想を、esp32-aiはマイコンのフラッシュに置き換えた

元ネタはGoogleのGemma

この「埋め込みを層ごとに切り離す」考え方は、開発者の思いつきではない。Googleがモバイル向けに設計したGemma 3nの、Per-Layer Embeddings(PLE) という技術がベースになっている。

Gemma 3nでのPLEは、各層の埋め込みパラメータをアクセラレータ(GPUやTPU)の狭いメモリから追い出し、CPU側のメモリで計算させる仕組みだった。見かけ上5Bや8Bのモデルを、実質2〜3B相当のメモリ消費で動かす——そのための重みの「逃がし場所」を作る発想だ。

esp32-aiは、その逃がし場所をマイコンのフラッシュに置き換えた。Googleがスマホのために編み出した節約術が、8ドルのチップの上でそっくり応用されている。クラウド向けの巨大モデルとエッジの極小デバイスが、同じアイデアで地続きになっているのは面白い。

何ができて、何ができないか

ここは正直に書いておきたい。このモデルは質問に答えないし、指示にも従わない。コードも書けなければ、事実も知らない。

学習に使われたのはTinyStoriesというデータセットだ。Microsoft Researchのronen Eldanらが2023年に発表したもので、3〜4歳の子どもが理解できる語彙だけでGPT-3.5/4に書かせた合成の童話集である。彼らの論文は、1M〜33M程度の極小モデルでも、文法の整った一貫性のある物語なら書けることを示した。

esp32-aiが生み出すのも、まさにその種の短い物語だ。登場人物や小さな筋を追いながら、破綻の少ない英文を綴る。賢い相棒ではない。ここで見るべきは、モデルが何を語るかではなく、これだけの規模がこんなチップに載るという構造そのものだ。

使いどころ・始め方

リポジトリはMITライセンスで、ファームウェアだけでなく学習コードや量子化の実験、アブレーション結果まで公開されている。ESP32-S3ボードを持っていれば、そのまま焼いて動かせる作りだ。

実用の相棒を求める用途には向かない。だが、ネットに一切つながず、電池とチップだけで言語モデルが走るという事実は、応用の入り口としては十分に刺激的だ。オフラインの玩具、組み込みの遊び、教育用の教材——「クラウド前提」を外した瞬間に見えてくる設計は多い。

このあたりの「モデルそのものより、それを動かす層こそが勝負」という論点は、オープンAIは追いついた、でも「動かす層」を誰も守っていない——Mozilla報告の芯でも触れた通りだ。重みを開くだけでなく、どこで・どう走らせるかがエッジAIの主戦場になりつつある。

日本・個人開発の視点

日本の電子工作界隈にとって、ESP32は最も身近なマイコンの一つだ。Wi-Fiもカメラも安く手に入り、Maker Faireの常連でもある。そこに「単体で言語モデルが動く」という新しい遊びの軸が加わった意味は小さくない。

しかもこれは、高価なGPUを持たない個人開発者ほど旨味がある話でもある。クラウドAPIの利用枠やGPUの潤沢さで殴り合う土俵とは別に、「制約の中でどう成立させるか」という工学の醍醐味がここにはある。日本の同人ハード文化と相性がいい。オフライン前提の玩具や展示物なら、今日からでも触れる領域だ。

要点まとめ

  • slvDev/esp32-ai は、8ドルのESP32-S3単体で28.9MパラメータのLLMを動かすOSS(MIT・1.7kスター)。
  • 鍵はGoogle Gemma 3n由来のPer-Layer Embeddings。重みの大半(25M)をフラッシュに置き、1トークンあたり約450バイトだけ読む。
  • SRAM=演算の中核、PSRAM=作業メモリ、フラッシュ=巨大な重みテーブル、と三層に役割分担。
  • 4ビット量子化で本体14.9MB、生成速度は約9.5トークン/秒。
  • 学習はTinyStories。物語は書けるが、質問応答・指示追従・事実の保持はできない。

🐦‍⬛ 編集部の視点

このニュースの本当の見どころは、「28.9Mで何が言えるか」ではない。「重みは計算するものではなく、読むものだ」という一行の割り切りが、無理を可能に変えたところにある。

私たちはつい、AIの進歩をパラメータ数やベンチマークの数字で測ってしまう。けれどここで効いているのは、もっと泥臭いエンジニアリングだ。メモリの階層をどう使い分けるか、どこにボトルネックを追いやるか——クラウドの巨大モデルも、8ドルのチップも、悩んでいる問題は驚くほど同じ形をしている。

そしてこれは、AIが「特別なデータセンターの中の何か」から、「電池とチップで完結する日用品」へ滑り落ちていく予兆でもある。稲妻のように賢いわけではない。だが、賢さの一部を、これほど安く・これほど手元に置けるようになったこと自体が事件だ。あなたの引き出しに眠っているESP32、次の週末に物語を語らせてみたくならないだろうか。

出典・リンク

コメントを残す

Trending

World AI Newsをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む