単一の4GB GPUでAirLLM 70Bを実行する

2026/08/03 20:15

単一の4GB GPUでAirLLM 70Bを実行する

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

以下の改訂は、リストに記載されたすべての主要なポイントを網羅しつつ、ナラティブを明確かつ簡潔に保つものです:

AirLLM は、量子化、蒸留、または剪定を施さずに低エンドのハードウェア上で極めて大規模な言語モデル(Kimi K3 2.8T パラメータを含む)を実行することを可能にするために、アクティブな専門家のみをストリーミングする疎な MoE アーキテクチャを利用します。具体的な例としては、単一の 4GB GPU に搭載された 70B モデル、3.72GB の VRAM に搭載された Kimi K3、約 12GB で動作する DeepSeek-V3(671B)、および約 3GB で動作する Qwen3-235B-A22B が挙げられます。このライブラリは、Llama 2/3/3.1/3.3/4、Qwen、DeepSeek、Mistral、Mixtral、Phi、Gemma、ChatGLM、Baichuan、および InternLM を含むほぼ全ての主要なオープンソース LLM ファミリーをサポートしています。バージョン 3.0(2026 年 6 月)では、FP8 プリシジョンが追加され、DeepSeek-V3 のような最新モデルへのアクセスが AutoModel を介して統一されました。Kimi K3 については、必要な依存関係として compressed-tensors、flash-attn、CUDA 12 PyTorch ビルド、および transformers 4.56.x が挙げられます。MacOS Apple Silicon サポート(単一のカード上で 70B モデルを実行)は、mlx ライブラリ(v2.8.2)を通じて利用可能です。構成オプションには、

compression
('4bit'、'8bit'、または 'None')、プロファイリングモード、レイヤーシャードの保存パス、およびディスク使用量を半減させるために
delete_original
が含まれます。モデル分割は大きなディスク空間を消費するため、「MetadataIncompleteBuffer」などのエラーは、しばしば HuggingFace キャッシュ容量が不十分なことを示しています。プリフェッチングにより、モデル読み込みと計算が重複され、対応するアーキテクチャ(現状では AirLLMLlama2 のみ)においては推論速度が最大 10% 向上します。meta-llama/Llama-2-7b-hf などのゲート付きモデルは、初期化時に HuggingFace API トークン(
hf_token
)を渡す必要があります。このプロジェクトは、SimJeg の Kaggle コンテストからのコードに基づいており、AirLLM(著者:Gavin Li、2023 年)として引用されています。

本文

AirLLM:軽量 GPU で超大規模 LLM を実行するガイド

AirLLM は推論時のメモリ使用量を劇的に削減し、特別な最適化なしに単一の 4GB GPU で大規模言語モデルを動作させるためのライブラリです。

主な特徴と実績

  • メモリ効率の向上: 700 億パラメータのモデルも単一 4GB GPU で動作します。
  • スパース型 MoE の活用: トークンごとに専門知識(expert)を選択してストリーミングさせ、層全体を保持する必要をなくします。
  • 対応可能な超大規模モデル例:
    • Llama 3.1 (405B): 8GB GPU で動作
    • DeepSeek-V3 (671B): 約 12GB GPU で動作
    • Kimi K3 (2,800B): 単一 RTX 6000 Ada で 3.72GB の VRAM で動作

更新履歴 (Changelog)

  • [2026 年 7 月] Kimi K3 (2.8T) サポート開始
    • 最大規模のオープンソースモデルが、単一カード(RTX 6000 Ada)でわずか 3.72GB の VRAM で動作します。
    • Expert 毎ストリーミング方式により、実際に利用される専門家のみを読み込みます。
    • 要件:
      pip install compressed-tensors flash-attn
      が必須です(モデルコードにより強制されます)。
    • 環境: CUDA 12 ビルドの torch と transformers 4.56.x を必要とします。
  • [2026 年 6 月] バージョン 3.0
    • FP8 モデルサポート追加および最新モデルへの対応。
    • DeepSeek-V3 (約 12GB)、Qwen3-235B (約 3GB) など、全ての主要モデルを単一の
      AutoModel
      で実行可能に。
  • [2024 年]
    • Qwen2.5 サポート開始 (v2.11.0)
    • CPU 推論および非分割モデルサポート開始 (v2.10.1)
    • Llama3.1 405B サポート開始、8bit/4bit 量化対応 (v2.11.0 以降)
  • [2023 年]
    • macOS 上での 700 億パラメータモデル実行サポート開始 (v2.8.2)
    • AirLLMMixtral, AutoModel, プレフェッチ機能など、様々な機能を追加・改善。
    • AirLLM 初版リリース

すばやく始める (Quick Start)

1. パッケージのインストール

まずは pip パッケージをインストールしてください。

2. 推論の実行

AutoModel
を初期化し、HuggingFace のリポジトリ ID またはローカルパスを入力します。

from airllm import AutoModel

MAX_LENGTH = 128
# リポジトリ ID をそのまま渡すだけで動作します:
model = AutoModel.from_pretrained("Qwen/Qwen3-32B")

# 同様に、より大きなモデルも実行可能です:
# model = AutoModel.from_pretrained("Qwen/Qwen3-235B-A22B")     # ~3GB で動作
# model = AutoModel.from_pretrained("deepseek-ai/DeepSeek-V3")  # ~12GB で動作

# ローカルパスを使用する場合:
# model = AutoModel.from_pretrained("/path/to/local/model")

input_text = 'What is the capital of United States?'

input_tokens = model.tokenizer(input_text,
    return_tensors="pt", 
    return_attention_mask=False, 
    truncation=True, 
    max_length=MAX_LENGTH, 
    padding=False)

generation_output = model.generate(
    input_tokens['input_ids'].cuda(), 
    max_new_tokens=20,
    use_cache=True,
    return_dict_in_generate=True)

output = model.tokenizer.decode(generation_output.sequences[0])
print(output)

注意: 推論時、モデルは最初に層ごとに分解され保存されます。HuggingFace のキャッシュディレクトリに十分なディスク容量があることを確認してください。


モデル圧縮 (Compression)

ブロック単位量子化に基づく機能で、推論速度を最大 3 倍向上させます。精度の低下はほとんどありません。

有効にする手順

  1. bitsandbytes のインストール:
    pip install -U bitsandbytes
    
  2. AirLLM の更新確認:
    pip install -U airllm
    
  3. モデル初期化時に引数を指定:
    from airllm import AutoModel
    
    model = AutoModel.from_pretrained("garage-bAInd/Platypus2-70B-instruct",
                         compression='4bit') # '8bit' も指定可
    

圧縮と量子化の違い

  • 標準的な量子化: 重みとアクティベーションの両方を量子化する必要があるため、精度維持が難しい。
  • AirLLM コンプRESSION: ボトルネックはディスク読み込みであるため、重みの部分のみを量子化すればよく、精度を確保しやすい。

設定オプション (Configurations)

モデル初期化時の主要な引数:

引数説明値の例
compressionブロック単位量子化の有無
'4bit'
,
'8bit'
,
None
(デフォルト)
profiling_mode実行時間消費量の出力有無
True
,
False
(デフォルト)
layer_shards_saving_path分割モデルの保存パスローカルパス指定
hf_tokenゲート付きモデルの認証トークンHuggingFace API トークン
prefetchingモデル読み込みと計算の重畳機能
True
(デフォルト,
AirLLMLlama2
限定)
delete_original元の HF モデルを削除してディスク容量節約
True
,
False

MacOS での動作

Linux と同様に、必要なライブラリをインストールしてコードを実行すれば動作します。

要件

  • mlx
    torch
    のインストールが必要。
  • Python ネイティブのインストールが必要な場合があります。
  • 対応プラットフォーム: Apple Silicon 専用。

サンプルコード (MacOS)

from airllm import AutoModel
MAX_LENGTH = 128
model = AutoModel.from_pretrained("THUDM/chatglm3-6b-base")

input_text = ['What is the capital of China?']
input_tokens = model.tokenizer(input_text,
    return_tensors="pt", 
    return_attention_mask=False, 
    truncation=True, 
    max_length=MAX_LENGTH, 
    padding=True)

generation_output = model.generate(
    input_tokens['input_ids'].cuda(), 
    max_new_tokens=5,
    use_cache=True,
    return_dict_in_generate=True)

print(model.tokenizer.decode(generation_output.sequences[0]))

対応モデル (Supported Models)

実質的なすべての人気オープン LLM と**开箱即用 (即座に動作)**します。主なファミリー:

  • Llama: 2 / 3 / 3.1 / 3.3 / 4
  • Qwen: 1 / 2 / 2.5 / 3 (MoE, FP8 含む)
  • DeepSeek: V2 / V3 / R1
  • Mistral & Mixtral
  • Phi, Gemma
  • ChatGLM, Baichuan, InternLM, Yi

小さな GPU で大きなモデルを実行するコツ

AirLLM は常に GPU に層を 1 つしか保持しません。必要な VRAM は総モデルサイズではなく、各層のサイズによって決まります。これにより、6710 億パラメータのモデルもホビー用カードで動作します。

モデルサイズ必要 VRAM (目安)
Qwen3 / Mistral / Phi≈8B~1–2 GB
Qwen3-30B / Mixtral (MoE)30–47B~1–3 GB
Qwen3-235B (MoE)235B~3 GB
Llama 3.x (全精度)70B~4 GB
Llama 3.1405B~8 GB
DeepSeek-V3671B~12 GB

すべてのモデルは単一行のコードで実行可能です。特別なセットアップは不要。


FAQ (よくある質問)

1.
MetadataIncompleteBuffer
エラーが発生した

  • 原因: ディスク容量不足。モデル分割プロセスに大量の一時ファイルが必要。
  • 解決策: ディスク容量を増やすか、HuggingFace の
    .cache
    をクリアして再実行してください。

2.
ValueError: max() arg is an empty sequence
エラーが発生

  • 原因:
    AirLLMLlama2
    クラスで QWen や ChatGLM モデルを読み込んでいるため。
  • 解決策:
    AutoModel
    を使用してください。
    from airllm import AutoModel # AirLLMLlama2 の代わりにこちらを使用
    model = AutoModel.from_pretrained("Qwen/Qwen-7B")
    

3.
401 Client Error: Repo model ... is gated
エラー

  • 原因: ゲート付きモデルへのアクセスに HuggingFace API トークンが必要。
  • 解決策:
    hf_token
    引数にトークンを渡す。
    model = AutoModel.from_pretrained("meta-llama/Llama-2-7b-hf", 
                                      hf_token='YOUR_HF_API_TOKEN')
    

4.
ValueError: Asking to pad but the tokenizer does not have a padding token

  • 原因: トークナイザーにパディングトークンがない設定。
  • 解決策: パディングを無効化 (
    padding=False
    ) か、設定を調整する。
    input_tokens = model.tokenizer(input_text, ..., padding=False)
    

引用とサポート

BibTeX 引用

AirLLM が研究に役立つ場合は、以下のように引用してください。

@software{airllm2023,
  author = {Gavin Li},
  title = {AirLLM: scaling large language models on low-end commodity computers},
  url = {https://github.com/lyogavin/airllm/},
  version = {0.0},
  year = {2023},
}

クレジット

多くのコードは Kaggle 競技会での SimJeg 氏の作業に基づいています。

  • GitHub: @SimJeg
  • コードと議論への感謝を表明します。

スポンサー情報:Bloome

クラウド上で AI エージェントチームをゼロセットアップで構築・実行可能プラットフォーム。

  • グループチャットにスキルを追加し、ワンクリックで実行・共有。
  • @mention でタスクを割り当てられる AI アシスタント機能付き。

👉 Bloome を試す (リンク準備中)


コントリビュート

コードへの貢献やアイデア、議論を歓迎します!

  • 有用であれば またはコーヒーを購入してください!

同じ日のほかのニュース

一覧に戻る →

2026/08/04 6:13

LLM は専門性を報酬とする

## 日本語翻訳: 大規模言語モデル(LLM)は、CSS など基本的なデジタルタスクへの参入障壁を下げていますが、深いドメイン知識の必要性を排除するものではありません。一般的に応用提示技術(generalist prompting techniques)を習得すれば真の価値を引き出せるという一般的な誤解がありますが、複雑な問題解決には特定の分野の知識が不可欠であり、それによって AI を効果的に導く必要があります。数学者のテレンス・ tao の LLM に関する研究に示されるように、専門的な成果は簡潔であるといったスタイル上のヒントではなく、真の理解から生じます。分野に対する親和性がない場合、ユーザーは出力を検証したり、モデルを高度な解決策へと導いたりすることができず、質問の工夫がいくら手巧くてもその限りではありません。著者は、トークンが無限にあっても、非専門家は Tao 氏のような複雑な数学問題においては彼のレベルには達できないと指摘しており、分野知識こそが決定的な要因であることを強調しています。したがって、モデルがさらに強くなるにつれて、人間が正確な要件を伝達し結果を検証するという役割がボトルネックとなります。そのためには、組織は平均的な成果を超えようとする場合、特別な訓練への投資や専門家を採用することが必要であり、AI 統合の未来は汎用的なインターネット検索スキルよりも、制約を定義し高品質な結果を確保するために特定分野での卓越した知識を育成することによって支えられるでしょう。

2026/08/03 23:15

デベロッパーツールのオープンソース化が必須です。

## 日本語翻訳: 人工知能(AI)エージェントは、大規模なユーザーコミュニティや複雑な設定ファイルに依存せずに個々の作成者がパーソナライズされたアプリケーションを構築することを可能にするため、ソフトウェア開発を変革しています。VS Code の拡張機能や vimdiff といった従来の API はリアルタイムでのファイル変更やバックグラウンド処理で苦戦するのに対し、Shelley とような AI エージェントは、上流リリースとの nightly スインジングや人間のレビュー前のコードのプリプロセスなどの複雑なタスクを自動的に処理します。これは、過去 5 年の間にエンジニアが高い維持コストと疑わしい投資対効果のためにカスタムツールを廃棄することが多かった時代から、現在、かつて高価なプラグインシステムを必要としたか多くのユーザーにアモルタイズされた機能が単一ユーザーのために瞬時に組み立てられることへの大きなシフトを示しています。著者は "meat.dev" というツールを作成することでこれを例示しました。このツールは大規模言語モデル(LLM)を使用して、差分からインポートやボイラープレートなど重要なコードを取り除き、開発者がコアアーキテクチャとエッジケース(「the meat」)に集中できるようにします。Shelley 内の発見可能なスキルとして構築されたこのエージェントは、単一のプロンプトでバックグラウンドスインジングなどの複雑なロジックを統合することを可能にし、手動のコマンドライン実行の必要性を排除します。さらに、エージェントによるパーソナライゼーションは学習曲線を劇的に削減し、ソリューションが「機能しているように見える」場合、大規模なレビューなしに小規模チームや個人開発者向けのカスタムソフトウェア(例:セルフホストされたブログ)を可能にします。Claude Code などのクローズドソースツールはソースコードへのアクセスを欠いているのに対し、オープンソースのエージェントはハードコーディングされた値の直接修正や Monobit を通じたビットマップフォントのようなカスタムアセットの統合、またはオンデマンドでの固有リソースの生成を可能にします。このシフトは、開発をレガシーなプラグインエコシステムと設定中心のワークフローから遠ざけ、自動化が効率的に日常運用を管理する一方で人間がコアアーキテクチャに完全に集中する未来へと導きます。

2026/08/04 2:08

より小さく、高速で、安全に:Kim i と G L M を大規模に展開するための実行方法

## Japanese Translation: Workers AI は、Cloudflare のインフラストラクチャ上で大規模な AI モデルの提供を進めており、NVIDIA Blackwell GPU と SGLang フレームワークを活用することでコストを大幅に削減するとともに速度を向上させながら精度を維持しています。本ソリューションは、モデル重みの圧縮、KV キャッシュメモリへの量子化、共有メモリの保護を実現するための整合性チェックという 3 つの中核技術を採用しています。 モデル重みについては、Workers AI がハイブリッド戦略を採用しており、応答のデコードには低精度の INT4 形式を使用します(GLM モデルでは約 60% のメモリ使用量削減を実現しながら、全精度重みから機能的不可能区別性 を維持)。一方、初期処理には高精度な形式を留保しています。KV キャッシュについては、BF16 から 8 ビット FP8 への量子化によりメモリサイズが半分になり、コンテキスト容量が倍増します(例えば、約 137 万トークンの対応が可能になり、従来の約 686 千トークンから)。MMLU や GSM8K などの主要なベンチマークにおける精度劣化はありません。 莫大な同時接続下での安定性を確保するため、Workers AI は共有 KV キャッシュに対して汎用整合性チェックを実装しており、数百件のリクエストが物理メモリページを共有する際のエラーを防いでいます。これにより、スループットおよびレイテンシに対するオーバーヘッドは 1% も未満です。これらの最適化により、同時接続制限が倍増し(例えば、64 つの同時リクエストへの対応が可能になり、従来の 32 から)、運用コストを約 30% 削減するとともに、モデルの信頼性を損なうことなくデコード速度を大幅に向上させることが可能になりました。技術が進化するにつれ、Workers AI は効率的なグローバル展開を実現するために新たな精度形式の検証を継続しています。

単一の4GB GPUでAirLLM 70Bを実行する | そっか~ニュース