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 を最小限の精度低下で実行できます。
⚙️ 推奨設定
3-bit の動的量子化は 118GB(126GiB)のディスク容量を使用します。これは 128GB RAM のユニファイドメモリ Mac、または 1x24GB カードと 128GB RAM の環境でうまく動作します。この 3-bit 量子化を実行するには、少なくとも 120GB の RAM を推奨します。
使用する必要があります --jinja Grok 2 用です。 --jinja
8-bit 量子化は約 300GB のサイズで、1x 80GB GPU(MoE レイヤーを RAM にオフロードした場合)に収まります。さらに 200GB の RAM があれば、この構成で約 5 トークン/秒が期待できます。生成速度を上げて、より長いコンテキストに対応する方法を学ぶには、 こちらをお読みください.
必須ではありませんが、最高の性能を得るには、VRAM + RAM の合計をダウンロードする量子化モデルのサイズと同じにしてください。そうでない場合でも、llama.cpp ではハードドライブ / SSD へのオフロードが動作しますが、推論速度は遅くなります。
サンプリングパラメータ
Grok 2 の最大コンテキスト長は 128K なので、
131,072コンテキスト以下を使用してください。使用
--jinjallama.cpp バリアント向け
モデルを実行するための公式なサンプリングパラメータはないため、ほとんどのモデルでは標準のデフォルト値を使用できます:
次を設定してください temperature = 1.0
Min_P = 0.01 (任意ですが、0.01 がよく機能します。llama.cpp のデフォルトは 0.1 です)
Grok 2 チュートリアルを実行:
現在、Grok 2 を実行できるのは llama.cpp のみです。
✨ llama.cpp で実行
特定の llama.cpp Grok 2 用 PR を GitHub こちらから取得してください。以下のビルド手順に従うこともできます。 -DGGML_CUDA=ON を -DGGML_CUDA=OFF に変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 Apple Mac / Metal デバイスの場合、次を設定して -DGGML_CUDA=OFF その後は通常どおり続けてください - Metal サポートは既定で有効です。
もし 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"
モデルのダウンロード( pip install huggingface_hub hf_transfer のインストール後)。 UD-Q3_K_XL (dynamic 3-bit quant)や、次のような他の量子化版 Q4_K_M 私たちは 当社の 2.7bit 動的量子化版の使用を推奨します UD-Q2_K_XL 以上を試して、サイズと精度のバランスを取ってください.
編集できます --threads 32 CPU スレッド数を --ctx-size 16384 コンテキスト長を --n-gpu-layers 2 GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。
モデルのアップロード
すべてのアップロード - そのうち imatrix ベースでも動的でもないものも含め、会話・コーディング・言語タスクに特化して最適化されたキャリブレーションデータセットを利用しています。
🏂 生成速度の改善
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 を使用できます
最終更新
役に立ちましたか?

