0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1台のPCで671Bを動かす時代!KTransformers + DeepSeek-R1の爆速導入まとめ

Last updated at Posted at 2025-02-13

1. はじめに

大規模言語モデル(LLM)の発展が加速するなか、「自宅や小規模環境でいかに巨大モデルを動かせるか」 が大きな注目を集めています。
とくに DeepSeek-R1671B(6,710億)パラメータ のMoEアーキテクチャを採用しており、高性能なGPUクラスタでないと動かせない印象が強いモデルでした。

ところが最近、KTransformers というフレームワークを組み合わせることで、

  • 単一の RTX 4090(24GB VRAM)
  • 数百GB級のDRAM
    という環境でも 「完全版のDeepSeek-R1」 をオフロード推論する事例が続々と報告されています。

本記事では、KTransformers + DeepSeek-R1 をローカルPCで導入する手順と、CPU/GPU異構推論などの最適化手法について解説します。


2. KTransformers概要

352762149-d5a2492f-a415-4456-af99-4ab102f13f8b.png

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の両方で最適化された行列演算が可能。
    image.png

3. DeepSeek-R1とは?

rcv.YNA.20250129.PRU20250129086301009_P1.jpg

DeepSeek-R1671Bパラメータ を備える超大規模言語モデルです。

  • 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オフロード + 量子化を活用)。
    image.png

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を動作させる という以前は不可能と思われたシナリオが、実現可能になりました。

image.png


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オフロードの役割分担

  1. GPU
    • 高い演算強度(MLAなど)を要求する部分を担当
    • 稠密行列(Shared部分)の高速演算に特化
  2. 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モデルが…?」 という体験をしてみてください!

参考リンク

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?