zGLM-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性能を達成しています。

フルの3550億パラメータモデルは 400GB のディスク容量を必要としますが、Unsloth Dynamic 2-bit GGUFはサイズを 134GB (-75%). GLM-4.7-GGUFarrow-up-right

すべてのアップロードはUnslothを使用しています Dynamic 2.0 はSOTAの5-shot MMLUおよびAider性能を実現するため、量子化されたGLM大規模言語モデルを最小限の精度低下で実行およびファインチューニングできます。

⚙️ 使用ガイド

2ビット動的量子化 UD-Q2_K_XL は135GBのディスク容量を使用します - これは 1x24GBカードと128GBのRAM でMoEオフロードを使用するとうまく動作します。1ビットUD-TQ1 GGUFも Ollamaでネイティブに動作します!

circle-info

次を使用する必要があります --jinja llama.cppの量子化には - これは私たちの 固定されたチャットテンプレート を使用し、正しいテンプレートを有効にします!これを使用しないと誤った結果を得る可能性があります --jinja

4ビットの量子化は1x40GB GPUに収まります(MoE層をRAMにオフロードする場合)。この構成でボーナスの165GBのRAMがあるとおよそ5トークン/秒を期待できます。この4ビットを実行するには少なくとも205GBのRAMがあることを推奨します。最適な性能のためには、5+ トークン/秒を得るには少なくとも205GBの統一メモリ、または合計205GBのRAM+VRAMが必要です。生成速度を上げてより長いコンテキストを収める方法については、 ここを読む.

circle-check

推奨設定

用途別に異なる設定を使用してください。デフォルトおよびマルチターンのエージェント的な使用例に対する推奨設定:

デフォルト設定(ほとんどのタスク)
Terminal Bench、SWE Bench 検証済み

temperature = 1.0

temperature = 0.7

top_p = 0.95

top_p = 1.0

131072 max new tokens

16384 max new tokens

  • 次を使用してください --jinja llama.cpp系で - 私たちは いくつかのチャットテンプレートの問題を修正しました!

  • 最大コンテキストウィンドウ: 131,072

GLM-4.7チュートリアルの実行:

GLM-4.7を実行するためのステップバイステップガイドは Ollama および llama.cpp.

✨ llama.cppで実行する

1

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

2

もし直接モデルを読み込むために llama.cpp を使用したい場合、以下のようにできます:(:Q2_K_XL)は量子化の種類です。Hugging Face(ポイント3)経由でダウンロードすることもできます。これは ollama run に類似しています。使用してください export LLAMA_CACHE="folder" で強制的に llama.cpp を特定の場所に保存させます。モデルは最大128Kのコンテキスト長しか持たないことを忘れないでください。

circle-info

次を使用してください --fit on はGPUとCPUの最大使用のために2025年12月15日に導入されました。

オプションで、次を試してください -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層をオフロードすることを意味します。

3

モデルをダウンロードする(インストール後) pip install huggingface_hub hf_transfer )。次に UD-Q2_K_XL(動的2ビット量子化)や他の量子化バージョン(例: Q4_K_XL )を選択できます。私たちは 2.7ビット動的量子化の使用を推奨します UD-Q2_K_XL はサイズと精度のバランスをとるためです.

4

次の --threads 32 でCPUスレッド数を編集できます、 --ctx-size 16384 でコンテキスト長を、 --n-gpu-layers 2 で何層をGPUにオフロードするかを指定します。GPUがメモリ不足になる場合は調整してみてください。CPUのみの推論の場合はこれを削除してください。

🦙 Ollamaで実行

1

インストールしてください ollama まだインストールしていない場合!モデルの他のバリアントを実行するには、 ここを参照してください.

2

モデルを実行してください!失敗した場合は別の端末で ollama serveを呼び出せます!私たちのすべての修正と推奨パラメータ(temperatureなど)は params にHugging Faceのアップロードで含めています!

3

他の量子化を実行するには、まず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/16653arrow-up-right --fit on はモデルの可能な限りの部分をGPUに自動オフロードし、残りをCPUに配置します。

もしVRAMがより多くある場合は、さらに多くのMoE層をオフロードするか、層全体をオフロードすることを試すことができます。

通常、 -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 "\.(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です。詳細は ここarrow-up-rightを参照してください。さらに、 KVキャッシュを4ビットに量子化することもできます 例えば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キャッシュも量子化できますが、その場合は llama.cppをFlash Attentionサポートでコンパイルする必要があります には次を使用してください -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

最終更新

役に立ちましたか?