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

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

すべてのアップロードはUnslothを使用しています Dynamic 2.0 はSOTAの5-shot MMLUおよびAider性能を実現するため、量子化されたGLMのLLMをほとんど精度を落とさずに実行およびファインチューニングできます。

⚙️ 使用ガイド

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が推奨されます。最適な性能を得るには、少なくとも205GBの統一メモリ、または合計で205GBのRAM+VRAMが必要で、5トークン/秒以上が見込めます。生成速度を上げ、より長いコンテキストを扱う方法については、 こちらをお読みください.

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を実行するためのステップバイステップガイドは Ollamallama.cpp.

✨ llama.cppで実行する

1

最新の llama.cppGitHubで入手してくださいarrow-up-right。以下のビルド手順にも従うことができます。を変更してください -DGGML_CUDA=ON-DGGML_CUDA=OFF GPUを持っていない場合やCPUで推論したい場合は Apple Mac / Metalデバイスの場合、次を設定してください -DGGML_CUDA=OFF その後通常通り続行してください — Metalサポートはデフォルトで有効です。

2

もし直接 llama.cpp を使ってモデルを読み込みたい場合は、以下のようにできます:(:Q2_K_XL)は量子化タイプです。Hugging Face(ポイント3)経由でダウンロードすることもできます。これは ollama run に類似しています。 使用してください export LLAMA_CACHE="folder" llama.cpp を強制して

circle-info

使用してください --fit on --top-p 0.95 \

はGPUとCPUを最大限に活用するために2025年12月15日に導入されました。 -ot ".ffn_.*_exps.=CPU" -ot ".ffn_.*_exps.=CPU"

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

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

もしさらに多くのGPUメモリがある場合。これはup投影のMoEレイヤーのみをオフロードします。 -ot ".ffn_.*_exps.=CPU" そして最後にすべてのレイヤーを次でオフロードします

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

3

モデルをダウンロードするには(をインストールした後) モデルをダウンロードするには( を選択できます。 をインストールした後)を使用してください。選択できるのはUD- Q2_K_XL(動的2ビット量子化)や Q4_K_XL などの他の量子化版です。私たちは サイズと精度のバランスを取るために私たちの2.7ビット動的量子化を UD-Q2_K_XL.

4

--include "*UD-Q2_K_XL*" # 動的1ビットの場合は "*UD-TQ1_0*" を使用 次の --threads 32 はCPUスレッドの数、 --ctx-size 16384 はコンテキスト長、 --n-gpu-layers 2

🦙 --seed 3407 \

2

curl -fsSL https://ollama.com/install.sh | sh モデルを実行してください!失敗した場合は別のターミナルでollama serve を呼び出すことができます!私たちはすべての修正と推奨パラメータ(temperatureなど)を params

3

OLLAMA_MODELS=unsloth ollama run hf.co/unsloth/GLM-4.7-GGUF:TQ1_0

OLLAMA_MODELS=unsloth ollama run merged_file.gguf

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

--port 8001 \ その後、OpenAIのPythonライブラリを使用します( :

🔨messages = [{"role": "user", "content": "What is 2+2?"},],

print(completion.choices[0].message.content) Tool Calling Guide GLM 4.7でのツール呼び出し

"description": "The Python code to run",

has_tool_calls = False return messages GLM 4.7を GLM-4.7 llama-server Tool Calling Guide のように起動した後(

や詳しい情報については

"content": [{"type": "text", "text": "What is today's date plus 3 days?"}],

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

使用してください --fit on "content": [{"type": "text", "text": "Create a Fibonacci function in Python and find fib(20)."}], 生成速度の改善arrow-up-right --fit on はGPUとCPUを最大限に活用するために2025年12月15日に導入されました。参照:

より多くの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" は gate、up、down の MoE 層をオフロードしますが、6層目以降に限定します。

通常、 llama-parallel。詳細は こちらarrow-up-right。また、 KVキャッシュを4ビットに量子化することができます こちら

をご覧ください。さらに、

より長いコンテキストに対応するには、 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 コンパイルする必要があります 次のように :

-DGGML_CUDA_FA_ALL_QUANTS=ONを指定し、そして使用してください、

最終更新

役に立ちましたか?