AirLLM は 4GB GPU 1 台で 70B LLM 推論を可能にする

概要

AirLLM は、デバイス上に同時に 1 層だけモデルを保持することで、コンシューマー向け GPU でも非常に大規模な言語モデルを実行できるようにします。

AirLLM の仕組み

このライブラリはモデルを個々の層に分割し、計算に必要になったときだけディスクから GPU へその層をストリーミングします。これにより、VRAM の必要量はパラメータ総数ではなく、最も大きな層のサイズで決まります。

対応モデルと VRAM 要件

AirLLM は幅広いオープン LLM に対応しています。以下の表はデフォルト(非圧縮)モードで使用した場合の各モデルのおおよその VRAM 必要量を示しています。

  • Qwen3、Mistral、Phi(≈8 B) – 約 1–2 GB
  • Qwen3‑30B、Mixtral(MoE) – 約 1–3 GB
  • Qwen3‑235B(MoE) – 約 3 GB
  • Llama 3.x 70B(フル精度) – 約 4 GB
  • Llama 3.1 405B – 約 8 GB
  • DeepSeek‑V3(671 B) – 約 12 GB
  • Kimi K3(2.8 T) – RTX 6000 Ada で測定した約 3.72 GB VRAM(追加の依存関係が必要)

パフォーマンス特性

デフォルトモードでモデルを実行すると、各トークンごとに層のロードがディスクから行われるためレイテンシが高くなります。ライブラリはオプションでブロック単位の圧縮を提供しており、精度低下はほとんどなく最大 3 倍の推論速度向上が期待できます。Kimi K3 を RTX 6000 Ada で実行したユーザー報告では、トークンあたり約 292 秒と測定されています。

セットアップと使用方法

  1. パッケージをインストール: pip install airllm
  2. AutoModel.from_pretrained(<repo_id>) でモデルを初期化。
  3. (オプション)圧縮を有効化: compression='4bit' または compression='8bit' を追加し、bitsandbytes がインストールされていることを確認。
  4. (オプション)ゲート付きモデル用に hf_token 引数で Hugging Face トークンを提供。
  5. (オプション)layer_shards_saving_path を設定して分割層の保存先を制御。
  6. (オプション)profiling_mode=True をオンにしてタイミングの内訳を表示。
  7. クイックスタート例に示すように生成を実行。

※ 初回実行時にモデルが分解され層のシャードが保存されるため、Hugging Face キャッシュディレクトリに十分な空きディスク容量が必要です。

プラットフォームサポート

  • Linux と Windows: 標準の PyTorch インストール。
  • macOS: Apple Silicon のみサポート。mlxtorch を macOS セクションの指示に従ってインストールする必要があります。

制限とトレードオフ

  • レイテンシ: 層ごとのストリーミングによりインタラクティブなチャットは遅くなり、バッチ処理や夜間ジョブに向いています。
  • ディスク使用量: すべての層シャードを保存するとかなりの容量を消費します。delete_original=True を有効にすれば変換後のバージョンだけを残すことができます。
  • デフォルトでは量子化なし: 基本アプローチは精度維持のため量子化を行わず、圧縮はオプションの付加機能です。
  • 特定のモデル(例: Kimi K3)には compressed-tensorsflash-attn、CUDA 12 ビルドの PyTorch、transformers 4.56.x など追加要件があります。

コミュニティの視点

Hacker News のコメント欄では、興奮と実務的な懸念の両方が指摘されています:

"Kimi K3 on RTX 6000 Ada (48GB) takes 292 s/token" – @imenani "Seeing a lot of these ‘run 1TB models with 1GB RAM’ projects recently. Most seem vibe coded and probably won’t be maintained." – @roger_ "I love it how the rampocalypse is pushing people to squash all the performance they can. I hope that this also leads to rethinking model architecture." – @seu "I’m still slightly confused on what this adds… Does this basically load layers in and out on demand? So I still have to download the full model to disk…" – @cpfohl "You can run any frontier model on your PC if you just wait long enough…" – @xg15 "The layer‑by‑layer streaming is clever. Curious how the throughput compares to running a quantized model on the same GPU — seems like quantization might still win on speed?" – @junsu22 "‘Can run’ and ‘is useful interactively’ are different benchmarks. At this latency, I can still imagine batch or overnight jobs being interesting; for chat, time to first useful answer matters much more…" – @Alisaqqt

これらのコメントは、AirLLM が驚異的なメモリ効率を実現している一方で、レイテンシがインタラクティブ利用を制限し、llama.cpp や unsloth といった量子化推論エンジンとの比較が不可欠であることを示しています。

Sources

関連

  • プロジェクト
  • Dispatch
  • プロジェクト
  • Dispatch
  • Dispatch