🌙Kimi K2 Thinking:ローカル実行ガイド

Kimi-K2-Thinking と Kimi-K2 を自分のローカルデバイスで実行するためのガイド!

circle-check

Kimi-K2と Kimi-K2-Thinking は知識、推論、コーディング、およびエージェントタスクでSOTAの性能を達成します。Moonshot AIのフル1Tパラメータモデルは1.09TBのディスクスペースを必要としますが、量子化された Unsloth Dynamic 1.8-bit バージョンではこれがわずか230GBに削減されます(-80%のサイズ): Kimi-K2-GGUFarrow-up-right

また、私たちの Kimi-K2-Thinking GGUFをarrow-up-right.

すべてのアップロードはUnslothを使用しています Dynamic 2.0 SOTAおよび Aider Polyglot 5ショットMMLU性能のために実行できます。私たちのDynamic 1–2ビットGGUFがコーディングベンチマークでどのように動作するかはここでご覧ください コーディングベンチマークはこちら.

Thinkingを実行Instructを実行

⚙️ 推奨要件

circle-info

必要です 247GBのディスクスペース 1bit量子化を実行するには!

唯一の要件は ディスクスペース + RAM + VRAM ≥ 247GBです。つまり、モデルを実行するためにそれほど多くのRAMやVRAM(GPU)が必要というわけではありませんが、その場合は動作がかなり遅くなります。

1.8ビット(UD-TQ1_0)量子化は1x 24GB GPUに収まります(すべてのMoEレイヤーをシステムRAMまたは高速ディスクにオフロードする場合)。この構成で追加の256GB RAMがあるとおおよそ1〜2トークン/秒が期待できます。フルのKimi K2 Q8量子化はサイズが1.09TBで、少なくとも8基のH200 GPUが必要です。

最適なパフォーマンスのためには少なくとも 247GBの統合メモリ、または247GBのRAM+VRAMの合計 が5+トークン/秒のために必要です。合計RAM+VRAMが247GB未満の場合、モデルの速度は確実に低下します。

もし247GBのRAM+VRAMを持っていなくても心配はいりません! llama.cppは本質的に ディスクオフロードを備えているので、mmapを通じて動作はしますが遅くなります—例えば以前は5〜10トークン/秒得られていたものが、今では1トークン未満になることがあります。

私たちは次の量子化を使うことを推奨します、 UD-Q2_K_XL(360GB) サイズと精度のバランスを取る量子化です!

circle-check

💭Kimi-K2-Thinkingガイド

Kimi-K2-Thinkingは一般的にInstructモデルと同じ指示に従うべきですが、設定やチャットテンプレートなどいくつかの重要な違いがあります。

circle-check

🌙 公式推奨設定:

によれば、 Moonshot AIarrow-up-rightこれらがKimi-K2-Thinking推論の推奨設定です:

  • を設定してください temperature 1.0 反復や一貫性の欠如を減らすため。

  • 推奨コンテキスト長 = 98,304(最大256Kまで)

  • 注意:異なるツールを使用すると異なる設定が必要になる場合があります

circle-info

私たちは次を設定することを推奨します、 min_pを0.01に 低確率の発生しにくいトークンの出現を抑えるために。

例えばユーザーメッセージが「What is 1+1?」の場合、私たちは次のようになります:

✨ llama.cppでKimi K2 Thinkingを実行

circle-check
  1. 最新の llama.cppGitHub で入手arrow-up-rightできます。下のビルド手順に従うこともできます。変更してください -DGGML_CUDA=ON から -DGGML_CUDA=OFF GPU がない場合や CPU 推論のみを行いたい場合は。

  1. 直接モデルを読み込むために llama.cpp モデルを直接読み込むには、以下を実行できます:(:UD-TQ1_0)は量子化タイプです。Hugging Face経由(ポイント3)でもダウンロードできます。これは次と似ています、 ollama run に類似しています。使用してください export LLAMA_CACHE="folder" で強制的に llama.cpp 特定の場所に保存するために。

  1. 上記はGPUメモリを約8GB使用します。もし合計で360GBほどのGPUメモリがあるなら、最大速度を得るために -ot ".ffn_.*_exps.=CPU" を削除してください!

circle-info

ぜひお試しください -ot ".ffn_.*_exps.=CPU" ですべてのMoE層をCPUにオフロードします!これにより、非MoE層を1つのGPUに収められるようになり、生成速度が向上します。GPU容量が大きい場合は正規表現をカスタマイズしてより多くの層を適合させることができます。

もしもう少しGPUメモリがあるなら、次を試してください -ot ".ffn_(up|down)_exps.=CPU" これはupおよびdownの投影MoE層をオフロードします。

試してみてください -ot ".ffn_(up)_exps.=CPU" もしさらに多くのGPUメモリがある場合。これはup投影MoE層のみをオフロードします。

そして最後にすべての層を次でオフロードします -ot ".ffn_.*_exps.=CPU" これは最小のVRAMを使用します。

正規表現をカスタマイズすることもできます。例えば -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" は6層目以降のgate、up、downのMoE層をオフロードすることを意味します。

  1. (以下をインストールした後に)モデルをダウンロードします pip install huggingface_hub hf_transfer )。サイズと精度のバランスを取るために私たちの2ビットダイナミック量子化UD-Q2_K_XLを使うことを推奨します。すべてのバージョンはこちら: huggingface.co/unsloth/Kimi-K2-Thinking-GGUFarrow-up-right

circle-info

ダウンロードが90〜95%付近で停止する場合は、次を参照してください、 https://docs.unsloth.ai/basics/troubleshooting-and-faqs#downloading-gets-stuck-at-90-to-95arrow-up-right

  1. 任意のプロンプトを実行してください。

  2. 編集 --threads -1 CPUスレッド数のため(デフォルトでは最大CPUスレッドに設定されています)、 --ctx-size 16384 でコンテキスト長を、 --n-gpu-layers 99 GPUオフロードのために何層をオフロードするか。これを99に設定し、MoEのCPUオフロードと組み合わせると最高のパフォーマンスが得られます。GPUがメモリ不足になる場合は調整してみてください。CPUのみの推論の場合はこれを削除してください。

🤔Thinkingタグがない?

モデルを実行するときに thinking タグが表示されないことに気づくかもしれません。これは正常で意図された動作です。

あなたの llama.cpp スクリプトでは、コマンドの一番最後に必ず --special フラグを含めてください。そうすれば期待どおりに <think> トークンが表示されます。

また、すべての回答がで終わるのを見るかもしれません、 <|im_end|>これは、が特殊トークンを表示する際に現れるため正常です。もしこれを非表示にしたければ、設定で <|im_end|> を停止文字列として設定できます。 <|im_end|> 設定で停止文字列として設定できます。

✨ llama-serverとOpenAIのcompletionライブラリでデプロイ

llama.cppをに従ってインストールした後、次を使ってOpenAI互換サーバーを起動できます: Kimi K2 Thinking以下のようにしてOpenAI互換サーバーを起動できます:

その後、OpenAIのPythonライブラリを使用します(インストール後) pip install openai :

🔍トークナイザの癖とバグ修正

2025年11月7日:私たちはKimiチームに通知し、デフォルトのシステムプロンプトが You are Kimi, an AI assistant created by Moonshot AI. 最初のユーザープロンプトに表示されない問題を修正しました! 詳細については https://huggingface.co/moonshotai/Kimi-K2-Thinking/discussions/12arrow-up-right

Moonshot Kimiチームが私たちの問い合わせに非常に迅速に対応し、問題をできるだけ早く修正してくれたことに大変感謝します!

2025年7月16日:Kimi K2は複数のツール呼び出しを可能にするためにトークナイザを更新しました に従って、 https://x.com/Kimi_Moonshot/status/1945050874067476962arrow-up-right

2025年7月18日:私たちはシステムプロンプトを修正しました — Kimiもこの修正についてここでツイートしました: https://x.com/Kimi_Moonshot/status/1946130043446690030arrow-up-right。修正はここにも説明されています: https://huggingface.co/moonshotai/Kimi-K2-Instruct/discussions/28arrow-up-right

古いチェックポイントをダウンロードしている場合でも心配はいりません — 単に最初のGGUFスプリットをダウンロードし直してください。あるいは新しいファイルをダウンロードしたくない場合は次を実行してください:

Kimi K2のトークナイザは扱ってみて興味深いものでした — 主にGPT-4oのトークナイザと似た動作をします!まず私たちはで見ます、 tokenization_kimi.pyarrow-up-right ファイルにKimi K2が使用する次の正規表現(regex)がありました:

慎重に調査した結果、Kimi K2はGPT-4oのトークナイザの正規表現とほぼ同一であり、これはで見つけることができます、 llama.cppのソースコードarrow-up-right.

両者とも数字を1〜3桁のグループ(9、99、999)にトークナイズし、類似のパターンを使用します。唯一の違いは「Han」つまり漢字の扱いで、Kimiのトークナイザはこれにより対応しています。 PRarrow-up-right による https://github.com/gabriellarsonarrow-up-right は、ここでのいくつかの 議論の後にこれらの違いをうまく扱っていますarrow-up-right.

また、正しいEOSトークンは[EOS]ではなく<|im_end|>であるべきであり、これは私たちのモデル変換でも修正しました。

🌝Kimi-K2-Instructガイド

Kimi K2 Instructモデル(Kimi K2 0905を含む、9月5日のアップデート)を実行するためのステップバイステップガイド。

🌙 公式推奨設定:

によれば、 Moonshot AIarrow-up-right、これらがKimi K2推論の推奨設定です:

  • を設定してください temperature 0.6 反復や一貫性の欠如を減らすため。

  • 元のデフォルトのシステムプロンプトは:

  • (任意)Moonshotはシステムプロンプトに以下も提案します:

circle-check

🔢 チャットテンプレートとプロンプト形式

Kimi ChatはBOS(文頭トークン)を使用します。system、user、assistantの役割はすべてで囲まれ、 <|im_middle|> これは興味深く、それぞれが固有のトークンを持ちます <|im_system|>, <|im_user|>, <|im_assistant|>.

会話の境界を分けるには(各改行を削除する必要があります)、次のようになります:

💾 モデルのアップロード

私たちのすべてのアップロード - imatrixベースでもダイナミックでもないものを含め、会話、コーディング、推論タスクに特化して最適化されたキャリブレーションデータセットを利用してください。

MoE ビット数
タイプ + リンク
ディスクサイズ
詳細

1.66bit

245GB

1.92/1.56bit

1.78bit

281GB

2.06/1.56bit

1.93bit

304GB

2.5/2.06/1.56

2.42bit

343GB

2.5/2.06bit

2.71bit

381GB

3.5/2.5bit

3.12bit

417GB

3.5/2.06bit

3.5bit

452GB

4.5/3.5bit

4.5bit

588GB

5.5/4.5bit

5.5bit

732GB

6.5/5.5bit

また、 BF16フォーマットarrow-up-right.

のバージョンもアップロードしました

  1. 最新の llama.cppGitHub で入手arrow-up-rightできます。下のビルド手順に従うこともできます。変更してください -DGGML_CUDA=ON から -DGGML_CUDA=OFF GPU がない場合や CPU 推論のみを行いたい場合は。

  1. 直接モデルを読み込むために llama.cpp ✨ llama.cppでInstructを実行 ollama run に類似しています。使用してください export LLAMA_CACHE="folder" で強制的に llama.cpp 特定の場所に保存するために。 モデルを直接読み込むには、以下を実行できます:(:UD-IQ1_S)は量子化タイプです。Hugging Face経由(ポイント3)でもダウンロードできます。これは次と似ています、

circle-info

ぜひお試しください -ot ".ffn_.*_exps.=CPU" ですべてのMoE層をCPUにオフロードします!これにより、非MoE層を1つのGPUに収められるようになり、生成速度が向上します。GPU容量が大きい場合は正規表現をカスタマイズしてより多くの層を適合させることができます。

もしもう少しGPUメモリがあるなら、次を試してください -ot ".ffn_(up|down)_exps.=CPU" これはupおよびdownの投影MoE層をオフロードします。

試してみてください -ot ".ffn_(up)_exps.=CPU" もしさらに多くのGPUメモリがある場合。これはup投影MoE層のみをオフロードします。

そして最後にすべての層を次でオフロードします -ot ".ffn_.*_exps.=CPU" これは最小のVRAMを使用します。

正規表現をカスタマイズすることもできます。例えば -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" は6層目以降のgate、up、downのMoE層をオフロードすることを意味します。

  1. (以下をインストールした後に)モデルをダウンロードします pip install huggingface_hub hf_transfer )。量子化バージョンとして選べます UD-TQ1_0-hf unsloth/Kimi-K2-Instruct-GGUF:TQ1_0 \ Q2_K_XL )を選択できます。私たちは (ダイナミック1.8ビット量子化)または他の量子化バージョンのような UD-Q2_K_XL はサイズと精度のバランスをとるためです。その他のバージョンは: サイズと精度のバランスを取るために私たちの2ビットダイナミック量子化を推奨しますarrow-up-right

circle-info

ダウンロードが90〜95%付近で停止する場合は、次を参照してください、 https://docs.unsloth.ai/basics/troubleshooting-and-faqs#downloading-gets-stuck-at-90-to-95arrow-up-right

  1. 任意のプロンプトを実行してください。

  2. 編集 --threads -1 CPUスレッド数のため(デフォルトでは最大CPUスレッドに設定されています)、 --ctx-size 16384 でコンテキスト長を、 --n-gpu-layers 99 GPUオフロードのために何層をオフロードするか。これを99に設定し、MoEのCPUオフロードと組み合わせると最高のパフォーマンスが得られます。GPUがメモリ不足になる場合は調整してみてください。CPUのみの推論の場合はこれを削除してください。

🐦 --model unsloth/Kimi-K2-Instruct-GGUF/UD-TQ1_0/Kimi-K2-Instruct-UD-TQ1_0-00001-of-00005.gguf \

Flappy Bird + その他のテスト 私たちはDeepSeek R1の1.58ビット量子化が提供されたときにFlappy Birdテストを導入しました。Kimi K2はこのタスクを含む私たちのすべてのタスクをワンショットでこなした数少ないモデルの一つであることがわかりました、 Heptagon

最終的なゲームはMarkdownのPythonセクション内に入れてください。コードのエラーを確認し、本番のマークダウンセクションの前に修正してください。 また、以下に従ってダイナミック量子化をHeptagonテストで試すこともできます、arrow-up-right r/Localllama

このテストは回転する閉じた七角形内でボールが回転する基本的な物理エンジンを作成する能力をモデルに問います。

最終更新

役に立ちましたか?