1. はじめに
大規模言語モデル(LLM)の発展が加速するなか、「自宅や小規模環境でいかに巨大モデルを動かせるか」 が大きな注目を集めています。
とくに DeepSeek-R1 は 671B(6,710億)パラメータ のMoEアーキテクチャを採用しており、高性能なGPUクラスタでないと動かせない印象が強いモデルでした。
ところが最近、KTransformers というフレームワークを組み合わせることで、
- 単一の RTX 4090(24GB VRAM) と
- 数百GB級のDRAM
という環境でも 「完全版のDeepSeek-R1」 をオフロード推論する事例が続々と報告されています。
本記事では、KTransformers + DeepSeek-R1 をローカルPCで導入する手順と、CPU/GPU異構推論などの最適化手法について解説します。
2. KTransformers概要
KTransformersとは
KTransformers(Quick Transformers と発音)は、Hugging Face Transformers互換のフレームワークでありながら、高度なカーネル最適化やオフロード戦略を取り入れ、効率的なLLM推論を実現します。
- Pythonに特化 しており、RESTful API(OpenAI互換・Ollama互換)やChatGPT風UIも簡単に利用可能。
- 一行のコードで最適化されたモジュールを注入する仕組み(Injection Framework)が特徴。
- Windows / Linux など、幅広い環境をサポート。
主な特徴
-
MoE(混合専門家)構造への対応
大規模モデルでもスパース(部分的)にアクティベーションを行うMoE構造に最適化。 -
CPU/GPUの異構推論を自動オフロード
高負荷の演算はGPUに、比較的軽量な演算や巨大な稀疏行列はCPUに割り当てる。 -
量子化(Quantization)の柔軟な選択
Q4, Q5などさまざまな形式をサポートし、VRAM要件を大きく削減。 -
高速演算カーネル(Marlin, llamafileなど)の組み合わせ
GPUとCPUの両方で最適化された行列演算が可能。
3. DeepSeek-R1とは?
DeepSeek-R1 は 671Bパラメータ を備える超大規模言語モデルです。
- MoEアーキテクチャ を採用し、実際に必要な計算リソースをスパースに使うことが可能。
- しかし、完全版(フルパラメータ)をデータセンター以外で動かすには、莫大なGPUメモリが必要とされてきました。
- 一方で 「部分的なExpertのみを使う」 アプローチなどを駆使することで、オフロードを含む最適化 次第では単一GPUでも動かせる可能性が示唆されてきました。
DeepSeek-R1の特徴
①高精度な推論能力
-
Chain-of-Thought(CoT)推論に対応
DeepSeek-R1は、段階的な推論プロセスを通じて、より正確で説明可能な回答を生成できる CoT(Chain-of-Thought) を活用したモデルです。 -
オープンソースとして提供
OpenAIのGPT-4などとは異なり、オープンに公開 されており、カスタマイズやローカル環境での利用が可能。
②MoE構造
- 必要に応じて専門家(Expert)を選択的に呼び出す設計。
- 計算資源の効率的な活用により、フルモデルの推論コストを最適化。
③効率的なリソース管理とオフロード最適化
- 通常は 数十〜数百GBのVRAM を要するが、KTransformersによるオフロードにより、大幅なメモリ削減が可能。
-
RTX 4090(24GB VRAM)でも一部推論が可能(CPUオフロード + 量子化を活用)。
4. 最新アップデートと対応状況
KTransformersは以下のようなマイルストーンアップデートを行っています。
-
2025年2月10日 (new!)
- Deepseek-R1/V3を24GB VRAMと382GB DRAMでサポート。推論速度3〜28倍を達成。
-
2024年8月28日
- InternLM2.5-7B-Chat-1Mモデルで1Mトークンのコンテキストをサポート(24GB VRAM + 150GB DRAM)。
- DeepseekV2のVRAM要件を21GB→11GBへ削減。
-
2024年8月15日
- “注入”とマルチGPU対応の詳細チュートリアルを公開。
-
2024年8月12日
- mixtral 8×7B、8×22Bモデルに対応。GPU上でq2k, q3k, q5kなどの量子化をサポート。
-
2024年8月9日
- Windowsネイティブをサポート。
これらのアップデートにより、単一のRTX 4090上で671BのDeepSeek-R1を動作させる という以前は不可能と思われたシナリオが、実現可能になりました。
5. 必要なハードウェア・環境構築
ハードウェア要件
項目 | 内容 |
---|---|
GPU | 例:RTX 4090 (24GB VRAM) |
CPU | 例:Intel Xeon Gold (2ソケット) など、合計32〜64コア推奨 |
DRAM(メモリ) | 200〜400GB以上(モデルのExpert部分をCPUにオフロードするため) |
ストレージ | 数百GB〜TB級のSSD/HDD(モデルファイルを保存するため) |
OS | Windows 10/11 (WSL2), Ubuntu 20.04+, CentOS などを推奨 |
メモ: 実際には 14GB VRAM & 382GB DRAM で動作する報告もありますが、高速動作のためには 24GB GPU & 200GB 以上のメモリを推奨。
ソフトウェア要件
- Python 3.10+(3.11推奨)
- CUDA 11.8〜12.x
-
pip
(またはconda
) - 最新のNVIDIAドライバ
6. インストール&導入手順
ステップ1:.whlファイルのダウンロード
wget https://github.com/kvcache-ai/ktransformers/releases/download/v0.1.4/ktransformers-0.3.0rc0+cu126torch26fancy-cp311-cp311-linux_x86_64.whl
ステップ2:.whlファイルのインストール
pip install ktransformers-0.3.0rc0+cu126torch26fancy-cp311-cp311-linux_x86_64.whl
メモ:Windowsの場合は、対応する
.whl
ファイルをダウンロードし、同様のコマンドでインストール可能です。
ステップ3:ローカルチャット実行
python -m ktransformers.local_chat \
--model_path <your_model_path> \
--gguf_path <your_gguf_path> \
--prompt_file <your_prompt_txt_file> \
--cpu_infer 65 \
--max_new_tokens 1000
-
--cpu_infer
: CPUを推論にどの程度活用するかを指定 -
--prompt_file
: プロンプトとして与えるテキストファイルを指定 -
--max_new_tokens
: 生成する最大トークン数
メモ:詳細はGitHubのチュートリアルを参照。
7. CPU/GPU異構推論の仕組み
MoE(混合専門家)アーキテクチャ
DeepSeek-R1はMoE構造を活用しており、実際に使用するのは一部のExpert(専門家) のみです。巨大なパラメータを全て読み込む必要がないため、スパース化 によってメモリ負荷を軽減しています。
GPUとCPUオフロードの役割分担
-
GPU
- 高い演算強度(MLAなど)を要求する部分を担当
- 稠密行列(Shared部分)の高速演算に特化
-
CPU/DRAM
- それほど演算強度が高くない稀疏行列(Routed Expert)の保持・演算
- 巨大な専門家ネットワークをDRAM上に配置可能
この分担により、24GBのGPUメモリでも671Bモデルを動かせる 大きな理由となっています。
8. 性能指標とベンチマーク結果
KTransformersの開発チームが公開しているベンチマークでは、以下のような成果が得られています。
-
予填速度(Prefill)
- KTransformers: 54.21 tokens/s (32コア) → 74.36 tokens/s (2ソケット×32コア) → 最大286.55 tokens/s (V0.3)
- これはllama.cpp (2ソケット×32コア) の 10.31 tokens/s と比較して 約28倍 の高速化。
-
デコード速度(Decode)
- KTransformers: 8.73 tokens/s (32コア) → 13.69 tokens/s (選択的Expert活性化)
- llama.cpp (2ソケット×32コア) の 4.51 tokens/s と比較して 約3倍 の高速化。
AMX最適化と選択的Expert活性化(V0.3のプレビュー版機能) を組み合わせることで、大幅な速度向上が期待されます。
9. 最適化のポイント
9.1 MLA算子とKV Cache削減
DeepSeek-R1はAttentionの要としてMLA算子を利用しています。KTransformersでは、MLA算子を直接q_projやout_projに組み込む 工夫により、
- KV Cacheのサイズ削減
- GPU演算の強化
を同時に実現しています。
9.2 AMX最適化(CPU高速化)
v0.3プレビュー版ではIntel AMX などの高度なCPU命令セットを活用し、CPU部分の演算効率を大幅に引き上げます。llama.cppと比べて28倍ほどの速度差が出る場面も確認されています。
9.3 CUDA GraphによるPython呼び出しの削減
KTransformersはPythonインターフェースで拡張性を高める一方、CUDA Graphを用いて
- GPU⇔CPUの往復呼び出しを極力減らす
- 推論全体をひとまとまりのグラフとして最適化
することで高速化を図っています。
10. 今後の展望とまとめ
今後の開発ロードマップ
- v0.3正式版でAMX最適化や選択的Expert活性化が正式公開予定。
- 複数GPU間の高速通信(TP/PP)サポート拡充も検討中。
DeepSeek-R1の可能性
- ローカル開発環境でコード補完や大規模ドキュメント解析を可能に。
- 中小企業でも完全版671Bモデルを活用しやすくなる。
まとめ
巨大なLLMの推論コストを大幅に下げるフレームワークとして、KTransformers は既存の推論手法を刷新しつつあります。特に 671Bパラメータを搭載するDeepSeek-R1 のような超大規模モデルを、単一のPC で“現実的な速度”で動かせるのは画期的です。CPU/GPUの異構推論、選択的Expert活性化、量子化の柔軟な設定といった多彩なアプローチが組み合わさり、今までにない推論効率が実現されています。
これからもKTransformersのアップデートをチェックしつつ、ぜひご自身の環境で 「まさか671Bモデルが…?」 という体験をしてみてください!