Format Atlas

FORMAT COMPARISON

Safetensors vs ONNX

Safetensorsは名前付きテンソルを保存します。ONNXは演算グラフや入出力、演算子の版を含むモデル表現です。

最終確認: 2026-09-28

SafetensorsとONNX、どちらを選ぶ?

対応モデルへ重みを読み込むならSafetensors、対応ランタイムへグラフを渡すならONNXを検討します。 直接の代替形式ではありません。重みからONNXを作るにはモデル定義と対応する変換工程が必要です。単なる拡張子変更ではグラフは生成されません。

Safetensors向き

機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む

  • 任意のPythonオブジェクトではなくテンソルと基本メタデータを交換する
  • 必要なテンソルだけを参照して読み込む処理

ONNX向き

機械学習モデルの演算グラフと重みを対応ランタイムへ受け渡す・異なる学習フレームワークと推論環境の間でモデルを交換する

  • 標準演算子とopsetに対応するランタイムで推論する
  • グラフ・入出力型・演算子を含むモデルを交換する

基本情報を比較

SafetensorsとONNXの主な違いを確認できます。

項目SafetensorsONNX
拡張子.safetensors.onnx
MIME Typeapplication/octet-streamapplication/octet-stream
主な用途機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む機械学習モデルの演算グラフと重みを対応ランタイムへ受け渡す・異なる学習フレームワークと推論環境の間でモデルを交換する
圧縮nonenone
開く方法Safetensors対応ライブラリやモデルツールで読み込みます。対応ツールなら重み全体をGPUへ移す前にヘッダーからテンソル名・型・形状を確認できます。JSONヘッダーがあるからといってファイル全体がJSONテキストという意味ではありません。ONNX対応の検査ツールや推論ランタイムで読み込みます。運用前にモデルのIR/opset版、使用演算子、入出力の型とshape、ランタイムの対応状況を確認し、代表入力で元モデルと出力を比較します。
書き出し・変換モデルframeworkの対応APIでテンソル重みをSafetensorsへ保存します。Pickleベースの入力を変換する場合、その変換処理は入力のオブジェクト復元を伴うことがあるため、信頼できない元ファイルを無警戒にロードしないでください。変換後はテンソル名、shape、dtype、総要素数、モデルの推論結果を照合します。元の学習frameworkが提供するONNX exporterでモデルを変換し、ONNX checker等で構造を検証します。変換成功は数値一致や対象デバイスでの実行を保証しません。外部データを使う場合は本体とすべての参照ファイルを同じ配布単位で保存します。

用途別の選び方

作りたいものや使う場面から選べます。

任意のPythonオブジェクトではなくテンソルと基本メタデータを交換する

機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む

Safetensors向き

必要なテンソルだけを参照して読み込む処理

機械学習モデルのテンソル重みを保存・配布する・対応するフレームワーク間で重みを読み込む

Safetensors向き

標準演算子とopsetに対応するランタイムで推論する

機械学習モデルの演算グラフと重みを対応ランタイムへ受け渡す・異なる学習フレームワークと推論環境の間でモデルを交換する

ONNX向き

グラフ・入出力型・演算子を含むモデルを交換する

機械学習モデルの演算グラフと重みを対応ランタイムへ受け渡す・異なる学習フレームワークと推論環境の間でモデルを交換する

ONNX向き

確認ポイント 1

Safetensors単体はモデル構造や推論コードを定義しません。 ONNXはグラフ内の初期値テンソルを持ち、外部データも参照できます。

使い分け

確認ポイント 2

Safetensorsのヘッダーはテンソル名・dtype・shape・データ範囲を記録します。分割重みの索引、設定、tokenizer等の必要物は別途確認します。

使い分け

選ぶ理由を詳しく

  • ONNXはIR/opset・演算子・型を対象ランタイムと照合し、外部重み参照を維持します。同じ前処理と代表入力で出力を比較し、構造検査合格を精度・速度の保証としません。

よくある質問

Safetensorsなら出所を確認しなくても安全ですか?

いいえ。pickleによる任意オブジェクト復元を避ける形式ですが、出所・ローダー・依存コード・モデル自体の安全性を保証しません。

詳しく見る

関連する用途・確認手順

AIモデルを受け渡す前の確認手順

参考資料・仕様