~/tools / Modelldateien und Chat-Templates / Safetensors Metadata Viewer

Safetensors Metadata Viewer — safetensors-Dateien öffnen: dtypes, Parameter, Gewichtsgröße, KV-Cache

Öffnen Sie die safetensors-Dateien eines Hugging-Face-Modells im Browser und sehen Sie, was darin steckt, ohne die Gewichte zu laden: jeden Tensor mit Datentyp und Form, die Parameteranzahl, die Größe der Gewichte und die __metadata__. Bei einem auf mehrere Dateien verteilten Modell fügen Sie model.safetensors.index.json hinzu, um fehlende oder unvollständige Dateien zu finden, und config.json, um die Architektur, die Kontextlänge und den KV-Cache zu sehen. Das Tool prüft jede Datei so wie die offizielle safetensors-Bibliothek. Es wird nur der Anfang jeder Datei gelesen, und nichts wird hochgeladen.

Oder ziehen Sie Dateien hierher: .safetensors-Dateien, model.safetensors.index.json und config.json. Es wird nur der Anfang jeder .safetensors-Datei gelesen, und nichts verlässt Ihren Computer.

curl -L -r 0-1048575 -o model.safetensors https://huggingface.co/OWNER/REPO/resolve/main/model.safetensors

Die Parameteranzahl addiert die Elemente jedes Tensors in den Dateien (das Produkt seiner Form), genauso wie der Hugging Face Hub die Parameter zählt, die er für ein Modell anzeigt. Die Größe der Gewichte sind die Daten, die die Dateien enthalten, in den Datentypen der Dateien.

KV-Cache = 2 × Schichten × KV-Heads × Head-Größe × 2 Bytes (f16) × Kontextlänge. Die Werte stammen aus config.json (num_hidden_layers, num_key_value_heads, head_dim oder hidden_size ÷ num_attention_heads). Bei Modellen, deren Textteil in text_config steht, liest das Tool ihn von dort.

Am 2026-11-09 gegen diese Quellen und die offizielle safetensors-Bibliothek 0.8.0 geprüft: safetensors-Format · Hugging Face: Metadaten lesen · Ollama: Ein Modell importieren

Alles läuft in Ihrem Browser. Es wird nur der Anfang jeder .safetensors-Datei gelesen, und nichts wird irgendwohin gesendet.

safetensors ist das Dateiformat, das Hugging Face für Modellgewichte verwendet. Eine safetensors-Datei beginnt mit 8 Bytes, die die Länge eines JSON-Headers angeben. Der Header listet jeden Tensor mit Datentyp (dtype), Form (shape) und Position (data_offsets) auf und kann eine __metadata__-Zuordnung von Zeichenketten wie {"format": "pt"} enthalten. Danach folgen die Gewichte. Dieses Tool liest nur diesen Header, nach dem Format aus dem safetensors-Repository, sodass sich eine Datei von mehreren Gigabyte im Nu öffnet: Bei Qwen2.5-7B-Instruct ist jeder Header 7 bis 11 KiB groß, in Dateien von 3.3 bis 3.7 GiB. Es zählt die Parameter so wie der Hugging Face Hub (das Produkt der Form jedes Tensors, je Datentyp aufsummiert), addiert die Größe der Gewichte und prüft, was die offizielle safetensors-Bibliothek prüft: die Länge des Headers, das JSON, die Datentypen, ob die Tensoren die Daten ohne Lücken und Überlappungen füllen, ob die Größe jedes Tensors zu seinem Typ und seiner Form passt und ob die Datei direkt nach dem letzten Tensor endet. Zu einem auf mehrere Dateien verteilten Modell gehört model.safetensors.index.json, das angibt, welche Datei welchen Tensor enthält. Wählen Sie die Dateien gemeinsam aus, und das Tool listet fehlende Dateien, Tensoren, die nicht dort liegen, wo der Index es sagt, und ob die Gesamtgröße stimmt. Fügen Sie config.json hinzu, und es zeigt die Architektur, die Kontextlänge, die Schichten und Attention-Heads sowie den KV-Cache bei f16, dem Standard von Ollama: 2 × Schichten × KV-Heads × Head-Größe × 2 Bytes × Kontextlänge. Wir haben das Tool mit den Headern von Qwen2.5-7B-Instruct (4 Dateien) und Qwen2.5-0.5B-Instruct von Hugging Face geprüft: Die Parameteranzahlen stimmten mit denen des Hubs überein (7,615,616,512 und 494,032,768), und die aus jedem Header berechnete Größe stimmte bytegenau mit der Datei überein. Außerdem haben wir 52 gültige und defekte Dateien mit dem offiziellen Python-Paket safetensors 0.8.0 geöffnet, und das Tool akzeptiert und lehnt dieselben Dateien ab.

Die Kernlogik dieses Tools ist Open Source unter der MIT-Lizenz. github.com/seigo5555/toolkitbox-lib/src/safetensors.ts

Anwendungsfälle

  • Die safetensors-Dateien eines Hugging-Face-Modells vor der Konvertierung oder dem Import prüfen: Datentypen, Parameteranzahl und ob jede Datei vollständig ist
  • Die fehlende oder abgeschnittene Datei in einem auf mehrere Dateien verteilten Modell finden, mit model.safetensors.index.json
  • In ein Modell auf Hugging Face hineinsehen, ohne die Gewichte herunterzuladen, indem Sie nur den Anfang jeder Datei speichern

Verwendung

  1. Wählen Sie die .safetensors-Dateien aus (bei einem verteilten Modell mehrere auf einmal) und, falls vorhanden, model.safetensors.index.json und config.json. Sie können sie auch auf das Feld ziehen.
  2. Um ein Modell anzusehen, ohne es herunterzuladen, speichern Sie mit dem angezeigten curl-Befehl nur den Anfang jeder Datei (eine Range-Anfrage, die Methode aus der Dokumentation von Hugging Face) und setzen Sie den Haken bei „Nur der Anfang der Datei“.
  3. Sie können auch index.json, config.json oder einen Header (das JSON nach den ersten 8 Bytes) in das Textfeld einfügen und hinzufügen.

FAQ

Wird die Datei hochgeladen?

Nein. Der Browser liest die Dateien auf Ihrem Computer, und das Tool liest nur den Anfang jeder .safetensors-Datei: die 8 Bytes mit der Länge des Headers und den Header. Die Gewichte werden nicht gelesen.

Warum weicht die Parameteranzahl vom Modellnamen ab?

Das Tool zählt jeden Tensor in den Dateien, so wie der Hugging Face Hub. Angaben wie 7B sind gerundet. Manche Modelle teilen sich außerdem einen Tensor zwischen Eingabe und Ausgabe: Qwen2.5-0.5B-Instruct hat tie_word_embeddings in seiner config.json, und seine Datei enthält kein lm_head.weight.

Was bedeutet „file not fully covered“?

Die offizielle safetensors-Bibliothek lehnt eine Datei ab, deren Größe nicht genau 8 Bytes + der Header + das Ende des letzten Tensors beträgt, mit "incomplete metadata, file not fully covered". Ist die Datei kürzer, fehlt ein Teil der Gewichte, zum Beispiel weil ein Download vorzeitig abgebrochen wurde.

Warum sind manche Probleme rot und andere gelb?

Rote Probleme lehnt die offizielle Bibliothek ab. Gelbe verstoßen gegen die Spezifikation, aber die offizielle Bibliothek liest die Datei trotzdem: ein Tensorname, der zweimal vorkommt (die Bibliothek behält den letzten), oder ein Header, der mit Leerraum beginnt oder mit anderen Zeichen als Leerzeichen aufgefüllt ist.

Wie importiere ich safetensors in Ollama?

Der Import-Leitfaden von Ollama lässt FROM auf den Ordner zeigen, der die safetensors-Gewichte enthält, und führt dann ollama create aus. In unserem Test mit Ollama 0.40.11 unter macOS wurde ein Ordner ohne config.json abgelehnt, ebenso ein Qwen2-Modell (Qwen2ForCausalLM) als nicht unterstützte Architektur. Lässt sich Ihr Modell nicht importieren, konvertieren Sie es zuerst in GGUF, zum Beispiel mit convert_hf_to_gguf.py von llama.cpp.

Wie genau ist die Größe des KV-Cache?

Die Formel stimmte in unserem Test mit dem Log von Ollama überein (224 MiB für qwen2.5:7b bei 4096 Tokens), und die config.json von Qwen2.5-7B-Instruct ergibt dieselben 224 MiB. Sie gilt für f16, den Standard von Ollama. Modelle mit Sliding Window, komprimiertem KV (kv_lora_rank) oder anderen Schichten als voller Attention brauchen eine andere Menge; das Tool weist darauf hin, wenn config.json es zeigt.

Ähnliche Tools