localaiforum
ログイン
ガイド › モデルとフォーマット

モデルファイルフォーマット

モデルのリリースは1つのファイルではない。エンジンごとに再パッケージされるチェックポイントだ。このページはローカルで実際に出会うフォーマットの地図。llama.cpp界隈のGGUF、PyTorch/HFスタックのsafetensors、エンジン固有のGPU量子化、エッジランタイムのONNX。先にエンジンを選べ。フォーマットは後から付いてくる。

GGUF:1ファイルにすべて

.ggufファイルは、モデル重み、トークナイザ語彙、チャットテンプレート、テンソルごとのメタデータを1つのバイナリに詰める。ダウンロード1回、設定ゼロで、GGUFを話すすべてのアプリが同じファイルを動かす。llama.cppとllama-server、Ollama、LM Studio、Jan、KoboldCpp。フォーマットはメモリマップ可能なので、重みはディスクからページごとにストリームされる——起動は速く、OSのページキャッシュが無料でキャッシュを引き受ける。

Qwen3-8B-Q4_K_M.ggufのファイル名解剖、フィールドごと。

フィールド 値 意味
Qwen3 ファミリー+世代 エンジンが構築するアーキテクチャ。品質の世代でもある
8B サイズクラス 約80億パラメータ。VRAM予算の基準になる数
Q4_K_M 量子化タグ 重みあたり約4.8ビット、K-quantの「ミディアム」ミックス——量子化を参照
.gguf コンテナ 重み+トークナイザ+チャットテンプレート+メタデータ、1ファイルに

ロードせずにGGUFを検査。

python gguf-py/gguf/scripts/gguf_dump.py model.gguf

general.architecture     : qwen3
general.name             : Qwen3 8B
qwen3.context_length     : 32768
tokenizer.ggml.model     : gpt2 (BPE)
tokenizer.chat_template  : {%- ... a Jinja template ... %}

このメタデータブロックがあるから、GGUFは5つの異なるアプリで「そのまま動く」。エンジンはアーキテクチャを読み、グラフを構築し、トークナイザをロードし、チャットフロントエンドは埋め込みテンプレートを適用する。設定探索なし、語彙の不一致なし、トークナイザの別ダウンロードなし。

safetensors:Hugging Faceの標準

safetensorsは意図的に退屈なコンテナ。テンソル名、形状、dtypeのJSONヘッダに生バイトが続く。格納するのはテンソルだけ——盲目的にロードするには危険なpickle風味の.binチェックポイントと違って実行コードなし——で、ゼロコピーmmapをサポートする。PyTorchの起動が速い理由。Transformers、vLLM、SGLang、TRL、ファインチューニングのエコシステム全体がネイティブで話す。

テンソルしか格納しないので、動くモデルはリポジトリディレクトリ全体。

model-00001-of-00004.safetensors   ← 重みシャード(各約5 GB)
model-00002-of-00004.safetensors
model-00003-of-00004.safetensors
model-00004-of-00004.safetensors
model.safetensors.index.json        ← シャードマップ: テンソル名 → シャードファイル
config.json                         ← アーキテクチャ+ハイパーパラメータ
generation_config.json              ← デフォルトのサンプリング設定
tokenizer.json                      ← トークナイザ本体
tokenizer_config.json               ← チャットテンプレートはここ

シャーディングが存在するのは、70B FP16チェックポイントが約140 GBだから。1ファイルでは管理不能。vLLMでサーブするなら全シャードをダウンロードする。safetensorsリリースに「4ビットファイルだけ」の近道はない。量子化サービングは別リポジトリ(同じモデルのAWQまたはGPTQ派生)。

エンジン固有のGPU量子化:AWQ、GPTQ、EXL2

これらのフォーマットはGPU推論サーバのために存在する。そこではファイルの利便性よりスループットが重要。

  • AWQ——活性化を考慮した量子化。キャリブレーションプロンプトで、活性化が最も依存する重みチャネルの約1%を見つけ、それには保護されたスケーリングを、残りは4ビットへ。高速カーネルで4ビットのほぼ元通り品質。vLLMのデフォルト4ビット選択。
  • GPTQ——古典的GPU量子化。optimal brain量子化の子孫。レイヤーごとに量子化し、各レイヤーの誤差を未量子化重みに対して補償する。4ビット、GPU専用カーネル、サービング構成のあらゆる場所に今も存在。
  • EXL2——exllamav2の、重みあたりビット数が可変のフォーマット。2〜8ビットテンソルを混ぜて、合計がVRAM上限のちょうど下に着地するよう、1つのリポジトリをたとえば4.65 bpwに置ける。Q4が収まらずQ3では痛いときの道具。

3つすべてにキャリブレーションデータと一回の変換実行が必要で、どれもCPUでは動かない。

ONNX、MLX、生FP16/BF16

ONNXはポータブルな計算グラフフォーマット。transformersモデルを一度エクスポートすれば、onnxruntimeが動くどこでも実行できる——CUDAなしのWindowsマシン、スマホ、ブラウザのWebGPUデモ。onnxruntimeはグラフをCPU用にINT8へ量子化もできる。支払うのはセットアップの摩擦としばしばピーク速度。得るのはPyTorchスタックのないマシンへの移植性。エッジと組み込みが主戦場で、デスクトップチャットではない。

MLXはApple Silicon向けのAppleの配列フレームワーク。mlx-community orgが主要リリースの大半をMLXフォーマットに再パッケージする。4ビットと8ビットを含む。mlx-lmを動かすMシリーズMacでは、それがあなたのフォーマット——Apple Siliconを参照。

生FP16/BF16チェックポイントが重要なのは、無劣化の参照、ファインチューニングのベース、変換ソースが欲しいとき。BF16はFP32の8ビット指数範囲を保ち、その代わりに仮数ビットを差し出す——学習ではFP16よりはるかに安定、重みあたり2バイトは同じ。FP16/BF16の7〜8Bモデルは、コンテキストを数える前に重みだけで約16 GB。

どのエンジンにどのフォーマット

エンジン/スタック 食うフォーマット 備考
llama.cpp、Ollama、LM Studio、Jan GGUF 1ファイル。CPU+GPU。あらゆる量子化ファミリー
vLLM、TGI、SGLang safetensors、AWQ、GPTQ サーバスループット。GPU
exllamav2 / TabbyAPI EXL2、GPTQ 可変bpw。GPU
transformers / PyTorch safetensors 学習、ファインチューニング、研究
onnxruntime ONNX エッジ、モバイル、ブラウザ
mlx-lm MLX Apple Silicon

フォーマットの混在が典型的な初心者の過ち。vLLMに.ggufを、llama.cppにsafetensorsシャードを向けること。どちらも動かない——エンジンはエラーを出すか、先に変換ステップを必要とする。

変換パス

Hugging Faceリポジトリからローカルファイルへの標準経路は2ステップ。チェックポイントを16ビットGGUFに変換し、それから量子化して下げる。

git clone https://github.com/ggerganov/llama.cpp
pip install -r llama.cpp/requirements.txt

# 1. HFチェックポイント(safetensors)をGGUFに変換
python llama.cpp/convert_hf_to_gguf.py ./Qwen3-8B --outtype bf16 --outfile qwen3-8b-bf16.gguf

# 2. 目標サイズへ量子化
llama-quantize qwen3-8b-bf16.gguf qwen3-8b-Q4_K_M.gguf Q4_K_M

実践では自分で変換することはまれ。bartowskiやmradermacherのような量子化者が、注目リリースのすべてのサイズを数時間で公開する。自分で変換するのは、プライベートなファインチューニングがある、imatrixキャリブレーション済みI-quantが欲しい、非標準のビット目標が必要なとき——詳細は量子化。

エンベディングモデル——RAGの検索側の半分——は同じフォーマットで出荷される。llama.cppのエンベディングエンドポイントにはGGUF、sentence-transformersにはsafetensors。上のすべてと同じルール。実際に動かすエンジンにフォーマットを合わせること。

関連: 量子化 · モデルファミリー · エンジン · RAG