なぜ GGUF を SAFETENSORS に変換するのですか?
.gguf を .safetensors に変換することで、モデルを Hugging Face Transformers や diffusers に再度読み込んだり、ファインチューニングしたり、別の方法で再量子化したりできるようになります。GGUF は llama.cpp での推論に最適化されていますが、.safetensors は PyTorch/HF エコシステムにおける標準的な pickle フリーの形式です。なお、非常に新しい GGUF 形式のリビジョンは、常に変換できるとは限りません。
GGUF から SAFETENSORS への変換方法
gguf_to_safetensors OPEN-SOURCE
python gguf_to_safetensors.py --input model.gguf --output model.safetensors を実行します。デフォルトは F16 です。BF16 出力にするには --bf16 を追加してください。
GGUF2Safetensors OPEN-SOURCE
GGUF の重みをメモリ上で PyTorch テンソルにアップキャストし、Transformers で直接使用可能な .safetensors シャードの Hugging Face フォルダを書き出します。
gguf library + safetensors FREE
GGUFReader で読み込み、テンソルごとに gguf.quants.dequantize() を呼び出し、safetensors.torch.save_file() を実行します。dtype やシャーディングを完全に制御できます。
これらの形式について
.gguf ファイルは GGML Universal Format ファイルであり、llama.cpp や関連ツールが大規模言語モデルを単一のファイルとして保存するために使用するバイナリコンテナです。モデルの重み、トークナイザー、およびすべてのメタデータをまとめて保持し、通常は一般的なハードウェアでモデルが動作するように量子化されています。LM…
.GGUF の詳細を開く →.SAFETENSORS ファイルは、特定のソフトウェアで使用されるデータファイルです。
.SAFETENSORS の詳細を開く →品質と注意点
- 量子化された GGUF(Q4/Q5など)の逆量子化は「ロスあり(lossy)」です。
.safetensorsは元のモデルとビット単位で一致することはありません。 - ツールの更新が llama.cpp の変更に追いついていないため、新しい GGUF 形式のバージョンでは変換に失敗することがあります。
- 出力は F16/BF16(または F32)になるため、コンパクトな量子化 GGUF と比較してファイルサイズが大幅に増加します。
よくある質問
GGUFからsafetensorsへの変換はロスレスですか?
最近のGGUFが変換に失敗したのはなぜですか?
結果をHugging Face Transformersで読み込めますか?
.safetensors)を作成すれば可能です。