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月にリリースされ、今すぐ実行できます。

フルの3550億パラメータモデルは 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大規模言語モデルを最小限の精度低下で実行およびファインチューニングできます。

チュートリアルの案内:

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

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

私たちが行った重要な修正の一つは、GGUFに対するプロンプトの問題に対処するものです。第二のプロンプトが機能しないという問題がありました。私たちはこの問題を修正しましたが、この問題は私たちの修正がないGGUFでは依然として残ります。例えば、非UnslothのGLM-4.6 GGUFを使用すると、最初の会話は正常に動作しますが、二回目は壊れます。

私たちはチャットテンプレートでこれを解決したので、私たちのバージョンを使用すると、二回目以降(三回目、四回目等)の会話もエラーなく動作します。ツール呼び出しに関してはいくつかまだ問題があり、帯域幅の制約により完全には調査していません。これらの残存問題は既に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があることを推奨します。最適な性能のためには、5+ トークン/秒を得るには少なくとも205GBの統一メモリ、または合計205GBのRAM+VRAMが必要です。生成速度を上げてより長いコンテキストを収める方法については、 ここを読む.

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 models.

GLM-4.6V-Flash

circle-check

✨ llama.cppで実行する

1

最新の llama.cppGitHubarrow-up-right。下のビルド手順も使用できます。を変更してください -DGGML_CUDA=ON から -DGGML_CUDA=OFF GPU がない場合や CPU 推論のみを行いたい場合は。

2

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

3

(以下をインストールした後に)モデルをダウンロードします pip install huggingface_hub hf_transfer )。量子化バージョンとして選べます UD-Q4_K_XL(動的4ビット量子化)または他の量子化バージョン、例えば Q8_K_XL .

GLM-4.6

🦙 Ollamaで実行

1

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

2

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

3

他の量子化を実行するには、まずGGUF分割ファイルを以下のように1つにマージする必要があります。その後、モデルをローカルで実行する必要があります。

✨ 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-check
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のみの推論の場合はこれを削除してください。

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

llama-serverをデプロイに使用するには、次のコマンドを使用してください:

その後、OpenAIのPythonライブラリを使用します(インストール後) pip install openai :

💽モデルのアップロード

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

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

私たちはまた IQ4_NLarrow-up-right および Q4_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ビット

4.5ビット

204GB

5.5/4.5ビット

5.5ビット

252GB

6.5/5.5ビット

🏂 生成速度の改善

もし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の移動を減らすことで、生成プロセスを高速化することができます。

📐長いコンテキスト(フル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キャッシュも量子化できますが、その場合は 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

最終更新

役に立ちましたか?