
2026/11/13 0:23
LLM を小型・古いデバイス上で動作させています
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
本プロジェクトの主な成果は、アイドル状態にある CPU、RAM、フラッシュストレージを効率的に活用することで、古いタブレットやテレビボックスといった非常に低消費電力のハードウェア上で大規模な AI モデルを実行できるようにすることです。オープンソースの llama.cpp フレームワークに独自のパッチを適用することで、開発者は Xiaomi TV Box S(第 3 世代)や iPad Air(2013 年モデル)といったデバイスにパラメータ数 160 億の超大規模モデルを読み込むことに成功しました。限られたメモリを管理するためには、RAM にアクティブなモデル部分のみを残し、重みデータをフラッシュストレージから直接ストリーミングさせるアプローチを採用しています。この成就是、加速計算のための 1 ビットルックアップテーブルの使用、専門家ページング(expert paging)、および稀に使用される語彙行の排除といった特定の最適化により達成されました。
この機能は、レガシーな電子機器を能力あるローカル推論エンジンへと変容させ、高価な新ハードウェアやハイエンド GPU が不要なまま、大幅な速度向上(例:テレビボックスで 5.1 tokens/s)を実現します。本プロジェクトは、専用サーバーファームではなくリサイクルされた技術を通じてより多くの古いプロセッサとの互換性を拡大し、人工知能の普及を推進することを目的としており、その詳細は 160 回以上の実験が行われた広範なラボノートとして記録されています。
本文
ご所有の最小限のハードウェアで最大規模の言語モデルを実行する方法 (Smolmaxxing)
Smolmaxxing は、TV ボックスや古いタブレット、シングルボードコンピュータ、ルーターといった小型デバイスの性能限界を突破し、可能な限り大規模な言語モデルを実行するプロジェクトです。 このリポジトリに記載されているすべての数値は、実機上で測定されたものです。
✅ 既にテスト済みデバイスの実績
📺 Xiaomi TV Box S(第 3 世代)
| 項目 | 詳細 |
|---|---|
| チップ | Amlogic S7D(4 コア Cortex-A55) |
| RAM | 1.9 GB(利用可能約 1 GB) |
| OS | Android 14(ルート未適用) |
| 日常モデル | Qwen3.5-2B(7.7 トークン/秒) Bonsai-1.7B (1 ビット)(24–26 トークン/秒) |
| 最大モデル | Ling-mini-2.0 (16B)(5.1 トークン/秒) |
📱 iPad Air(2013 年モデル)
| 項目 | 詳細 |
|---|---|
| チップ | Apple A7(2 コア) |
| RAM | 1 GB(利用可能約 700 MB) |
| OS | iOS 12.5.7(ジャイルブレイク済み) |
| 日常モデル | Qwen3.5-2B(7.7 トークン/秒) Bonsai-1.7B (1 ビット)(24–26 トークン/秒) |
| 最大モデル | Ling-mini-2.0 (16B)(2.6–4.5 トークン/秒) |
💡 重要な技術: 約 1 GB の RAM で 8B および 16B のモジュール化専門家(MoE)モデルを実行可能です。これは、各モデルの一部をメモリに残し、残りをフラッシュメモリから読み取るストリーミング技術によるものです。
🚀 今後対応予定のデバイス
スマートフォン、シングルボードコンピュータ、ルーターなどへの拡張が計画されています。この技術はハードウェアに依存しない設計です:
- 1 ビットカーネル: 基本的な NEON 機能のみが必要です。
- フラッシュストリーミング: RAM より大きなモデルを搭載したあらゆる Linux または Android デバイスで動作します。
⚙️ 仕組みについて
すべての機能は
llama.cpp に施すパッチによって実現しています。
1. チップ向けに最適化されたカーネル
- Cortex-A55: 2 ビットおよび三元値形式の 1 ビット用ルックアップテーブルを再パッケージ化。
- Apple A7: ドット積演算指令を持たないバージョンへの対応。
2. モデルあたりの RAM 使用量削減
- 不要な語彙の削除: 小さなモデルでほとんど使われない語彙の出力行を削除。
- 「ヘッドレス」モード: TV ボックスなどでは、モデル実行中に不要な関数起動や Google サービスを停止可能にします。
3. フラッシュからページされた専門家(MoE)
- 動的読み込み: トークンごとに一部の専門家のみを使用するため、頻繁に使う専門家は RAM に保持し、他は必要な時だけフラッシュから読み込みます。
- 事前取得: 次のレイヤーのデータを事前に読み込むことで、8B および 16B モデルが 1 GB の環境でも動作します。
4. RAM より大きな密度型モデル用のストリーミング
- フラッシュメモリを全速力で行うストリーミング処理を実現しています。
詳細な仕組みについては
を参照してください。docs/how-it-works.md
🏁 クイックスタート
最も簡単な導入は、Hugging Face から用意されたモデルファイルを使用することです(※パッチ済み
llama.cpp が必要です)。
| デバイスタイプ | ドキュメントへのリンク |
|---|---|
| TV ボックスまたは ARMv8.2 アンドロイドデバイス | |
| ジャイルブレイクされた iPad (iOS 12) | |
すべてのモデルファイルと再構築方法については
を参照してください。docs/models.md
📚 ドキュメントガイド
| 文書名 | 説明 |
|---|---|
| docs/tv-box.md | デバイス #1:TV ボックスで実行された全モデル(速度と品質)。 |
| ipad-air/README.md | デバイス #2:iPad Air の結果、セットアップ手順、スクリプト。 |
| docs/how-it-works.md | カーネル、メモリ最適化、専門家ペーサー、ストリーミングエンジンについて。 |
| docs/models.md | モデルダウンロード先、再構築ターゲット、チェックサム情報。 |
| docs/lessons.md | 成功事例と失敗した試みについての記録。 |
| EXPERIMENT.md | 完全な実験ノート:160 の実験成果および失敗例。 |
📂 リポジトリ構成
| パス | 説明 |
|---|---|
| TV ボックス向けの変更(iPad は ) |
| モデル再構築、GGUF リライティング、ベンチマーク、カーネルチェックツール |
| リアルタイムトークンストリームチャットページおよびランチャー |
| iOS 12 ビルド、smolchat、展開スクリプト、ベンチマークスクリプト |
| 全チャットベンチマーク () および生ログ |
| 語彙リストと評価用テキスト |
| 最初の実験:260K パラメータ規模の物語モデル |
| Zig ラッパー(クロスコンパイルによる静的 aarch64 バイナリ作成) |
⚖️ ライセンスとクレジット
ライセンス: MIT
※
llama.cpp のパッチは llama.cpp(MIT ライセンス)の派生物です。モデルウェイトや評価用テキストには各自のライセンスが適用されます。
主なクレジット:
- 開発基盤:
およびllama.cppllama2.c - モデル貢献者: Qwen, unsloth (GGUF/重要度行列), PrismML (Bonsai), inclusionAI (Ling-mini-2.0), tablinum (Moon-Beam), bartowski & mradermacher (GGUF), Google (Gemma), stories260K
- ジャイルブレイクツール: Amethyst (iOS 12)
- バナー: Archivo (SIL OFL フォント)
- ロゴ: Google Noto Emoji(「つまむ手」の絵文字) - Apache 2.0 ライセンス