GLM-4.6: ローカル実行ガイド
Z.aiのGLM-4.6およびGLM-4.6V-Flashモデルを自分のローカルデバイスで実行する方法のガイドです!
GLM-4.6 と GLM-4.6V-Flash は、以下から登場した最新の推論モデルです Z.ai。コーディングとエージェントのベンチマークでSOTA性能を達成しつつ、より改善された対話チャットを提供します。 GLM-4.6V-Flash より小さい9Bモデルは2025年12月にリリースされ、今すぐ実行できます。
フル版の355Bパラメータモデルには 400GB のディスク容量が必要ですが、Unsloth Dynamic 2-bit GGUFならサイズは 135GB (-75%). GLM-4.6-GGUF
最良の性能のため、利用可能な総メモリ(VRAM + システムRAM)が、ダウンロードする量子化モデルファイルのサイズを上回っていることを確認してください。そうでない場合でも、llama.cppはSSD/HDDオフロード経由で実行できますが、推論はより遅くなります。
すべてのアップロードは Unsloth Dynamic 2.0 SOTAの5-shot MMLUとAiderの性能向けであり、量子化されたGLM LLMを最小限の精度低下で実行・ファインチューニングできます。
チュートリアルのナビゲーション:
🐛Unslothのチャットテンプレートとバグ修正
私たちが行った重要な修正の一つは、GGUFへのプロンプト送信に関する問題への対応です。この問題では、2回目のプロンプトが機能しませんでした。私たちはこの問題を修正しましたが、この修正がないGGUFでは依然として問題が残ります。たとえば、Unsloth以外のGLM-4.6 GGUFを使うと、最初の会話は問題なく動作しますが、2回目は壊れます。

この点はチャットテンプレートで解決したため、私たちの版を使う場合は2回目以降(3回目、4回目など)の会話もエラーなしで動作します。ツール呼び出しにはまだいくつか問題が残っていますが、帯域幅の制約のため、まだ十分に調査できていません。これらの残りの問題については、すでにGLMチームに伝えています。
🔎GLM 4.6V Flash の癖と修正
GLM-4.6V-Flash は、中国語で推論し、中国語で出力する場合があります。これは私たちの量子化版に特有のものではなく、モデル固有の癖です。「英語で応答し、英語で推論して」といったシステムプロンプトを使うと、推論も出力も英語に強制できます。
他の量子化提供元のBF16およびQ8_0量子化版もテストしましたが、どれも中国語で推論しているようでした。たとえば、seed 3407で別々の2つの量子化版を使い、同じプロンプト「PythonでFlappy Birdゲームを作って」では、中国語での推論が表示されます。


次のように「英語で推論」といったシステムプロンプトを使うことで --system-prompt "英語で応答してください" llama.cppで、つまり以下のようにします:
すると、中国語で推論し、出力は英語になります。また、続けて「1+1は?」と尋ねると、英語のみが返ります:

そして最後に、「英語で応答し、英語で推論して」というシステムプロンプトを次のように使うと --system-prompt "英語で応答し、英語で推論してください" llama.cppで、つまり以下のようにします:
英語で推論し、英語で出力されます!また、続けて「1+1は?」と尋ねると、英語のみが返ります:

⚙️ 使い方ガイド
2-bitのダイナミック量子化UD-Q2_K_XLは135GBのディスク容量を使用します - これは次の環境でうまく動作します 1枚の24GBカードと128GBのRAM を使ったMoEオフロード環境で。1-bitのUD-TQ1 GGUFも Ollamaでネイティブに動作します!
必ず --jinja をllama.cppの量子化版で使用してください - これにより 修正済みのチャットテンプレート が使われ、正しいテンプレートが有効になります! --jinja
4-bit版は、1枚の40GB GPU(MoE層をRAMへオフロード)に収まります。この構成に加えて165GBの余分なRAMがあれば、速度はおよそ5 tokens/s程度になると予想してください。この4-bit版を動かすには、少なくとも205GBのRAMが推奨されます。最適な性能には、少なくとも205GBのユニファイドメモリ、または205GBのRAM+VRAM合計が必要で、5+ tokens/sを目指せます。生成速度を上げ、より長いコンテキストに対応する方法を学ぶには、 こちらを読んでください.
必須ではありませんが、最良の性能のためには、VRAM + RAMの合計がダウンロードする量子化版のサイズと同じくらいあるとよいです。そうでない場合でも、HDD / SSDオフロードはllama.cppで動作しますが、推論はより遅くなります。
推奨設定
Z.aiによると、GLM-4.6V-Flash と GLM-4.6 の推論には異なる設定があります:
temperature = 0.8
temperature = 1.0
top_p = 0.6 (推奨)
top_p = 0.95 (コーディング向け推奨)
top_k = 2 (推奨)
top_k = 40 (コーディング向け推奨)
128Kのコンテキスト長 以下
200Kのコンテキスト長 以下
repeat_penalty = 1.1
max_generate_tokens = 16,384
max_generate_tokens = 16,384
使用
--jinjaをllama.cpp版で使ってください - 私たちは いくつかのチャットテンプレートの問題も修正しました!
GLM-4.6 実行チュートリアル:
GLM-4.6を実行するための手順ガイドをご覧ください GLM-4.6V-Flash および大型 GLM-4.6 モデル。
GLM-4.6V-Flash
2025年12月16日時点の新情報: GLM-4.6-V がビジョン対応で更新されました!
✨ llama.cppで実行
最新の llama.cpp を GitHub。以下のビルド手順も使用できます。変更してください -DGGML_CUDA=ON を -DGGML_CUDA=OFF に変更してください。GPU がない場合、または CPU 推論だけを行いたい場合です。 Apple Mac / Metal デバイスでは、次を設定し、 -DGGML_CUDA=OFF その後は通常どおり進めてください。Metal サポートはデフォルトで有効です。
を使いたい場合は llama.cpp モデルを直接読み込むには、以下のようにできます(:Q8_K_XL)は量子化タイプです。Hugging Face経由でもダウンロードできます(ポイント3)。これは次と似ています ollama run に似ています。 export LLAMA_CACHE="folder" を使って、 llama.cpp 特定の場所に保存するためです。モデルの最大コンテキスト長は128Kのみであることを忘れないでください。
以下でモデルをダウンロードしてください(インストール後に pip install huggingface_hub hf_transfer )。次を選べます UD-Q4_K_XL(動的4bit量子化)や、以下のような他の量子化版 Q8_K_XL .
GLM-4.6
🦙 Ollamaで実行
インストール ollama まだなら!モデルの他のバリアントを実行するには、 こちらを参照.
モデルを実行してください!失敗した場合は、 ollama serveを別の端末で呼び出せます。修正点と推奨パラメータ(temperature など)はすべて params の Hugging Face アップロードに含めています!
他の量子化版を実行するには、まず以下のコードのようにGGUF分割ファイルを1つに結合する必要があります。その後、モデルをローカルで実行します。
✨ llama.cppで実行
最新の llama.cpp を GitHub こちらから入手してください。以下のビルド手順に従うこともできます。 -DGGML_CUDA=ON を -DGGML_CUDA=OFF に変更してください。GPU がない場合、または CPU 推論だけを行いたい場合です。
を使いたい場合は llama.cpp モデルを直接読み込むには、以下のようにできます(:Q2_K_XL)は量子化タイプです。Hugging Face経由でもダウンロードできます(ポイント3)。これは次と似ています ollama run に似ています。 export LLAMA_CACHE="folder" を使って、 llama.cpp 特定の場所に保存するためです。モデルの最大コンテキスト長は128Kのみであることを忘れないでください。
ぜひ試してください -ot ".ffn_.*_exps.=CPU" すべての MoE レイヤーを CPU にオフロードします。これにより、非 MoE レイヤーを 1 枚の GPU に収められ、生成速度が向上します。GPU 容量がさらにある場合は、正規表現を調整してより多くのレイヤーを収めることができます。
GPU メモリがもう少しある場合は、 -ot ".ffn_(up|down)_exps.=CPU" を試してください。
さらに GPU メモリがあるなら、 -ot ".ffn_(up)_exps.=CPU" を試してください。これで up projection の 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 レイヤーをオフロードすることを意味します。
以下でモデルをダウンロードしてください(インストール後に pip install huggingface_hub hf_transfer )。次を選べます UD-Q2_K_XL(動的2bit量子化)や、以下のような他の量子化版 Q4_K_XL も使えます。 サイズと精度のバランスを取るには、私たちの 2.7bit 動的量子化版 UD-Q2_K_XL の使用を推奨します.
編集できます --threads 32 CPU スレッド数について、 --ctx-size 16384 コンテキスト長について、 --n-gpu-layers 2 GPU オフロードするレイヤー数について。GPU がメモリ不足になったら調整してみてください。CPU のみで推論する場合は、これも削除してください。
✨ llama-server と OpenAIの completion ライブラリでデプロイ
デプロイに llama-server を使うには、次のコマンドを使用してください:
その後、OpenAIのPythonライブラリを次のように使います pip install openai :
💽モデルのアップロード
すべてのアップロードは - imatrix ベースでも dynamic ベースでもないものを含め、会話・コーディング・言語タスク向けに特別に最適化された校正データセットを使用しています。
フル版GLM-4.6モデルのアップロードは以下です:
また、 IQ4_NL と Q4_1 の量子化版もアップロードしました。これらはそれぞれ ARM および Apple デバイスで特に高速に動作します。
🏂 生成速度の改善
VRAMが多ければ、より多くのMoE層をオフロードするか、層そのものをまとめてオフロードすることができます。
通常は、 -ot ".ffn_.*_exps.=CPU" すべてのMoE層をCPUにオフロードします!これにより、MoE以外の全層を1枚のGPUに収められるようになり、生成速度が向上します。GPU容量がさらにある場合は、正規表現を調整してより多くの層を収めることができます。
GPU メモリがもう少しある場合は、 -ot ".ffn_(up|down)_exps.=CPU" を試してください。
さらに GPU メモリがあるなら、 -ot ".ffn_(up)_exps.=CPU" を試してください。これで up projection の MoE レイヤーのみをオフロードします。
正規表現をカスタマイズすることもできます。例えば -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 レイヤーをオフロードすることを意味します。
Llama.cpp には高スループットモードもあります。使用してください llama-parallel。詳細はこちらを こちらをご覧ください。また、 KVキャッシュを4bitに量子化することもできます 。たとえばVRAM / RAM間のデータ移動を減らし、生成プロセスを速くすることができます。
📐長いコンテキストを収める方法(フル200K)
より長いコンテキストを収めるには、 KVキャッシュ量子化 を使ってKとVのキャッシュを低ビットに量子化できます。これにより、RAM / VRAM間のデータ移動が減って生成速度も上がります。K量子化で許可されているオプション(デフォルトは f16)は以下のとおりです。
--cache-type-k f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
使用すべきなのは _1 版です。精度はわずかに向上しますが、少し遅くなります。例えば q4_1, q5_1
Vキャッシュも量子化できますが、そのためには Flash Attention対応でllama.cppをコンパイルし 、次の方法でサポートを有効にする必要があります -DGGML_CUDA_FA_ALL_QUANTS=ON、そして --flash-attn を使って有効化します。その後、次と併用できます --cache-type-k :
--cache-type-v f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1
最終更新
役に立ちましたか?

