🦙Llama 4:実行&ファインチューニング方法
標準的な量子化と比較して精度を回復する当社の動的 GGUF を使って Llama 4 をローカルで実行する方法。
Llama-4-Scoutモデルは109Bパラメータで、Maverickは402Bパラメータです。フルの非量子化バージョンは113GBのディスク容量を必要としますが、1.78ビット版は33.8GBを使用します(サイズが-75%削減)。 Maverick (402B)は422GBからわずか122GBに(-70%)。
テキストと vision が今サポートされました!さらにツール呼び出しに関する複数の改善があります。
Scoutの1.78ビットは24GBのVRAMを搭載したGPUに収まり、約20トークン/秒で高速推論が可能です。Maverickの1.78ビットは2x48GB VRAMのGPUで収まり、約40トークン/秒で高速推論が可能です。
私たちの動的GGUFでは、精度とサイズの最良のトレードオフを確保するために、すべてのレイヤーを量子化するのではなく、選択的に量子化します。例えばMoEレイヤーをより低ビットにし、アテンションやその他のレイヤーは4ビットまたは6ビットのままにします。
すべてのGGUFモデルはキャリブレーションデータ(Scoutで約250Kトークン、Maverickで約1Mトークン)を使って量子化されており、標準的な量子化より精度が向上します。Unsloth imatrixの量子は、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 推論のみを行いたい場合は。
(以下をインストールした後に)モデルをダウンロードします
pip install huggingface_hub hf_transfer)。Q4_K_Mを選択するか、他の量子化バージョン(BF16フル精度など)を選べます。その他のバージョンは: https://huggingface.co/unsloth/Llama-4-Scout-17B-16E-Instruct-GGUF
モデルを実行して、任意のプロンプトを試してください。
編集
--threads 32でCPUスレッド数を編集できます、--ctx-size 16384コンテキスト長(Llama 4は10Mのコンテキスト長をサポートします!)のために、--n-gpu-layers 99で何層をGPUにオフロードするかを指定します。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の250Kトークンに対してMaverickでは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の境界を越えて以前のトークンに注意を向けないことで若干効率が良くなっています。
最終更新
役に立ちましたか?

