· ローカルAI

Rust製分散推論エンジンmdmaが公開され家庭用PCで連合ネットワークを構築可能になる

25秒でわかる内容解説

seurosがRust製の分散型推論エンジンmdmaをGitHub上で公開した。既存のデスクトップやノートPC、Mac、ミニPCを連携させ、クラウドに依存せずに推論処理を分散する仕組みを実装している。GGUF形式のモデルを読み込み、独自に記述した演算カーネルで動作する。個人が所有するハードウェアの集合でLLMを動かせるため、ローカルAI環境の構築がさらに柔軟になる。

GGUFモデルを独自カーネルで処理する分散推論の仕組み

seurosがRust製の分散型推論エンジンmdmaをGitHub上で公開した。GGUF形式のモデル(LLMのファイル形式)を読み込み、CPUや各種GPUに対応する独自カーネルで推論を実行する。gRPC(分散システム間でデータを高速に送受信するプロトコル)とmTLS(双方向に認証を行うTLS通信)を用いて複数の端末を連合させ、中央スケジューラやクラウドに依存しない環境を構築する。

There is no central scheduler, no shared certificate authority and no cloud.

中央のスケジューラも共有CAもクラウドもない。

メモリ割り当ては重み、KVキャッシュ(推論時に保持する中間データ)、作業領域を事前に予約する。収まらないリクエストは初手で拒否し、プロセスの強制終了を防ぐ。同じモデルのエイリアスは一度だけアップロードされ、統合メモリは重複してカウントされない。写真ではmdmaのリポジトリトップページに表示されるパッケージ構成とコマンド一覧。

mdmaのリポジトリトップページに表示されるパッケージ構成とコマンド一覧
mdmaのリポジトリトップページに表示されるパッケージ構成とコマンド一覧(出典:Hacker News)

下の画像ではパッケージ構成と主要なコマンド一覧が示されている。mdma infoやdoctorでハードウェアの在庫を確認し、planでモデルの収まりを計算できる。バッテリー駆動時は消費電力に合わせ制限を縮小する。GPUに収まらないモデルはauto設定で最も大きい層からGPUに配置し、残りをCPUに保持する。

llamaやgemma4、qwen2、glm4などのアーキテクチャをサポートする。チェックポイントゲートはllama.cppの参照実行と照合し、貪欲法でのトークン出力と対数確率の誤差範囲を厳格に検証する。数値計算を高速化するint8活性化などのファストパスは、f32の参照モードで裏付けられる。

主要バックエンドと対応ハードウェア
バックエンド対応ハードウェア
CPU任意のCPU(FreeBSD含む)
ROCmAMD RDNA4
VulkanAMD APUおよびpre-RDNA3
Level ZeroIntel Xe iGPU
CUDANVIDIA(ドライバーAPI)
MetalApple silicon

市販ハードウェアを起点にしたプライベート推論環境の構築

mdmaは既存の家庭用PCやミニPC、ホームサーバーを起点に設計された。それぞれの端末が異なるGPUを持つ場合や、GPUを一つも持たないケースでも動作する。目標は全ての端末を推論に活用し、選んだ人々のネットワークにプロンプトを渡すことである。

mdma starts from the machines people already have: desktops, laptops, Macs, mini PCs and home servers, each with a different GPU or none at all.

mdmaは人々が既に持つマシンから始まる。デスクトップ、ノートPC、Mac、ミニPC、ホームサーバーであり、それぞれ異なるGPUを持つか、一つも持たない。

公開版はより大型のプライベートシステムから抽出されたもので、市販ハードウェアで約1000トークン毎秒の性能を記録していた。現在の再実装は進行中で、まだその数値には達していない。計算とメモリの平面は意図して手書きされており、ベンダー固有のオーバーヘッドを排除する。

信頼できる端末がフェデレーションを形成する。各ピアは明示的に登録され、TLS 1.3で固定された鍵による双方向認証を行う。カタログは署名され、ルートは正確なモデルアーティファクトと実行プロファイルに固定される。リクエストは一つのピアで完全に実行され、失敗した作業は他の場所で静かに再試行されない。

ハードウェア最適化を巡るアーキテクチャとトランスパイラの議論

Hacker Newsではmdmaの実装方式について技術的な議論が交わされている。RustからCへトランスパイルされたコードよりも、各種ISA(命令セットアーキテクチャ)のアセンブリを好むという意見が投稿された。トランスパイラ経由で生成されたCコードの動作確認が求められている。

I would prefer assembly in various ISAs. Does the C code generated by the rust->plain and simple C transpiler work?

私は各種ISAのアセンブリを好む。Rustから単純なCへトランスパイルされたコードは動作するのか。

全体のライセンスはBSD-2-Clauseである。Vulkanカーネルの一部はllama.cppから適応され、MITライセンスで利用されている。開発者はバックエンドごとに異なるツールチェーンを使う。ROCmではgfx1201がデフォルトだが、環境変数で上書きできる。

CUDAはドライバーAPIのみを使用し、CUDAツールキットを必要としない。IntelのLevel Zeroもoclocコンパイラだけで動作する。VulkanはglslangValidatorとlibvulkanを必要とする。これらの違いにより、ユーザーは自身の環境に合わせてビルドオプションを選択できる。

特定のアーキテクチャは近似されず、サポート外の場合は拒否される。テストはフィクスチャフリーのカーネルテストと、外部チェックポイントを読み込むテストに分かれる。外部テストはデフォルトで無効化され、環境変数からモデルパスを取得する。

電話機やNPUを組み込んだ次世代配置機能のロードマップ

公開版の機能拡張として、電話機の参加が計画されている。エンコーディングパスでLayaが実行中の場合、埋め込みモデルを供給する予定である。一つのマシン内で複数のデバイスにまたがる配置や、MoE(Mixture of Experts)の専門家配置も検討されている。

AMD XDNAやIntel NPU(ニューラルプロセッサユニット)をプリフィル(プロンプト処理)の共演算プロセッサとして使用する研究項目もある。NPUはiGPUと同じDDRメモリからストリーミングするため、メモリ帯域制約のあるデコード(トークン生成)ではiGPUに勝てない。ただしプリフィル処理では優位性を発揮できる可能性がある。

電話機の参加と埋め込みモデルの供給に加え、複合バックエンドが実装される。レイヤーや演算をデバイスに割り当て、統合メモリではゼロコピーを実現する。現在の実行環境はRust 1.99以上を必要とする。2026年10月13日に公開されたmdmaは、実験段階から安定化へ向かっている。

用語の注釈

GGUF
llama.cppで使用されるLLMモデルのファイル形式。GGMLの次世代形式として量子化データやメタデータを格納する。(参考:GGUF量子化ってなんだ?〜ローカルLLMを爆速で動かすための ...)
mTLS
双方向に証明書で認証を行うTLS通信プロトコル。クライアントとサーバの両方が身元を確認し合う仕組みである。(参考:mTLS(相互TLS認証)入門|サービス間通信をクライアント証明 ...)
gRPC
分散システム間でデータを高速に送受信する通信プロトコル。複数のPCを連携させて推論負荷を分散する。(参考:【完全解説】gRPCとは何か?仕組み・メリット・実務での使い方 ...)

出典