~/tools / Model dosyaları ve sohbet şablonları / Safetensors Metadata Viewer
Safetensors Metadata Viewer — safetensors dosyalarını açın: dtype, parametreler, ağırlık boyutu, KV önbelleği
Bir Hugging Face modelinin safetensors dosyalarını tarayıcınızda açın ve ağırlıkları yüklemeden içinde ne olduğunu görün: her tensör veri türü ve şekliyle, parametre sayısı, ağırlıkların boyutu ve __metadata__. Birkaç dosyaya bölünmüş bir model için eksik veya tamamlanmamış dosyaları bulmak üzere model.safetensors.index.json, mimariyi, bağlam uzunluğunu ve KV önbelleğini görmek için config.json ekleyin. Araç her dosyayı resmi safetensors kütüphanesinin yaptığı gibi denetler. Her dosyanın yalnızca başı okunur ve hiçbir şey yüklenmez.
Ya da dosyaları buraya bırakın: .safetensors dosyaları, model.safetensors.index.json ve config.json. Her .safetensors dosyasının yalnızca başı okunur ve hiçbir şey bilgisayarınızdan çıkmaz.
curl -L -r 0-1048575 -o model.safetensors https://huggingface.co/OWNER/REPO/resolve/main/model.safetensorsParametre sayısı, dosyalardaki her tensörün öğelerini toplar (şeklinin çarpımı); Hugging Face Hub'ın bir model için gösterdiği parametreleri saydığı yolla aynıdır. Ağırlıkların boyutu, dosyaların içerdiği verilerdir; dosyaların veri türleriyle hesaplanır.
KV önbelleği = 2 × katmanlar × KV başlıkları × baş boyutu × 2 bayt (f16) × bağlam uzunluğu. Değerler config.json içinden gelir (num_hidden_layers, num_key_value_heads, head_dim veya hidden_size ÷ num_attention_heads). Metin kısmı text_config içinde olan modellerde araç onu oradan okur.
2026-11-09 tarihinde şu kaynaklara ve resmi safetensors 0.8.0 kütüphanesine karşı denetlendi: safetensors biçimi · Hugging Face: meta verileri okuma · Ollama: bir modeli içe aktarma
Her şey tarayıcınızda çalışır. Her .safetensors dosyasının yalnızca başı okunur ve hiçbir şey hiçbir yere gönderilmez.
safetensors, Hugging Face'in model ağırlıkları için kullandığı dosya biçimidir. Bir safetensors dosyası, bir JSON başlığının uzunluğunu veren 8 baytla başlar. Başlık her tensörü veri türü (dtype), şekil (shape) ve konumuyla (data_offsets) listeler ve {"format": "pt"} gibi dizelerden oluşan bir __metadata__ eşlemesi içerebilir. Ağırlıklar bundan sonra gelir. Bu araç yalnızca bu başlığı, safetensors deposunda anlatılan biçime göre okur; bu yüzden birkaç gigabaytlık bir dosya bir anda açılır: Qwen2.5-7B-Instruct içinde her başlık 7 ile 11 KiB arasındadır, dosyalar ise 3.3 ile 3.7 GiB. Parametreleri Hugging Face Hub'ın saydığı gibi sayar (her tensörün şeklinin çarpımı, her veri türü için toplanır), ağırlıkların boyutunu toplar ve resmi safetensors kütüphanesinin denetlediklerini denetler: başlık uzunluğu, JSON, veri türleri, tensörlerin verileri boşluk ve çakışma olmadan doldurup doldurmadığı, her tensörün boyutunun türü ve şekliyle uyuşup uyuşmadığı ve dosyanın son tensörden hemen sonra bitip bitmediği. Birkaç dosyaya bölünmüş bir modelle birlikte, hangi dosyanın hangi tensörü içerdiğini söyleyen model.safetensors.index.json gelir. Dosyaları birlikte seçin; araç eksik dosyaları, dizinin söylediği yerde olmayan tensörleri ve toplam boyutun tutup tutmadığını listeler. config.json ekleyin; mimariyi, bağlam uzunluğunu, katmanları ve dikkat başlıklarını, ayrıca Ollama'nın varsayılanı olan f16'daki KV önbelleğini gösterir: 2 × katmanlar × KV başlıkları × baş boyutu × 2 bayt × bağlam uzunluğu. Aracı Hugging Face'teki Qwen2.5-7B-Instruct (4 dosya) ve Qwen2.5-0.5B-Instruct başlıklarıyla denetledik: parametre sayıları Hub'ın bildirdikleriyle eşleşti (7,615,616,512 ve 494,032,768) ve her başlıktan hesaplanan boyut dosyayla bayt bayt eşleşti. Ayrıca 52 geçerli ve bozuk dosyayı resmi Python paketi safetensors 0.8.0 ile açtık ve araç aynı dosyaları kabul edip reddediyor.
Bu aracın temel mantığı MIT lisansıyla açık kaynaktır. github.com/seigo5555/toolkitbox-lib/src/safetensors.ts
Kullanım örnekleri
- Bir Hugging Face modelinin safetensors dosyalarını dönüştürmeden veya içe aktarmadan önce denetlemek: veri türleri, parametre sayısı ve her dosyanın eksiksiz olup olmadığı
- Birkaç dosyaya bölünmüş bir modelde eksik veya yarım kalmış dosyayı model.safetensors.index.json ile bulmak
- Hugging Face'teki bir modelin içine, ağırlıkları indirmeden, yalnızca her dosyanın başını kaydederek bakmak
Nasıl kullanılır
- .safetensors dosyalarını seçin (bölünmüş bir model için birkaçını birden) ve varsa model.safetensors.index.json ile config.json dosyalarını da seçin. Bunları kutuya da bırakabilirsiniz.
- Bir modele indirmeden bakmak için her dosyanın yalnızca başını gösterilen curl komutuyla kaydedin (bir Range isteği, Hugging Face belgelerindeki yöntem) ve "Dosyanın yalnızca başı" kutusunu işaretleyin.
- index.json, config.json veya bir başlığı (ilk 8 bayttan sonraki JSON) metin kutusuna yapıştırıp ekleyebilirsiniz.
SSS
Dosya yükleniyor mu?
Hayır. Tarayıcı dosyaları bilgisayarınızda okur ve araç her .safetensors dosyasının yalnızca başını okur: başlık uzunluğunu veren 8 bayt ve başlık. Ağırlıklar okunmaz.
Parametre sayısı model adından neden farklı?
Araç, Hugging Face Hub gibi, dosyalardaki her tensörü sayar. 7B gibi adlar yuvarlanmıştır. Bazı modeller ayrıca girdi ile çıktı arasında bir tensörü paylaşır: Qwen2.5-0.5B-Instruct modelinin config.json dosyasında tie_word_embeddings vardır ve dosyasında lm_head.weight yoktur.
"file not fully covered" ne demek?
Resmi safetensors kütüphanesi, boyutu tam olarak 8 bayt + başlık + son tensörün sonu olmayan bir dosyayı "incomplete metadata, file not fully covered" iletisiyle reddeder. Dosya daha kısaysa ağırlıkların bir kısmı eksiktir; örneğin bir indirme erken durmuştur.
Bazı sorunlar neden kırmızı, bazıları sarı?
Kırmızı sorunlar resmi kütüphanenin reddettikleridir. Sarılar belirtimi bozar, ama resmi kütüphane dosyayı yine de okur: iki kez geçen bir tensör adı (kütüphane sonuncusunu tutar) veya boşlukla başlayan ya da boşluk dışındaki karakterlerle doldurulmuş bir başlık.
safetensors'ı Ollama'ya nasıl aktarırım?
Ollama'nın içe aktarma kılavuzu, FROM'u safetensors ağırlıklarını içeren klasöre yönlendirir ve ardından ollama create çalıştırır. macOS'ta Ollama 0.40.11 ile yaptığımız testte config.json içermeyen bir klasör reddedildi, bir Qwen2 modeli (Qwen2ForCausalLM) de desteklenmeyen mimari olarak reddedildi. Modeliniz içe aktarılamazsa önce GGUF'a dönüştürün, örneğin llama.cpp'nin convert_hf_to_gguf.py aracıyla.
KV önbelleği boyutu ne kadar doğru?
Formül testimizde Ollama'nın günlüğüyle eşleşti (qwen2.5:7b için 4096 token'da 224 MiB) ve Qwen2.5-7B-Instruct'ın config.json dosyası da aynı 224 MiB'yi verir. Ollama'nın varsayılanı olan f16 içindir. Kayan pencereli, sıkıştırılmış KV'li (kv_lora_rank) veya tam dikkat dışında katmanlı modeller farklı bir miktar kullanır; config.json bunu gösterdiğinde araç bunu belirtir.