llama.cppでモデルをGGUFに変換するにはどうすればよいですか?
クイック回答
Hugging Face形式のモデルディレクトリに対してllama.cppの変換スクリプトを実行し、f16(フル精度)やq4_k_mのような量子化形式など出力タイプを指定します。スクリプトはモデルの重みと設定を読み込み、単一の.ggufファイルに書き出します。このファイルはllama.cpp、Ollama、LM Studioで直接読み込めます。
- ▸変換前に、変換元モデルはHugging Face形式(safetensorsまたはPyTorchチェックポイント)である必要があります
- ▸出力タイプを選びます。フル精度にはf16/f32、変換と縮小を一度に行うには量子化タイプを選択します
- ▸f16変換後に別途量子化するほうが、変換時に量子化するよりも細かい制御ができます
更新: 2026年7月15日
Technique & Concept Explainers中級
重要なポイント
- ✓GGUF変換は、Hugging Face形式のモデルの重みとメタデータを読み込み、単一の可搬性の高い.ggufファイルに書き出す処理です
- ✓複数の量子化レベルを試す予定がある場合は、まずf16/f32に変換してください。すでに量子化された変換結果からさらに量子化すると、フル精度から量子化するよりも品質の低下が大きくなります
- ✓変換時に選ぶ出力タイプによって、ファイルサイズと推論品質の両方が決まります。どちらも同時に良くすることはできません
- ✓ほとんどの変換エラーは、変換スクリプト自体ではなく、互換性のない、あるいは不完全な変換元モデルディレクトリに起因します
変換プロセス
変換には実務上3つのステップがあります。変換元モデルを準備し、出力タイプを指定して変換スクリプトを実行し、フル精度に変換した場合はその後で量子化します。
- ▸**1. 変換元モデルを準備する:** 変換スクリプトは、モデルの重みファイル(レガシーなPyTorchの`.bin`チェックポイントよりsafetensors形式が推奨されます)に加えて、設定ファイルとトークナイザーファイルを含むHugging Face形式のディレクトリを想定しています。部分的にダウンロードされた、または手動で組み立てられたディレクトリでトークナイザーファイルが欠けているケースが、変換失敗の最も一般的な原因です。
- ▸**2. 出力タイプを指定して変換スクリプトを実行する:** `python convert_hf_to_gguf.py
--outtype f16` はフル精度のGGUFファイルを生成します。量子化された`--outtype`(例: `q8_0`)を渡すと、変換と同時に一度で量子化しますが、先にf16に変換してから専用の量子化ツールで別途量子化するよりも細かい制御はできません。 - ▸**3. より細かい制御のために別途量子化する(任意だが推奨):** f16のGGUFファイルを起点として、llama.cppの量子化ツールを実行し、同じフル精度のソースから複数の量子化バリアント(例: q4_k_m、q5_k_m)を生成します。これにより、毎回変換をやり直すことなく品質とサイズのトレードオフを比較できます。
よくある変換エラー
ほとんどの変換失敗は少数のカテゴリーに分類でき、そのほとんどはスクリプト自体ではなく変換元モデルに起因します。
- ▸**認識されないアーキテクチャ:** 変換スクリプトは対応するモデルアーキテクチャの内部リストを保持しています。非常に新しい、または特殊なアーキテクチャはまだ対応していない場合があります。モデルファイルが壊れていると決めつける前に、ツールの現在のアーキテクチャ一覧を確認してください。
- ▸**トークナイザーファイルの不足:** 変換には重みに加えてトークナイザーの設定が必要です。重みファイルのみでトークナイザーファイルがないモデルディレクトリは、変換の途中で失敗します。
- ▸**ファイル形式の想定の不一致:** レガシーなPyTorchの`.bin`チェックポイントは、ツールのバージョンによってはsafetensorsへの追加の変換ステップが必要になる場合があります。これを完全に避けるため、あらかじめsafetensors形式で提供されているモデルをダウンロードすることをおすすめします。
- ▸**変換中のディスク容量またはRAM不足:** 変換はフル精度のモデルを書き出す前にメモリへ読み込むため、モデルのフル精度サイズとほぼ同じ量のRAMに加えて、変換元ファイルと出力GGUFファイルの両方を同時に置くディスク容量が必要です。
よくある質問
変換時に量子化すべきですか、それとも先にフル精度に変換すべきですか?▾
複数の量子化レベルを比較する予定がある場合は、まずフル精度(f16)に変換してください。同じf16ソースから後で別途量子化するほうが、変換時に変換元モデルから直接量子化するよりも正確な結果が得られ、変換ステップを繰り返すことなく複数の量子化バリアントを作成できます。
変換が成功したのに、変換済みのGGUFファイルがOllamaやLM Studioで読み込めないのはなぜですか?▾
変換が成功したからといって、読み込みツールがその特定のアーキテクチャやGGUFバージョンに対応しているとは限りません。読み込みツールのバージョンが最新かどうかを確認してください。GGUF形式とアーキテクチャ対応はどちらも進化しており、古いバージョンのツールでは、新しい変換スクリプトで生成されたファイルを認識できないことがあります。
変換にはどれくらいのディスク容量が必要ですか?▾
変換元モデルのフルサイズと出力GGUFファイルのサイズを同時に見込んでおいてください。フル精度への変換の場合、処理中はモデルの容量がおおよそ倍になります。量子化された出力ファイルは小さくなりますが、変換が完了するまでは変換元ファイルも存在している必要があります。
すでにファインチューニングされたモデルを変換できますか?▾
はい。ファインチューニング済みの重みが標準的なHugging Face互換形式で保存されている限り、変換プロセスはベースモデルの場合と同じように機能します。ファインチューニングでLoRAのようなアダプター重みを使用し、フルの重みでない場合は、まずアダプターをベースモデルにマージしてから、マージ後の結果を変換してください。
関連する Prompt Bites