zGLM-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-GGUFarrow-up-right

circle-check

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

チュートリアル ナビゲーション:

GLM-4.6V-Flash を実行するGLM-4.6 を実行する

🐛Unsloth チャットテンプレートとバグ修正

我々が行った重要な修正の一つは、GGUFに対するプロンプティングの問題への対処で、2回目のプロンプトが機能しないというものでした。我々はこの問題を修正しましたが、当社の修正が適用されていないGGUFではこの問題が依然として存在します。例えば、非UnslothのGLM-4.6 GGUFを使用すると、最初の会話は正常に動作しますが、2回目の会話が壊れます。

当社のチャットテンプレートではこれを解決しているため、当社版を使用すると2回目以降(3回目、4回目など)の会話もエラーなく動作します。ツール呼び出しにはまだいくつか問題があり、帯域幅の制約により完全には調査できていません。これらの残存する問題については既にGLMチームに報告済みです。

🔎GLM 4.6V Flash の特異点と修正点

circle-info

GLM-4.6V-Flashは中国語で推論や出力を行うことがあります。これは当社の量子化モデルだけの現象ではなく、モデルの特性によるものです。推論と出力を英語に強制するには、システムプロンプトに「Respond in English and reason in English」を使用してください!

他の量子化プロバイダのBF16やQ8_0の量子化モデルもテストしましたが、いずれも中国語で推論するようです。例えば、シード3407で別々の2つの量子化モデルを、同じプロンプト「Create a Flappy Bird game in Python」で実行すると、推論が中国語で示されます:

を経由してシステムプロンプトに「Reason in English」を使用することにより、 --system-prompt "Respond in English" llama.cppでは、例えば下のように:

推論は中国語になりますが、出力は英語になります。続けて「What is 1+1」と尋ねると英語のみが返ってきます:

そして最後に、を経由してシステムプロンプトに「Respond in English and reason in English」を使用すると、 --system-prompt "Respond in English and reason in English" llama.cppでは、例えば下のように:

推論も出力も英語になります!続けて「What is 1+1」と尋ねると英語のみが返ってきます:

⚙️ 使用ガイド

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

推奨設定

Z.aiによると、GLM-4.6V-FlashとGLM-4.6の推論には異なる設定があるとのことです:

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.6V-Flash と大きい GLM-4.6 モデル。

GLM-4.6V-Flash

circle-check

✨ llama.cppで実行する

1

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

2

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

3

モデルをダウンロードするには(をインストールした後) モデルをダウンロードするには( を選択できます。 をインストールした後)を使用してください。選択できるのはQ4_K_XL(動的4ビット量子化)や他の量子化バージョン、例えば Q8_K_XL .

GLM-4.6

🦙 --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

✨ 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 を強制して

circle-check
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

OLLAMA_MODELS=unsloth ollama run merged_file.gguf

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

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

💽モデルのアップロード

当社のすべてのアップロード - imatrix ベースまたは動的でないものを含め、会話、コーディング、および言語タスクに最適化されたキャリブレーションデータセットを利用しています。

  • 以下はフルGLM-4.6モデルのアップロード:

また、次もアップロードしました IQ4_NLarrow-up-rightQ4_1arrow-up-right それぞれ ARM および Apple デバイス向けに特に高速に動作するクオンタイズです。

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

1.66ビット

84GB

1.92/1.56ビット

1.78ビット

96GB

2.06/1.56ビット

1.93ビット

107GB

2.5/2.06/1.56

2.42ビット

115GB

2.5/2.06ビット

2.71ビット

135GB

3.5/2.5ビット

3.12ビット

145GB

3.5/2.06ビット

3.5ビット

158GB

4.5/3.5ビット

5.5ビット

252GB

6.5/5.5ビット

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

より多くの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ビットに量子化することができます こちら

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

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

最終更新

役に立ちましたか?