square-x-twitterGrok 2

xAI の Grok 2 モデルをローカルで実行しましょう!

次のコマンドを実行できます Grok 2 (別名 Grok 2.5)、xAI の2700億パラメータモデル。フル精度では必要となるのは 539GBで、Unsloth の動的3ビット版はサイズをわずか 118GB にまで縮小します(75%の削減)。GGUF: Grok-2-GGUFarrow-up-right

最新の 3ビット Q3_K_XL モデルは単一の 128GB Mac または 24GB VRAM + 128GB RAMで動作し、 5+ トークン/秒 の推論を達成します。llama.cpp チームとコミュニティに感謝します Grok 2 のサポートarrow-up-right と、これを可能にしてくれたことに感謝します。私たちも途中で少し助けることができて嬉しかったです!

すべてのアップロードはUnslothを使用しています Dynamic 2.0 SOTA の 5-shot MMLU と KL ダイバージェンス性能を示しており、量子化した Grok LLM を最小限の精度損失で実行できることを意味します。

llama.cpp チュートリアルで実行する

⚙️ 推奨設定

3ビットの動的量子化はディスク領域として118GB(126GiB)を使用します — これは128GB RAM の統一メモリの Mac や 1x24GB カードと 128GB の RAM でうまく動作します。この3ビット量子化を実行するには少なくとも120GB の RAM を持つことが推奨されます。

circle-exclamation

8ビット量子化はサイズが約300GBで、(MoE レイヤーを RAM にオフロードすれば)1x 80GB GPU に収まります。この構成では、追加で200GB の RAM があればおおよそ5トークン/秒を期待できます。生成速度を上げ、より長いコンテキストに対応する方法については、 こちらをお読みください.

circle-info

必須ではありませんが、最高のパフォーマンスを得るには VRAM + RAM の合計がダウンロードする量子化ファイルのサイズと等しいことが望ましいです。そうでない場合でも、llama.cpp でハードドライブ/SSD へのオフロードは動作しますが、推論は遅くなります。

サンプリングパラメータ

  • Grok 2 は最大コンテキスト長が128Kなので、次を使用してください 131,072 以下のコンテキストもしくはそれ以下。

  • 使用してください --jinja llama.cpp バリアントの場合

モデルを実行するための公式のサンプリングパラメータはないため、ほとんどのモデルで標準のデフォルトを使用できます:

  • を設定してください temperature = 1.0

  • Min_P = 0.01 (オプションですが 0.01 はよく機能します、llama.cpp のデフォルトは 0.1)

Grok 2 チュートリアルを実行する:

現在、Grok 2 は llama.cpp でのみ実行できます。

✨ llama.cppで実行する

1

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

2

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

circle-info

ぜひ試してみてください -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-Q3_K_XL (動的3ビット量子化)または他の量子化バージョンのような Q4_K_M Q4_K_XL などの他の量子化版です。私たちは サイズと精度のバランスを取るために私たちの2.7ビット動的量子化を または上記を使ってサイズと精度のバランスを取る.

4

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

モデルのアップロード

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

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

1.66ビット

81.8 GB

1.92/1.56ビット

1.78ビット

88.9 GB

2.06/1.56ビット

1.93ビット

94.5 GB

2.5/2.06/1.56

2.42ビット

99.3 GB

2.5/2.06ビット

2.71ビット

112 GB

3.5/2.5ビット

3.12ビット

117 GB

3.5/2.06ビット

3.5ビット

126 GB

4.5/3.5ビット

5.5ビット

191 GB

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.cpp リリースarrow-up-right 高スループットモードも導入しています。使用するには 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を指定し、そして使用してください、

最終更新

役に立ちましたか?