Skip to content
tutorials

この12年前のPCが思考できる

わずか512MBのRAMを搭載した10年前のコンピューターがローカルAIモデルを実行しています。現代のAIを真にポータブルにする、不可能とも思えるエンジニアリングの偉業を詳しく解説します。

Dani Roth
Hero image for: この12年前のPCが思考できる

要約 / ポイント

わずか512MBのRAMを搭載した10年前のコンピューターがローカルAIモデルを実行しています。現代のAIを真にポータブルにする、不可能とも思えるエンジニアリングの偉業を詳しく解説します。

512MB AIチャレンジ

2014年にリリースされた初代 Raspberry Pi は、この大胆な実験の基盤をなしています。このビンテージのシングルボードコンピューターは、控えめな700MHzのシングルコアCPUとわずか512MBのRAMを誇ります。今日の計算基準からすると、これらの仕様は現代の処理ユニットというよりも、高性能な電卓に近いものです。

しかし、現代のLarge Language Models (LLMs) は、通常、桁違いに多くの電力を要求します。これらは日常的にギガバイト単位のRAMを消費し、強力なマルチコアプロセッサーと特殊なアクセラレーターに依存して機能します。この顕著な対比は、現在のAI技術と10年前のデバイスの能力との間の計り知れない隔たりを浮き彫りにしています。

この格差は根本的な疑問を投げかけます。現代のAIを使って、これほど古いマシンに「思考」させることは本当に可能なのでしょうか?この課題は、単にプログラムを実行するだけでなく、そのようなタスクのために設計されていないハードウェアに、複雑でリソースを大量に消費するアルゴリズムを巧みに導入することを含みます。

このギャップを埋めることは、手ごわい技術的課題を提示します。限られた512MBのRAMでは、ほとんどのLLMの基本的なコンポーネントをロードすることさえ困難であり、推論を実行することはなおさらです。さらに、700MHzのシングルコアCPUとそのレガシーなARMv6命令セットには、現在ほとんどすべてのAIフレームワークが期待する最新の数学的最適化と並列処理機能が欠けています。

これらの克服不可能に見える障害にもかかわらず、あるチームは12年前のRaspberry PiローカルLLMを実行することに成功しました。そして、実際に動作しました! 彼らは、Technology Innovation Instituteによって開発された、信じられないほどコンパクトな9000万パラメーターのLLMであるFalcon-H1-Tinyモデルを選択しました。これは、極限エッジ言語モデリングの限界を押し広げるために特別に設計されたものです。

主な戦場はメモリでした。Falcon-H1-Tinyのような小さなモデルでさえ、512MBに収めるには、積極的な量子化が必要でした。これにより、重要なロジックを維持しながら精度を4-bitに削減しました。標準的なLLMのロードメカニズムは、このような制約のある32-bitアドレス空間ではしばしば失敗するため、このプロセスは極めて重要になりました。

メモリ以外にも、旧式のARMv6アーキテクチャは、独自のコンパイルと実行の問題を引き起こしました。現代のAI推論エンジンは、新しいCPU命令に大きく依存しているため、Piの特定の限られたハードウェアにソフトウェアを正確に適合させるための綿密なクロスコンパイルプロセスが必要でした。この複雑なエンジニアリングの努力が、理論的な可能性から具体的な実証への道を開きました。

Falconの紹介:9000万パラメーターのヒーロー

イラスト:Falconの紹介:9000万パラメーターのヒーロー
イラスト:Falconの紹介:9000万パラメーターのヒーロー

このありそうもない偉業を可能にしているモデルは、Falcon-H1-Tinyです。アブダビのTechnology Innovation Institute (TII) によって開発されたこの言語モデルは、「知的」と見なされるものの絶対的な下限を押し広げています。驚くほどコンパクトな9000万パラメーターで動作し、これは数年前には効果的な言語処理にはほとんど想像できなかった規模です。TIIは、極限の効率性を調査するためにFalcon-H1-Tinyを特別に設計し、12年前のRaspberry Piのような厳しく制約されたハードウェア上での洗練されたAIの可能性を示しています。

Falconの驚くべきコンパクトさの背景には、革新的なHybrid Transformer + Mambaアーキテクチャがあります。IBMのtiny Granite 4のようなモデルにも見られるこの設計選択は、両方のアーキテクチャパラダイムの強みを戦略的に組み合わせています。最小限の計算リソースとメモリフットプリントで効果的に動作するように設計されたモデルにとって不可欠な、効率性とパフォーマンスを優先しています。このハイブリッドアプローチにより、Falcon-H1-Tinyはその小型サイズにもかかわらず、意味のある言語理解と生成能力を保持できます。

LLM界の巨人たちと比較して、その規模を考えてみましょう。GPT-3のような主流モデルは、1,750億ものパラメータを誇ります。わずか9,000万パラメータのFalcon-H1-Tinyは、GPT-3のパラメータ数の1,000分の1以下で動作し、驚くべき複雑さの削減を実現しています。この抜本的なスケールダウンこそが、512MBのRAMと700MHzのシングルコアCPUしか持たない初代Raspberry Piのようなハードウェアへのデプロイを可能にしているのです。

Falcon-H1-Tinyのようなオープンソースの超小型モデルの登場は、エッジコンピューティングにとって極めて重要な瞬間を画します。これにより、高度なAIへのアクセスが民主化され、開発者や研究者が洗練された言語機能を低電力でリソースが限られたデバイスに直接デプロイできるようになります。この変化は、データプライバシー、リアルタイム処理、オフライン機能が最重要となる新しいアプリケーションを可能にし、AI推論を遠く離れたクラウドサーバーからデータ生成源の近くへと移動させます。

このようなモデルを旧式のRaspberry Piで実行するには、単に小さなモデルであるだけでなく、慎重なエンジニアリングが必要です。このプロジェクトは、`llama.cpp`のような高度に最適化された推論エンジンと、PiのARMv6チップが処理できるQ4メソッドのような特定の量子化技術を活用しています。これらの技術的実現要因とFalconの無駄のない設計が組み合わさることで、ポータブルでローカライズされたAIが単なる理論的な可能性ではなく、最も簡素なハードウェア上でも達成可能な現実であることが実証されています。

量子化:AIをメモリに詰め込む

オリジナルのRaspberry PiにFalcon-H1-Tinyモデルを詰め込むには、徹底的なメモリ効率が求められ、量子化が不可欠な技術となりました。このプロセスは、AIモデルの内部パラメータ、つまり重みの数値精度を削減し、ファイルサイズとメモリフットプリントを劇的に縮小するものです。各重みを標準の32ビット浮動小数点数として保存する代わりに、量子化はそれらをより低いビットの整数(通常は8ビット、4ビット、または2ビット表現)に変換します。この大幅なデータ圧縮は、2014年製のシングルコア512MB Piのような、RAMと処理能力が極めて限られたデバイスに大規模言語モデルをデプロイするために不可欠です。

言語モデリングの下限を探求するためにTIIによって開発されたFalcon-H1-Tinyは、2ビット、4ビット、8ビットのオプションを含む様々な量子化バージョンを提供しました。最大の圧縮率を得るためにImportance Quantization (IQ)のような最先端の手法を試す誘惑はありましたが、これらの新しい技術はターゲットハードウェアと互換性がないことが判明しました。このような高度な量子化戦略は、効率的に機能するために複雑なビット操作と最新のCPU命令に依存しています。

中核的な制約は、Raspberry Piの旧式のARMv6 CPUに起因していました。この2014年製のプロセッサは、700MHzのシングルコアユニットであり、現代のほとんどすべてのAIライブラリや高度な量子化手法が依存する、ARMv7のNEON拡張のような洗練された命令セットを単純に欠いています。これらの重要なハードウェア機能がなければ、Piのプロセッサは、新しい量子化スキームに必要な複雑な数学的演算を実行できませんでした。このため、エンジニアリングチームは、より古く、より普遍的に互換性のある手法であるQ4 quantizationを採用せざるを得ませんでした。この4ビットの「昔ながら」のアプローチが、この特定の課題に対する信頼できる「ゴールドスタンダード」となりました。

Q4(4ビット)モデルは最適なバランスをとり、「メガバイトあたりの知能」の比率を最大化しつつ、モデルのコアロジックを保持しました。さらに積極的な2ビット量子化バージョンも利用可能でテストされましたが、最終的には「ロジック崩壊」という重大な問題に悩まされました。この深刻な劣化は、モデルが一貫性があり、有用で、あるいは理にかなった応答を生成する能力が実用的な範囲を超えて損なわれることを意味しました。データの極端な切り捨ては、本質的な情報の喪失につながり、2ビットのFalcon-H1-Tinyを事実上機能不全にしました。したがって、4ビットのバリアントが実用的なスイートスポットとなり、時には圧縮が少ない方がより多くの知能を生み出すことを示しました。TIIのコンパクトモデルに関する詳細については、Tiny Models, Real-World Intelligence | Technology Innovation Instituteをご覧ください。

古代のARMv6 CPUを打ち破る

2014年製のRaspberry Piで大規模言語モデルを実行することは、手ごわいアーキテクチャ上の障害となりました。そのシングルコア700MHz CPUは、ARMv6 instruction setに基づいており、現代のほとんどすべてのAIライブラリがパフォーマンスのために依存するNEON命令を決定的に欠いています。このアーキテクチャ上のギャップにより、そのような旧式のハードウェアで現代の機械学習フレームワークを実行することは事実上不可能です。

このプロジェクトは、llama.cppに救いを見出しました。これは、多様なCPU、さらには古いCPUでも最大限のポータビリティとパフォーマンスを発揮するように綿密に設計された軽量のC++推論エンジンです。Falcon-H1-Tinyのようなモデルを効率的に実行するために開発され、その設計は最小限のリソース使用を優先しており、オリジナルのPiのような制約のあるハードウェアに特に適しています。

決定的に重要なのは、`llama.cpp`の柔軟なビルドシステムが、開発者がサポートされていないCPU機能を selectively disable(選択的に無効化)することを可能にすることです。12年前のRaspberry Piの場合、これはNEONを無効にし、現代の依存関係を取り除いたカスタムバイナリを作成することを意味しました。このターゲットを絞ったコンパイルにより、推論エンジンがクラッシュしたり命令エラーに遭遇したりすることなく、ARMv6チップ上で機能することが保証されます。

`llama.cpp`がなければ、この野心的な試みは理論上の可能性の領域に留まっていたでしょう。他のAIフレームワークをPi上で直接コンパイルすると、推定18時間以上かかり、メモリ枯渇のために失敗する可能性が高いです。それらの本質的な肥大化と高度なCPU機能への依存は、それらを互換性のないものにしており、`llama.cpp`がFalcon-H1-Tinyモデルをローカルで実行するための不可欠なイネーブラーとなっています。

クロスコンパイルのタイムマシン

イラスト: クロスコンパイルのタイムマシン
イラスト: クロスコンパイルのタイムマシン

12年前のRaspberry Piで`llama.cpp`を直接実行することは、乗り越えられないハードルでした。700MHzのシングルコアCPUとわずか512MBのRAMを搭載した第一世代のボードは、このような集中的なタスクに必要な生の計算能力とメモリ容量を欠いていました。Pi自体で`llama.cpp`のような複雑な現代のC++コードベースをコンパイルするには、推定18時間以上の連続処理が必要となります。この期間は、ビルドプロセスが旧式のハードウェアをすぐに圧倒するため、メモリ不足による壊滅的な失敗にほぼ確実につながるでしょう。

エンジニアは代わりに、ソフトウェア開発における「タイムマシン」のような技術であるクロスコンパイルを採用しました。この方法は、強力なホストマシン(通常は最新のノートパソコン)でソフトウェアを構築するものです。

すべてのメガバイトが重要:OSとセットアップ

オリジナルのRaspberry PiのRAMのすべてのバイトは、特に利用可能なメモリが512MBしかないため、非常に重要です。Falcon-H1-Tinyを実行する可能性を少しでも高めるためには、オペレーティングシステムのフットプリントを最小限に抑えることが最重要課題となりました。これは、標準的なデスクトップ環境からの大幅な逸脱を必要としました。

開発者は、グラフィカルインターフェースを一切持たないベアボーンバージョンのRaspberry Pi OS Lite(32ビット)を選択しました。この最小限のOSは、標準版が消費するメモリのごく一部しかアイドル時に消費せず、LLM自体に重要なメガバイトを解放します。これは、このような制約のあるハードウェアでリソースがいかに積極的に管理されなければならないかを示す証拠です。

Piのセットアップは、OSをSDカードに書き込むために使用されるユーティリティであるRaspberry Pi Imagerから始まりました。重要なことに、このプロセスにはWi-Fi認証情報の事前設定とSSHの有効化が含まれていました。この先見性により、物理的なキーボードとモニターの必要性がなくなり、その後のリモート管理が効率化されました。

12年前のRaspberry PiをSSH経由でリモート管理することは不可欠であることが証明されました。デバイスのローカルターミナルは非常に動作が遅く、操作が困難であるため、複雑なコマンドライン操作は退屈な試練となります。安定した応答性の高いSSH接続は、それまでイライラする体験だったものを、管理可能なエンジニアリング上の課題へと変え、コンパイルされたバイナリやモデルファイルのシームレスな転送を可能にしました。

Enjoying this? Get one like it in your inbox each morning.

one email a day · unsubscribe in two clicks · no third-party tracking

このアプローチにより、ワークフローが大幅に簡素化されました。カスタムファームウェアやGGUFのようなモデル形式をさらに深く掘り下げたい方には、ggml/docs/gguf.md at master · ggerganov/ggml - GitHubのようなリソースが、そのような低レベルの最適化に必要な基盤となる技術仕様に関する貴重な洞察を提供します。

決定的な「no-mmap」メモリハック

Falcon-H1-Tinyモデルを12年前のRaspberry Piに搭載する道のりには、最後の、そして厄介なメモリの障害がありました。それは、ファイルをメモリにマッピングすること、一般に`mmap`として知られているものです。`mmap`は、現代のオペレーティングシステムやハイエンドGPUが、ファイルの内容をプロセスのアドレス空間に直接マッピングすることで、大規模なモデルを効率的にロードする方法を提供しますが、その利点は、厳しく制約されたハードウェアでは負債となります。この技術は通常、メモリ管理のためにカーネルを活用し、データコピーを削減することでパフォーマンス向上をもたらします。

オリジナルのRaspberry Piのような、わずか512MBのRAMを搭載した32ビットシステムでは、`mmap`は重大な制限に直面しました。システムは、モデルファイルをマッピングするために必要な、単一の十分に大きな連続したアドレス空間ブロックを見つけるのに苦労しました。たとえ合計の空きメモリが存在したとしても、32ビットアドレス空間全体にわたる断片化により、`mmap`操作はしばしば失敗し、即座にアプリケーションのクラッシュにつながりました。これは、RAMの総量が不足しているという問題ではなく、より小さな32ビットアドレス範囲内で統一されたブロックを割り当てることができないという問題でした。

解決策は、特定の`llama.cpp`コマンドライン引数である`--no-mmap`とともに現れました。この重要なフラグは、モデルのロードにおけるメモリマッピングを明示的に無効にします。代わりに、`llama.cpp`はFalcon-H1-Tinyモデル全体をプロセスのヒープメモリに直接ロードすることを強制されます。このアプローチは、豊富で断片化されていないメモリを持つシステムではパフォーマンスが低下する可能性がありますが、ビンテージハードウェアにとっては不可欠であることが証明されました。

ヒープへのロードは、大きな連続したアドレスブロックの必要性を回避します。ヒープメモリマネージャーははるかに柔軟で、必要に応じてより小さな非連続チャンクを割り当て、フラグメンテーションをより動的に管理できます。これにより、サイズが縮小されたにもかかわらず、完全な量子化モデルがRaspberry Piの貴重な512MBのRAM内に安定して常駐することが可能になりました。`--no-mmap` の調整がなければ、推論プロセスはモデルの初期化中に常にクラッシュしていました。

この一見些細なフラグは、安定したメモリ管理を達成するためのパズルの最後の、決定的なピースでした。これは、Falcon-H1-Tiny モデルが最終的にロードされ、プロンプトの処理を開始できるようになり、12年前のRaspberry Piが思考できるかどうかを実験で真に判断することを可能にした重要な調整でした。`--no-mmap` フラグは、潜在的な行き止まりを、ローカル LLMを実行するための実行可能な道へと変えました。

最初の言葉:真実の瞬間

イラスト:最初の言葉:真実の瞬間
イラスト:最初の言葉:真実の瞬間

クロスコンパイルされた `llama.cpp` バイナリが12年前のRaspberry Piで最初の推論テストを実行したとき、真実の瞬間が訪れました。研究者たちは、最も積極的な圧縮であるFalcon-H1-Tinyモデルの2ビット量子化バージョンから始めました。結果は落胆させるものでした。モデルは支離滅裂なナンセンスしか生成せず、約3秒ごとに1つのトークンしか生成しませんでした。

この性能は、特に言語理解の下限にあるモデルを扱う場合、そのような制約のあるハードウェアでの極端な量子化の限界を確認しました。数値精度の大幅な低下により、モデルはほとんど使用できなくなり、基本的な言語の一貫性さえも捉えることができませんでした。

4ビット量子化モデルで画期的な進展がありました。プロンプトを与えると、首尾一貫した論理的な応答を生成することに成功しました。この決定的な瞬間は、この取り組み全体を検証し、ローカルLLMがビンテージハードウェア上で、ゆっくりではあるものの、実際に「思考」できることを証明しました。理にかなった出力を生成できる能力は、このプロジェクトの実現可能性を示しました。

さらに限界を押し広げるため、チームは8ビット量子化モデルをテストしました。このバージョンは、より高い忠実度を提供する一方で、顕著な「知識のギャップ」を露呈しました。例えば、ブリュッセルがベルギーの首都であることを正しく識別しましたが、アルバニアの首都を思い出すことができませんでした。

この相違は、コンパクトなLLMの基本的な側面、すなわち9000万パラメータモデルの有限な知識容量を浮き彫りにしました。より積極的でない量子化であっても、Falcon-H1-Tinyは、より大きなモデルに埋め込まれている広範な世界知識を単純に欠いています。この結果は、極端な圧縮に伴う本質的なトレードオフを強調しており、節約されたすべてのビットが忘れられた情報の一部を意味する可能性があります。

未来はあなたが思うよりも小さい

12年前のRaspberry PiでローカルLLMを正常に実行したこの大胆な実験は、単なる技術的好奇心を超越しています。これは、真に有用な人工知能が、強力なクラウドサーバーだけでなく、信じられないほど制約された低電力のエッジデバイスでも動作できることを明確に示しています。この能力は、高度な計算とインテリジェントな意思決定がデータセンターやハイエンドのワークステーションに限定されず、私たちの物理環境に浸透する未来を切り開きます。

このパラダイムシフトを推進する重要なトレンドは、より小型で高度に最適化されたモデルの絶え間ない開発です。Technology Innovation Institute (TII) の9,000万パラメータを持つFalcon-H1-Tinyや、IBMのGraniteシリーズのような組織は、厳しいメモリと処理の制約内で機能する言語モデルを積極的に設計しています。Transformer + Mambaのようなハイブリッド設計をしばしば活用するこれらのコンパクトなアーキテクチャは、従来のcloudをはるかに超えて洗練されたAIをアクセス可能にし、最小限のリソースで可能なことの境界を押し広げています。

スマートホーム家電からレガシーな産業制御システムまで、無数の日用品にAIが直接組み込まれることを想像してみてください。重要なオフラインインフラストラクチャ、遠隔地の科学機器、あるいは常にcloud接続が非現実的または不可能なパーソナルウェアラブルにおけるその可能性を考えてみてください。これにより、機密情報を外部サーバーに送信することなく、インテリジェントエージェントが完全にon-deviceで動作できるようになり、予防保全、ローカライズされたデータ処理、およびプライバシーの強化のための広大な道が開かれます。これは、真に自律的で安全なローカルインテリジェンスへの移行です。

オリジナルのRaspberry Piでの2ビットモデルの出力速度が3秒に1トークンと遅いままですが、この実験の成功は深遠な概念実証 (proof-of-concept) です。これは、真に分散型AI (decentralized AI) の可能性を検証し、私たちがテクノロジーとどのように相互作用し、将来のアプリケーションをどのように構想するかを根本的に再構築します。これはcloudベースのLLMを置き換えることではなく、遍在するエネルギー効率の高いインテリジェンスでそれらを補完することです。AIの未来は、これまで以上に小さく、より普及し、私たちに近づいており、ポータブルインテリジェンスの新時代を約束しています。ハードウェアの起源に関する詳細は、Raspberry Pi - Wikipedia) を参照してください。

あなたの番:この実験を再現する

このありそうもない偉業を再現する準備はできていますか?12年前のRaspberry Piで大規模言語モデルを実行するには精度が求められますが、ツールは利用可能です。第一世代のRaspberry Pi(または同様のARMv6デバイス)、`llama.cpp`推論エンジン、クロスコンパイル用の`dockcross`環境、そしてFalcon-H1-TinyのようなGGUF量子化モデルが必要です。この実験は、驚くほど制約されたハードウェアから有用なAIが出現しうることを証明しています。

まず、利用可能なRAMを最大化するために、Raspberry Pi OS Liteのような最小限のOSをターゲットデバイスにフラッシュすることから始めます。次に、より強力なマシンで`dockcross`を使用して`llama.cpp`バイナリをクロスコンパイルし、特にARMv6をターゲットにします。重要なコンパイルフラグには、NEON、OpenMP、およびshared librariesの無効化が含まれ、互換性と軽量なフットプリントを確保します。これにより、Pi自体での推定18時間のコンパイル時間とメモリ障害を回避できます。

カスタムビルドされた`llama.cpp`実行可能ファイルと、目的のGGUF量子化モデル(おそらく4ビットのFalcon-H1-Tiny)をSCP経由でRaspberry Piに転送します。推論には、`--no-mmap`フラグを付けてバイナリを実行します。この重要なメモリハックは、限られたRAMを持つ32ビットシステムに固有のアドレス空間断片化の問題を回避し、モデルをヒープに直接ロードして安定した動作を可能にします。トークン生成速度は数秒に1トークンを予想してください。

支離滅裂なものから機能的な出力への道のりは、あなたが探求すべきものです。この画期的なプロジェクトの詳細については、I Ran a Local LLM on 12-Year-Old Raspberry Pi (It Actually Worked!) をご覧ください。Falcon-H1-Tiny モデルは Hugging Face で、`llama.cpp` コンパイルスクリプトを含む詳細なセットアップ手順は BetterStackHQ GitHub で見つけることができます。edge AI の限界を押し広げ、あなたのヴィンテージハードウェアが何を達成できるか見てみましょう。

よくある質問

Raspberry Pi で実行できる最小の LLM は何ですか?

9000万パラメータの Falcon-H1-Tiny のようなモデルは、第一世代の Raspberry Pi で正常に実行されています。成功は、量子化と llama.cpp のような軽量な推論エンジンに大きく依存します。

古いハードウェアで AI を実行するために、なぜ量子化が不可欠なのですか?

量子化は、LLM の重みの精度を下げること(例:16ビットから4ビットへ)により、メモリフットプリントと計算コストを削減します。これは、限られた RAM と処理能力を持つデバイスにモデルを適合させるために不可欠です。

クロスコンパイルとは何ですか、そしてなぜそれが必要だったのですか?

クロスコンパイルとは、あるコンピュータシステム(現代のノートパソコンなど)で、別のシステム(古い Raspberry Pi など)で実行することを目的としたコードをビルドするプロセスです。Pi 自体での数日間にわたるコンパイル時間や潜在的なメモリクラッシュを避けるために必要でした。

どんな古いコンピュータでも現代の AI を実行できますか?

この実験で示されているように技術的には可能ですが、かなりの技術的専門知識、llama.cpp のような特定のソフトウェア、互換性のある小型モデル、そして古い CPU 命令セットのようなハードウェアの制限に対する回避策が必要です。パフォーマンスも非常に遅くなります。

Found this useful? Share it.

One short daily email of tools worth shipping. No drip funnel.

one email a day · unsubscribe in two clicks · no third-party tracking

🚀もっと見る

AI最前線をキャッチアップ

Stork.AIが厳選したAIツール、エージェント、MCPサーバーをご覧ください。

P.S. 使えるものを作りましたか? Storkに掲載