🦙Llama 4: 実行とファインチューニング方法

標準的な量子化よりも精度を回復できる当社のDynamic GGUFを使って、Llama 4をローカルで実行する方法。

Llama-4-Scoutモデルは109Bパラメータで、Maverickは402Bパラメータです。量子化していない完全版には113GBのディスク容量が必要ですが、1.78ビット版は33.8GBを使用します(サイズ75%削減)。 Maverick (402Bs)は422GBからわずか122GBになりました(-70%)。

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:

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

1.78bit

IQ1_S

33.8GB

2.06/1.56bit

1.93bit

IQ1_M

35.4GB

2.5/2.06/1.56

2.42bit

IQ2_XXS

38.6GB

2.5/2.06bit

2.71bit

Q2_K_XL

42.2GB

3.5/2.5bit

3.5bit

Q3_K_XL

52.9GB

4.5/3.5bit

4.5bit

Q4_K_XL

65.6GB

5.5/4.5bit

最良の結果を得るには、2.42ビット(IQ2_XXS)以上の版を使用してください。

Maverick - 最適な設定のUnsloth Dynamic GGUF:

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

1.78bit

IQ1_S

122GB

1.93bit

IQ1_M

128GB

2.42ビット

IQ2_XXS

140GB

2.71ビット

Q2_K_XL

151B

3.5ビット

Q3_K_XL

193GB

4.5ビット

Q4_K_XL

243GB

⚙️ 公式推奨設定

Metaによると、推論には以下の設定が推奨されています:

  • Temperature 0.6

  • Min_P を 0.01 に設定(任意ですが、0.01 がよく機能します。llama.cpp のデフォルトは 0.1)

  • Top_P 0.9

  • チャットテンプレート/プロンプト形式:

📖 チュートリアル:llama.cppでLlama-4-Scoutを実行する方法

  1. 最新の llama.cppGitHub こちらから取得してください。以下のビルド手順に従うこともできます。 -DGGML_CUDA=ON-DGGML_CUDA=OFF に変更してください。GPU がない場合、または CPU 推論だけを使いたい場合です。 Apple Mac / Metal デバイスの場合、次を設定して -DGGML_CUDA=OFF その後は通常どおり続けてください - Metal サポートは既定で有効です。

  1. モデルのダウンロード( pip install huggingface_hub hf_transfer )。Q4_K_M、または他の量子化版(たとえばBF16のフル精度)を選べます。その他の版はこちら: https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF

  1. モデルを実行して、任意のプロンプトを試してください。

  2. 編集 --threads 32 CPU スレッド数を --ctx-size 16384 コンテキスト長について(Llama 4は1000万のコンテキスト長をサポートします!)、 --n-gpu-layers 99 GPU オフロードする層数を指定します。GPU のメモリ不足になる場合は調整してみてください。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.Parametertorch.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の境界を越えて以前のトークンに注意を向けないことで、わずかに効率的になっています。

最終更新

役に立ちましたか?