GLM-4.7: ローカル実行ガイド
Z.ai の GLM-4.7 モデルをお使いのローカル端末で実行する方法のガイドです!
GLM-4.7 は Z.ai の最新の思考モデルで、コーディング、エージェント、チャットの性能が GLM-4.6より高くなっています。SWE-bench(73.8%、+5.8)、SWE-bench Multilingual(66.7%、+12.9)、Terminal Bench 2.0(41.0%、+16.5)で SOTA 性能を達成しています。
355B パラメータのフルモデルには 400GB のディスク容量が必要ですが、Unsloth Dynamic 2-bit GGUF を使うとサイズは 134GB (-75%). GLM-4.7-GGUF
すべてのアップロードは Unsloth Dynamic 2.0 を使用しており、SOTA の 5-shot MMLU と Aider の性能を実現します。つまり、量子化された GLM LLM を最小限の精度低下で実行およびファインチューニングできます。
⚙️ 使用ガイド
2-bit 動的量子化の UD-Q2_K_XL は 135GB のディスク容量を使用します。これは 1x24GB カードと 128GB の RAM で MoE オフローディングを使う構成でうまく動作します。1-bit の UD-TQ1 GGUF も Ollama でネイティブに動作します!
使用する必要があります --jinja llama.cpp の量子化版ではこれを使ってください。これは当社の 固定チャットテンプレート を使用し、正しいテンプレートを有効にします。使用しないと、誤った結果になる可能性があります --jinja
4-bit の量子化版は 1x 40GB GPU に収まります(MoE レイヤーは RAM にオフロード)。さらに 165GB の RAM もあれば、この構成で約 5 tokens/s が期待できます。この 4-bit を実行するには、少なくとも 205GB の RAM が推奨されます。最適な性能を得るには、少なくとも 205GB のユニファイドメモリ、または 5+ tokens/s のために 205GB の合計 RAM+VRAM が必要です。生成速度を上げ、より長いコンテキストに収める方法を学ぶには、 こちらをお読みください.
必須ではありませんが、最高の性能を得るには、VRAM + RAM の合計がダウンロードする量子化版のサイズと同じになるようにしてください。そうでない場合でも、llama.cpp ではハードドライブ / SSD へのオフロードが動作しますが、推論速度は遅くなります。また --fit on を llama.cpp で使用すると、最大 GPU 使用率を自動的に有効にできます!
推奨設定
用途ごとに異なる設定を使ってください。デフォルト用途と複数ターンのエージェント用途に推奨される設定:
temperature = 1.0
temperature = 0.7
top_p = 0.95
top_p = 1.0
131072 新規トークンの最大数
16384 新規トークンの最大数
使用
--jinjallama.cpp 版ではこれを使ってください。私たちは いくつかのチャットテンプレートの問題も修正しました!最大コンテキストウィンドウ:
131,072
GLM-4.7 チュートリアルを実行:
GLM-4.7 を実行するためのステップバイステップガイドを Ollama と llama.cpp.
✨ llama.cpp で実行
最新の llama.cpp を GitHub こちらで入手してください。以下のビルド手順に従うこともできます。GPU がない場合、または CPU 推論だけを使いたい場合は、 -DGGML_CUDA=ON を -DGGML_CUDA=OFF に変更してください。 Apple Mac / Metal デバイスでは、 -DGGML_CUDA=OFF に設定してから通常どおり続行してください。Metal サポートはデフォルトで有効です。
直接 llama.cpp を使ってモデルを読み込みたい場合は、以下を実行できます:(:Q2_K_XL)は量子化タイプです。Hugging Face 経由でダウンロードすることもできます(3番目)。これは ollama run に似ています。使用 export LLAMA_CACHE="folder" して llama.cpp 特定の場所に保存するよう強制できます。モデルの最大コンテキスト長は 128K のみであることを覚えておいてください。
使用 --fit on は、GPU と CPU を最大限活用するために 2025年12月15日に導入されました。
オプションとして、試してみてください -ot ".ffn_.*_exps.=CPU" すべての MoE レイヤーを CPU にオフロードします!これにより、非 MoE レイヤーを 1 枚の GPU に収められるようになり、生成速度が向上します。GPU 容量がさらにある場合は、正規表現を調整してより多くのレイヤーを収めることができます。
GPU メモリがもう少し多い場合は、試してみてください -ot ".ffn_(up|down)_exps.=CPU" これにより、アップ投影とダウン投影の MoE レイヤーがオフロードされます。
試してみてください -ot ".ffn_(up)_exps.=CPU" GPU メモリがさらに多い場合は、これを使ってください。これにより、アップ投影の 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 量子化)や、次のような他の量子化版を 私たちは 当社の 2.7bit 動的量子化版の使用を推奨します UD-Q2_K_XL サイズと精度のバランスを取るためです.
編集できます --threads 32 CPU スレッド数を --ctx-size 16384 コンテキスト長を --n-gpu-layers 2 GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。
🦙 Ollama で実行
インストール ollama まだならインストールしてください!モデルの他のバリアントを実行するには、 こちらを参照.
モデルを実行します!失敗した場合は ollama serveを別の端末で呼び出せることに注意してください。修正内容と推奨パラメータ(temperature など)はすべて、Hugging Face のアップロード内の params に含まれています!
他の量子化版を実行するには、まず以下のコードのように GGUF 分割ファイルを 1 つに結合する必要があります。その後、モデルをローカルで実行する必要があります。
✨ llama-server と OpenAI の completion ライブラリでデプロイ
デプロイに llama-server を使うには、以下のコマンドを使ってください:
その後、OpenAI の Python ライブラリを使います pip install openai :
🔨GLM 4.7 でのツール呼び出し
参照 Tool Calling Guide ツール呼び出しの方法の詳細については。新しい端末で(tmux を使っている場合は CTRL+B+D)、2つの数の加算、Python コードの実行、Linux 関数の実行など、いくつかのツールを作成します:
その後、以下の関数(コピーして貼り付けて実行)を使用します。これにより関数呼び出しが自動的に解析され、任意のモデルに対して OpenAI エンドポイントが呼び出されます:
GLM 4.7 を llama-server 経由で起動した後、 GLM-4.7 のように、または Tool Calling Guide を参照して詳細を確認すると、いくつかのツール呼び出しを行えます:
GLM 4.7 の数学演算用ツール呼び出し

GLM 4.7 の生成された Python コードを実行するツール呼び出し

🏂 生成速度の改善
使用 --fit on GPU と CPU を最大限活用するために 2025年12月15日に導入されました。参照 https://github.com/ggml-org/llama.cpp/pull/16653 --fit on モデルの可能な限り多くを GPU に自動オフロードし、残りを CPU に配置します。
VRAM がさらにある場合は、より多くの MoE レイヤーをオフロードするか、レイヤー全体をオフロードすることができます。
通常、 -ot ".ffn_.*_exps.=CPU" すべての MoE レイヤーを CPU にオフロードします!これにより、非 MoE レイヤーを 1 枚の GPU に収められるようになり、生成速度が向上します。GPU 容量がさらにある場合は、正規表現を調整してより多くのレイヤーを収めることができます。
GPU メモリがもう少し多い場合は、試してみてください -ot ".ffn_(up|down)_exps.=CPU" これにより、アップ投影とダウン投影の MoE レイヤーがオフロードされます。
試してみてください -ot ".ffn_(up)_exps.=CPU" GPU メモリがさらに多い場合は、これを使ってください。これにより、アップ投影の MoE レイヤーのみがオフロードされます。
これは最も少ない VRAM を使用します。 正規表現をカスタマイズすることもできます。例えば -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"
Llama.cpp には高スループットモードも導入されています。使用 llama-parallel。詳細は こちら。また KV キャッシュを 4bit に量子化することもできます たとえば、VRAM / RAM 間の移動を減らし、生成処理をさらに高速化できます。
📐長いコンテキストを収める方法(フル 128K)
より長いコンテキストを収めるには、 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 を使用できます
最終更新
役に立ちましたか?

