🦙Llama 4: 実行とファインチューニング方法
標準的な量子化よりも精度を回復できる当社のDynamic 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量子化は、llama.cppやOpen WebUIなどの一般的な推論エンジンと完全に互換性があります。
Scout - 最適な設定のUnsloth Dynamic GGUF:
最良の結果を得るには、2.42ビット(IQ2_XXS)以上の版を使用してください。
Maverick - 最適な設定のUnsloth Dynamic 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=OFFに変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 Apple Mac / Metal デバイスの場合、次を設定して-DGGML_CUDA=OFFその後は通常どおり続けてください - Metal サポートは既定で有効です。
モデルのダウンロード(
pip install huggingface_hub hf_transfer)。Q4_K_M、または他の量子化版(たとえばBF16のフル精度)を選べます。その他の版はこちら: https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
モデルを実行して、任意のプロンプトを試してください。
編集
--threads 32CPU スレッド数を--ctx-size 16384コンテキスト長について(Llama 4は1000万のコンテキスト長をサポートします!)、--n-gpu-layers 99GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。CPU のみで推論する場合は、これも削除してください。
使用 -ot ".ffn_.*_exps.=CPU" すべての MoE レイヤーを CPU にオフロードします!これにより、非 MoE レイヤーを 1 枚の GPU に収められるようになり、生成速度が向上します。GPU 容量がさらにある場合は、正規表現を調整してより多くのレイヤーを収めることができます。
テストに関しては、残念ながら完全な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では現在、chunked attentionも使用されています。これは本質的にはスライディングウィンドウ注意ですが、8192の境界を越えて以前のトークンに注意を向けないことで、わずかに効率的になっています。
最終更新
役に立ちましたか?

