MLC LLM: すべてのプラットフォーム向けのユニバーサルデプロイメントエンジン

MLC LLM は、すべてを一つにまとめたオープンソースの機械学習コンパイラで、Linux、Windows、macOS、iOS、Android、ウェブブラウザ上でネイティブ性能で大規模言語モデルを実行できるようにします。Vulkan、ROCm、CUDA、Metal、WebGPU 用に高度に最適化されたカーネルにモデルを変換することで、高価なクラウドホスティングの必要性を排除します。この記事では、コアアーキテクチャ、プラットフォーム対応、クイックインストール手順、および実際のユースケースを紹介します。研究者でもアプリ開発者でも、わずか数行のコードでデータセンターからエッジまでのLLM実験を高速化できる方法をご覧ください。

MLC LLM: すべてのプラットフォーム向けのユニバーサルデプロイメントエンジン

大規模言語モデル(LLM)は、チャットボットからコードアシスタントまで、あらゆるものの背後で動力源となっています。しかし、PC、モバイルデバイス、さらにはブラウザでローカル実行することは、依然として痛みを伴う課題です。 MLC LLM は、機械学習コンパイラとして機能し、任意のLLMを高性能でクロスプラットフォームな推論エンジンへ変換することでこの問題を解決します。

なぜ MLC LLM が重要なのか

  • ゼロコストのクラウドフリー推論 – GPU-as-a-Service のサブスクリプションは不要です。
  • 統一コードベース – 一度作ればどこでも動く:Windows、Linux、macOS、iOS、Android、WebGPU。
  • ネイティブパフォーマンス – デスクトップではVulkan、Apple Silicon では Metal、NVIDIA/AMD では CUDA/ROCm、ブラウザでは WebGPU を活用します。
  • オープンソースコミュニティ – GitHub で 20,000 以上のスター、150人以上の貢献者、活発なイシュー トラッカーを備えています。

コアアーキテクチャ

Input Model (ONNX / PyTorch / TensorFlow) → 
  TensorIR ↔ MLC Compiler ↔ MLCEngine kernels → 
  Runtime (REST/API/JS/Swift/Kotlin) 
  1. TensorIR – テンソル演算とその局所性を表す低レベルIR。
  2. MLC CompilerTensorIR の最適化、スケジュール変換、プラットフォーム固有のコード生成を適用します。
  3. MLCEngine – 軽量でスレッドセーフな推論エンジン。OpenAI 互換の REST API、Python モジュール、iOS/Android 用のネイティブバインディングを公開します。

このコンパイラは、TensorIRMetaScheduleTVM といった実績ある研究を活用し、効率的なカーネルを生成します。また、確率的プログラム最適化 機能により、GPU に最適なスケジュールを自動で発見します。

対応プラットフォームと GPU

プラットフォーム GPU 対応 バックエンド
Windows NVIDIA, AMD, Intel Vulkan, CUDA, ROCm
Linux NVIDIA, AMD, Intel Vulkan, CUDA, ROCm
macOS Apple M1/M2 Metal
iOS/iPadOS Apple A‑series Metal
Android Adreno, Mali OpenCL
Web Browser WebGPU + WASM

Tip: ノートパソコンに専用 GPU がなくても MLC LLM は CPU モードで走らせられ、パフォーマンスが落ちますが、クイックプロトタイピングに便利です。

クイックスタート – リポジトリから REST API へ

# 1. リポジトリをクローン
git clone https://github.com/mlc-ai/mlc-llm.git
cd mlc-llm

# 2. エンジンをビルド(CMake、Clang、およびターゲットプラットフォーム用のSDKが必要)
# 例: CUDA を有効にした Linux で:
./scripts/build_python.sh --cuda

# 3. Python パッケージをインストール
pip install .

# 4. REST サーバーを起動
mlc_llm serve --model meta-llama/Llama-2-7b-chat-hf

# 5. モデルに問い合わせ
curl -X POST http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{",