For the complete documentation index, see llms.txt. This page is also available as Markdown.

Grok 2

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

これで実行できます Grok 2 (別名 Grok 2.5)、xAI の 2700億パラメータのモデルです。フル精度には 539GBが必要ですが、Unsloth Dynamic 3-bit 版ではサイズがわずか 118GB まで縮小されます(75%削減)。GGUF: Grok-2-GGUF

この 3-bit Q3_K_XL モデルは単一の 128GB Mac または 24GB VRAM + 128GB RAMで動作し、 5+ トークン/秒 の推論速度を達成します。llama.cpp チームとコミュニティが Grok 2 をサポート し、これを可能にしてくれたことに感謝します。私たちも、その過程で少しでもお役に立ててうれしかったです!

すべてのアップロードは Unsloth Dynamic 2.0 SOTA の 5-shot MMLU と KL Divergence の性能向上のため、量子化された Grok LLM を最小限の精度低下で実行できます。

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

⚙️ 推奨設定

3-bit の動的量子化は 118GB(126GiB)のディスク容量を使用します。これは 128GB RAM のユニファイドメモリ Mac、または 1x24GB カードと 128GB RAM の環境でうまく動作します。この 3-bit 量子化を実行するには、少なくとも 120GB の RAM を推奨します。

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

必須ではありませんが、最高の性能を得るには、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 こちらから取得してください。以下のビルド手順に従うこともできます。 -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 特定の場所に保存するよう強制できます。モデルの最大コンテキスト長は 128K のみであることを覚えておいてください。

ぜひ試してみてください -ot ".ffn_.*_exps.=CPU" すべての MoE レイヤーを CPU にオフロードします!これにより、非 MoE レイヤーを 1 枚の GPU に収められるようになり、生成速度が向上します。GPU 容量がさらにある場合は、正規表現を調整してより多くのレイヤーを収めることができます。

GPU メモリがもう少し多い場合は、試してみてください -ot ".ffn_(up|down)_exps.=CPU" これにより、アップ投影とダウン投影の MoE レイヤーがオフロードされます。

試してみてください -ot ".ffn_(up)_exps.=CPU" GPU メモリがさらに多い場合は、これを使ってください。これにより、アップ投影の 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"

3

モデルのダウンロード( pip install huggingface_hub hf_transfer のインストール後)。 UD-Q3_K_XL (dynamic 3-bit quant)や、次のような他の量子化版 Q4_K_M 私たちは 当社の 2.7bit 動的量子化版の使用を推奨します UD-Q2_K_XL 以上を試して、サイズと精度のバランスを取ってください.

4

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

モデルのアップロード

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

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

1.66bit

81.8 GB

1.92/1.56bit

1.78bit

88.9 GB

2.06/1.56bit

1.93bit

94.5 GB

2.5/2.06/1.56

2.42bit

99.3 GB

2.5/2.06bit

2.71bit

112 GB

3.5/2.5bit

3.12bit

117 GB

3.5/2.06bit

3.5bit

126 GB

4.5/3.5bit

4.5bit

155 GB

5.5/4.5bit

5.5bit

191 GB

6.5/5.5bit

🏂 生成速度の改善

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

通常、 -ot ".ffn_.*_exps.=CPU" すべての MoE レイヤーを CPU にオフロードします!これにより、非 MoE レイヤーを 1 枚の GPU に収められるようになり、生成速度が向上します。GPU 容量がさらにある場合は、正規表現を調整してより多くのレイヤーを収めることができます。

GPU メモリがもう少し多い場合は、試してみてください -ot ".ffn_(up|down)_exps.=CPU" これにより、アップ投影とダウン投影の MoE レイヤーがオフロードされます。

試してみてください -ot ".ffn_(up)_exps.=CPU" GPU メモリがさらに多い場合は、これを使ってください。これにより、アップ投影の MoE レイヤーのみがオフロードされます。

これは最も少ない VRAM を使用します。 正規表現をカスタマイズすることもできます。例えば -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU"

この 最新の llama.cpp リリース は高スループットモードも導入します。次を使用してください llama-parallel。詳細は こちら。また KV キャッシュを 4bit に量子化することもできます たとえば、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 キャッシュも量子化できますが、 Flash Attention サポート付きで llama.cpp をコンパイルする必要があります-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 を使用できます

最終更新

役に立ちましたか?