今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

lyogavin/airllm

低メモリGPUで超大規模言語モデルを実行するために、レイヤーごとの動的ストリーミングで推論メモリを劇的に削減するツールです。

手元に4GBのGPUが1枚あれば、それだけで70Bクラスのモデルをその場で動かせます。レイヤー単位のシャーディングと4bit/8bit量子化、プリフェッチによる読み込みと演算の重ね合わせで、量子化しても重みだけを圧縮するため入力が変わっても安定して動く点が実感できます。AutoModelでLlama・Qwen・ChatGLMなど主要モデルを切り替えながら、クラウド費用をかけずに自分のPCで405Bモデルの推論やファインチューニングまで試せるのが魅力です。

01 / 概要
何をするものか一文で言うと
ひとことで低メモリGPUで超大規模言語モデルを実行するために、レイヤーごとの動的ストリーミングで推論メモリを劇的に削減するツールです。

AirLLMは、70Bクラスの大規模言語モデルを量子化や蒸留、枝刈りなしに、単一の4GB GPUで推論できるようにするPythonパッケージです。レイヤー単位でモデルをディスクからストリーミング読み込みすることで、VRAM容量の制約を回避します。Llama、Qwen、ChatGLM、Mixtral、DeepSeek-V3、Kimi K3など多数のモデルアーキテクチャに対応した専用実装をairllmディレクトリに持っています。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

air_llm/airllm/airllm_base.pyを中核に、モデルをHuggingFaceのレイヤー単位で分割・保存し(persist配下のsafetensor_model_persister.pyなど)、推論時に必要なレイヤーだけを都度ディスクからGPUへロードして計算後に解放する仕組みです。これにより全レイヤーを同時にVRAMへ載せる必要がなくなります。auto_model.pyのAutoModelがHuggingFaceのrepo IDからモデル種別を判定し、airllm_qwen.pyやairllm_mixtral.pyなど個別クラスへ振り分けます(test_automodel.pyのマッピング表で確認できます)。MoE系(Kimi K3、DeepSeek-V3など)では、レイヤー全体ではなくトークンが実際にルーティングされたエキスパートだけをストリーミングする設計とREADMEに記載されています。CPU推論や非shardedモデル対応、プリフェッチによる計算とロードのオーバーラップなど、バージョンごとに機能が積み重なっています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    pip install airllmを実行し、パッケージとその依存関係(transformers、accelerateなど)が入る様子を確認します。

  2. STEP 02

    from airllm import AutoModel; AutoModel.from_pretrained(...)を呼ぶと、指定したHuggingFace repo IDのモデルが初回はダウンロードされ、レイヤー単位に分割・保存される処理が走ります(layer_shards_saving_pathで保存先を指定可能)。

  3. STEP 03

    分割処理が終わると推論が始まりますが、レイヤーを毎回ディスクから読み込むため、通常のtransformers推論より生成速度は明らかに遅くなります。

  4. STEP 04

    4GB前後のGPUで70Bモデルを動かす場合、初回のレイヤー分割に時間とディスク容量(元モデルとほぼ同等サイズ)が必要になる点に気づきます。

  5. STEP 05

    MoE系モデル(Kimi K3など)を試すと、READMEに記載の追加要件(compressed-tensors、flash-attn、特定バージョンのtransformers)を先に整えないと動かないことが分かります。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

手元のGPU VRAMが4GB程度しかなくても、70B級(さらにREADME記載では405Bや671B、2.8TのMoEモデルまで)のLLMをAutoModelという単一のインターフェースでロードし、通常のtransformersに近い書き方で推論できる状態が得られます。ただし引き換えに生成速度はレイヤー単位のディスクI/Oに依存するため遅くなります。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

レイヤーをディスクから都度ストリーミングする方式のため、生成速度はVRAMに全モデルを載せる通常推論より大幅に遅くなる点はREADMEの仕組み上避けられません。

02

requirements.txtはtransformers、peft、accelerateをGitHub直参照かつバージョン固定していない、または特定コミット指定であり、環境によって依存関係の解決結果が変わる可能性があります。

03

Kimi K3などの新モデルは、CUDA 12ビルドのtorch、特定バージョンのtransformers(4.56.x)、flash-attn必須など、モデルごとに個別の環境要件がREADMEに明記されており、一括対応ではない点に注意が必要です。

04

README本文の一部に外部サービスへの広告的リンク(AIエージェント推奨など)が含まれており、リポジトリの技術内容とは無関係な記述が混在しています。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

VRAMが乏しい環境で大型モデルをとにかく動かしてみたい人、量子化を避けて元の重みのまま70B以上のモデルを試したい研究者や個人開発者に向いています。逆に生成速度が重要な本番用途には、ファイルツリーとコードの構成(レイヤー単位のpersist機構、AutoModelのモデル振り分けロジック)から見て向かないと判断できます。ソースコードとテスト(test_automodel.py)、CI設定(release.yml)が実在し、モデル対応クラスも実ファイルとして揃っているため、README記載の仕組みの説明自体は信頼できますが、実際の推論速度や新モデルの動作可否はREADMEの記述に依存しており、この分析だけでは数値的な速度検証はできていません。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する