🦙Llama 4: 実行およびファインチューニング方法
標準的な量子化と比較して精度を回復する当社の動的 GGUF を使って、Llama 4 をローカルで実行する方法。
Llama-4-Scoutモデルは109Bパラメータですが、Maverickは402Bパラメータです。完全な非量子化バージョンは113GBのディスク容量を必要としますが、1.78ビット版は33.8GBを使用します(サイズが-75%削減)。 Maverick (402Bs) は422GBからわずか122GBに(-70%)。
テキスト AND vision が今サポートされました!さらにツールコールの複数の改善があります。
Scoutの1.78ビットは24GBのVRAM GPUに収まり、約20トークン/秒で高速推論が可能です。Maverickの1.78ビットは2台の48GB VRAM GPUに収まり、約40トークン/秒で高速推論が可能です。
当社の動的GGUFでは、精度とサイズの最適なトレードオフを確保するために、すべてのレイヤーを量子化するのではなく、例えばMoEレイヤーをより低いビットに選択的に量子化し、注意(attention)や他のレイヤーは4または6ビットのままにします。
当社のすべてのGGUFモデルはキャリブレーションデータ(Scoutで約25万トークン、Maverickで100万トークン)を使用して量子化されており、標準的な量子化よりも精度が向上します。Unsloth imatrix quantsはllama.cppやOpen WebUIなどの一般的な推論エンジンと完全に互換性があります。
Scout - 最適な設定を用いたUnsloth動的GGUF:
最良の結果を得るには、2.42ビット(IQ2_XXS)またはそれ以上のバージョンを使用してください。
Maverick - 最適な設定を用いたUnsloth動的GGUF:
⚙️ 公式推奨設定
Metaによると、推論の推奨設定は次のとおりです:
温度(Temperature)0.6
Min_P を 0.01 に(オプションですが 0.01 がよく機能します。llama.cpp のデフォルトは 0.1)
Top_P 0.9
チャットテンプレート/プロンプト形式:
BOSトークンは
<|begin_of_text|>トークナイゼーション時に自動的に追加されます(手動で追加しないでください!)によれば https://www.llama.com/docs/model-cards-and-prompt-formats/llama4_omni/、そこには 推奨される任意のシステムプロンプトが以下に記載されています:
📖 チュートリアル:llama.cppでLlama-4-Scoutを実行する方法
最新の
llama.cppを GitHubで入手してください。以下のビルド手順にも従うことができます。を変更してください-DGGML_CUDA=ONに-DGGML_CUDA=OFFGPUを持っていない場合やCPUで推論したい場合は Apple Mac / Metalデバイスの場合、次を設定してください-DGGML_CUDA=OFFその後通常通り続行してください — Metalサポートはデフォルトで有効です。
モデルをダウンロードするには(をインストールした後)
モデルをダウンロードするには()。Q4_K_Mや他の量子化バージョン(BF16フル精度など)を選択できます。その他のバージョンは: https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
モデルを実行して任意のプロンプトを試してください。
編集
次の--threads 32はCPUスレッドの数、コンテキスト長のため(Llama 4は1000万のコンテキスト長をサポートします!)、--n-gpu-layers 99--n-gpu-layers 2
使用してください -ot ".ffn_.*_exps.=CPU" -ot ".ffn_.*_exps.=CPU"
テストに関しては、残念ながら完全なBF16バージョン(量子化の有無にかかわらず)でFlappy BirdゲームやHeptagonテストを適切に完了させることはできませんでした。多くの推論プロバイダーを試し、imatrixを使ったり使わなかったり、他人の量子化を使ったり、通常のHugging Face推論を使ったりしましたが、この問題は継続しました。
複数回実行し、モデルにバグを修正させるように依頼することで、ほとんどの問題を解決できることがわかりました!
Llama 4 Maverickについては、RTX 4090を2枚(2 x 24GB)が最適です
🕵️ 興味深い洞察と問題点
Llama 4 Maverick(大型モデル)の量子化中に、1番目、3番目、45番目のMoEレイヤーが正しくキャリブレーションできないことが判明しました。Maverickは奇数レイヤーごとにMoEレイヤーを挿入するインタリーブ方式を使用しているため、Dense->MoE->Dense、といった構成になります。
キャリブレーションデータセットにより多くの珍しい言語を追加したり、キャリブレーションにScoutの25万トークンに対して100万トークンを使うなど試しましたが、問題は依然として残りました。これらのMoEレイヤーは3ビットと4ビットのままにすることにしました。

Llama 4 Scoutについては、ビジョンレイヤーを量子化すべきではなく、MoEルーターやいくつかの他のレイヤーを非量子化のままにするべきだとわかりました — これらを以下にアップロードします https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-dynamic-bnb-4bit

また、次の変換も行う必要がありました: torch.nn.Parameter に torch.nn.Linear MoEレイヤーで4ビット量子化を可能にするためです。これはまた、一般的なHugging Face実装を書き換えパッチする必要があったことを意味します。量子化したバージョンを以下にアップロードします https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-4bit と https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-unsloth-bnb-8bit は8ビット用です。

Llama 4はチャンク化されたアテンションも使用するようになりました — 本質的にはスライディングウィンドウアテンションですが、8192の境界を越えて以前のトークンに注意を払わないことでやや効率的です。
最終更新
役に立ちましたか?

