Vergleichen
Safetensors oder ONNX: Gewichte oder Modellgraphen
Safetensors speichert benannte Tensoren. ONNX beschreibt ein Modell mit Berechnungsgraph, Ein- und Ausgaben sowie Operatorversionen.
Welches Format sollten Sie wählen?
Erwägen Sie Safetensors zum Laden von Gewichten in ein kompatibles Modell oder ONNX zur Übergabe eines Graphen an eine kompatible Laufzeit.
Geeignet für Safetensors
Tensor-Gewichte für maschinelles Lernen speichern und verteilen · Gewichte zwischen unterstützten Frameworks laden
- Tensoren und Basis-Metadaten statt beliebiger Python-Objekte austauschen
- Ausgewählte Tensoren untersuchen und laden
Geeignet für ONNX
Austausch von ML-Berechnungsgraphen und Gewichten mit unterstützten Laufzeiten · Übertragen von Modellen zwischen Trainingsframeworks und Inferenzumgebungen
- Inferenz mit Laufzeiten die Modelloperatoren und Opset unterstützen
- Austausch eines Graphmodells mit Ein und Ausgaben sowie Typen
Grundlegende Informationen
| Merkmal | Safetensors | ONNX |
|---|---|---|
| Dateiendung | .safetensors | .onnx |
| MIME-Typ | application/octet-stream | application/octet-stream |
| Häufige Verwendung | Tensor-Gewichte für maschinelles Lernen speichern und verteilen · Gewichte zwischen unterstützten Frameworks laden | Austausch von ML-Berechnungsgraphen und Gewichten mit unterstützten Laufzeiten · Übertragen von Modellen zwischen Trainingsframeworks und Inferenzumgebungen |
| Öffnen | Verwenden Sie eine Safetensors-kompatible Bibliothek oder ein Modellwerkzeug. Unterstützte Werkzeuge können Tensor-Namen, dtypes und shapes untersuchen, bevor alle Gewichte auf ein Gerät geladen werden. Ein JSON-Header macht nicht die gesamte Datei zu einem JSON-Textdokument. | Laden Sie die Datei mit ONNX checker oder einer kompatiblen Inferenzlaufzeit. Prüfen Sie vor der Bereitstellung IR-/Opset-Versionen, Operatoren, Ein-/Ausgabetypen und shapes sowie Laufzeitunterstützung; vergleichen Sie die Ausgaben mit dem Quellmodell anhand repräsentativer Eingaben. |
| Exportieren oder konvertieren | Speichern Sie Tensor-Gewichte mit einer vom Modellframework unterstützten API. Eine Konvertierung von einer Pickle-basierten Eingabe kann diese deserialisieren; laden Sie eine nicht vertrauenswürdige Quelldatei daher nicht unbedacht. Vergleichen Sie anschließend Tensor-Namen, shapes, dtypes, Elementanzahl und Modellausgaben. | Exportieren Sie mit dem ONNX-Exporter des Quellframeworks und prüfen Sie die Struktur mit ONNX checker. Eine erfolgreiche Konvertierung garantiert weder numerische Gleichheit noch die Ausführung auf dem Zielgerät. Speichern Sie bei externen Daten das Modell und alle referenzierten Dateien zusammen. |
Nach Einsatzzweck wählen
Tensoren und Basis-Metadaten statt beliebiger Python-Objekte austauschen
Tensor-Gewichte für maschinelles Lernen speichern und verteilen · Gewichte zwischen unterstützten Frameworks laden
SafetensorsAusgewählte Tensoren untersuchen und laden
Tensor-Gewichte für maschinelles Lernen speichern und verteilen · Gewichte zwischen unterstützten Frameworks laden
SafetensorsInferenz mit Laufzeiten die Modelloperatoren und Opset unterstützen
Austausch von ML-Berechnungsgraphen und Gewichten mit unterstützten Laufzeiten · Übertragen von Modellen zwischen Trainingsframeworks und Inferenzumgebungen
ONNXAustausch eines Graphmodells mit Ein und Ausgaben sowie Typen
Austausch von ML-Berechnungsgraphen und Gewichten mit unterstützten Laufzeiten · Übertragen von Modellen zwischen Trainingsframeworks und Inferenzumgebungen
ONNXWichtiger Punkt 1
Safetensors allein definiert weder Modellarchitektur noch Inferenzcode.
Unterschiede im DetailWichtiger Punkt 2
ONNX kann Initialisierungstensoren enthalten und externe Daten referenzieren.
Unterschiede im DetailUnterschiede im Detail
Die Formate sind kein direkter Ersatz füreinander. ONNX aus Gewichten zu erzeugen erfordert eine Modelldefinition und einen unterstützten Export. Eine andere Dateiendung erzeugt keinen Graphen.
- Der Safetensors-Header beschreibt Tensornamen, dtype, shape und Datenbereiche. Prüfen Sie separat Teildatei-Indizes, Konfiguration, Tokenizer und weitere Anforderungen.
- Prüfen Sie ONNX IR/opset, Operatoren und Typen für die Laufzeit und erhalten Sie externe Gewichtsreferenzen. Vergleichen Sie Ausgaben mit identischer Vorverarbeitung und repräsentativen Eingaben; Strukturprüfungen garantieren weder Genauigkeit noch Tempo.
Häufige Fragen
Ist Safetensors unabhängig von der Quelle vertrauenswürdig?
Nein. Es vermeidet die Rekonstruktion beliebiger Objekte über pickle, garantiert aber nicht die Sicherheit von Quelle, Loader, Abhängigkeiten oder Modell.