FORMAT COMPARISON
GGUF vs Safetensors
GGUFはGGML系の対応実装へ推論モデルを渡す形式です。Safetensorsは名前付きテンソルを保存し、モデル定義や実行環境は別に用意します。
GGUFとSafetensors、どちらを選ぶ?
対応するGGML系環境で推論するならGGUF、対応するモデル実装で重みを扱うならSafetensorsを検討します。 両形式を拡張子変更だけで置き換えることはできません。変換元を保管し、対象アーキテクチャ・テンソル型に対応した変換とローダーを選びます。
GGUF向き
GGML系の対応ランタイムで使う推論モデルを保存・配布する・モデル情報とテンソルを一体の形式で扱う
- 対応するllama.cppなどでローカル推論を行う
- ランタイムが対応する量子化済みまたは非量子化モデルを配布する
Safetensors向き
機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む
- 任意のPythonオブジェクトではなくテンソルと基本メタデータを交換する
- 必要なテンソルだけを参照して読み込む処理
基本情報を比較
GGUFとSafetensorsの主な違いを確認できます。
| 項目 | GGUF | Safetensors |
|---|---|---|
| 拡張子 | .gguf | .safetensors |
| MIME Type | application/octet-stream | application/octet-stream |
| 主な用途 | GGML系の対応ランタイムで使う推論モデルを保存・配布する・モデル情報とテンソルを一体の形式で扱う | 機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む |
| 圧縮 | none | none |
| 開く方法 | 対象モデルとテンソル型に対応する、信頼できるGGUFローダーで開きます。llama.cpp系ツールを使う場合も、モデルのアーキテクチャ、必要なランタイム版、量子化方式、分割ファイルや補助ファイルの有無を確認してください。 | Safetensors対応ライブラリやモデルツールで読み込みます。対応ツールなら重み全体をGPUへ移す前にヘッダーからテンソル名・型・形状を確認できます。JSONヘッダーがあるからといってファイル全体がJSONテキストという意味ではありません。 |
| 書き出し・変換 | 元モデルの形式、変換スクリプトと対応ランタイムの手順を確認して変換します。変換と量子化は別工程の場合があります。量子化後はファイルサイズだけで選ばず、代表的な入力で出力品質・速度・メモリ使用量を評価し、分割ファイルやマルチモーダル用mmproj等が必要なら一緒に保管します。 | モデルframeworkの対応APIでテンソル重みをSafetensorsへ保存します。Pickleベースの入力を変換する場合、その変換処理は入力のオブジェクト復元を伴うことがあるため、信頼できない元ファイルを無警戒にロードしないでください。変換後はテンソル名、shape、dtype、総要素数、モデルの推論結果を照合します。 |
用途別の選び方
作りたいものや使う場面から選べます。
対応するllama.cppなどでローカル推論を行う
GGML系の対応ランタイムで使う推論モデルを保存・配布する・モデル情報とテンソルを一体の形式で扱う
GGUF向きランタイムが対応する量子化済みまたは非量子化モデルを配布する
GGML系の対応ランタイムで使う推論モデルを保存・配布する・モデル情報とテンソルを一体の形式で扱う
GGUF向き任意のPythonオブジェクトではなくテンソルと基本メタデータを交換する
機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む
Safetensors向き必要なテンソルだけを参照して読み込む処理
機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む
Safetensors向き確認ポイント 1
GGUFはモデル情報などのキー・値メタデータとテンソル記述を持ちます。 Safetensorsはテンソル名・dtype・shape・データ範囲を記録し、任意の推論コードを内包しません。
使い分け確認ポイント 2
GGUFには浮動小数点型も量子化型もあります。量子化は単なる可逆圧縮ではなく値を変え得るため、GGUFという名前だけで容量や精度を判断しません。
使い分け選ぶ理由を詳しく
- Safetensors側の設定・tokenizer・分割索引と、GGUF側の分割・補助ファイルを配布手順に従って確認します。同じ入力と前処理で変換前後の出力・メモリ・速度を測定します。
よくある質問
GGUFから元のSafetensorsを完全に復元できますか?
保証されません。量子化等で値が変わった場合、形式変換だけでは元の精度や学習状態は戻りません。元の重みと設定を保存してください。