~/tools / File model dan templat obrolan / Safetensors Metadata Viewer

Safetensors Metadata Viewer — Buka file safetensors: tipe data, parameter, ukuran bobot, KV cache

Buka file safetensors dari model Hugging Face di browser Anda dan lihat isinya tanpa memuat bobot: setiap tensor beserta tipe data dan bentuknya, jumlah parameter, ukuran bobot, dan __metadata__. Untuk model yang dipecah menjadi beberapa file, tambahkan model.safetensors.index.json untuk menemukan file yang hilang atau tidak lengkap, dan tambahkan config.json untuk melihat arsitektur, panjang konteks, dan KV cache. Alat ini memeriksa setiap file dengan cara yang sama seperti pustaka safetensors resmi. Hanya bagian awal setiap file yang dibaca, dan tidak ada yang diunggah.

Atau jatuhkan file di sini: file .safetensors, model.safetensors.index.json, dan config.json. Hanya bagian awal setiap file .safetensors yang dibaca, dan tidak ada yang keluar dari komputer Anda.

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

Jumlah parameter menjumlahkan elemen setiap tensor di file (hasil kali bentuknya), dengan cara yang sama seperti Hugging Face Hub menghitung parameter yang ditampilkannya untuk sebuah model. Ukuran bobot adalah data yang dimuat file, dalam tipe data file itu sendiri.

KV cache = 2 × layer × KV head × ukuran head × 2 byte (f16) × panjang konteks. Nilainya berasal dari config.json (num_hidden_layers, num_key_value_heads, head_dim, atau hidden_size ÷ num_attention_heads). Untuk model yang bagian teksnya ada di text_config, alat ini membacanya dari sana.

Diperiksa pada 2026-11-09 terhadap sumber-sumber berikut dan safetensors 0.8.0 resmi: Format safetensors · Hugging Face: membaca metadata · Ollama: mengimpor model

Semuanya berjalan di browser Anda. Hanya bagian awal setiap file .safetensors yang dibaca, dan tidak ada yang dikirim ke mana pun.

safetensors adalah format file yang digunakan Hugging Face untuk bobot model. File safetensors diawali 8 byte yang menyatakan panjang header JSON. Header mencantumkan setiap tensor beserta tipe data (dtype), bentuk (shape), dan posisinya (data_offsets), dan dapat memuat peta string __metadata__ seperti {"format": "pt"}. Bobot menyusul setelahnya. Alat ini hanya membaca header itu, dengan format yang dijelaskan di repositori safetensors, sehingga file berukuran beberapa gigabyte terbuka dalam sekejap: pada Qwen2.5-7B-Instruct, setiap header berukuran 7 sampai 11 KiB, dalam file berukuran 3.3 sampai 3.7 GiB. Alat ini menghitung parameter seperti yang dilakukan Hugging Face Hub (hasil kali bentuk setiap tensor, dijumlahkan untuk setiap tipe data), menjumlahkan ukuran bobot, dan memeriksa apa yang diperiksa pustaka safetensors resmi: panjang header, JSON, tipe data, apakah tensor mengisi data tanpa celah atau tumpang tindih, apakah ukuran setiap tensor sesuai dengan tipe dan bentuknya, dan apakah file berakhir tepat setelah tensor terakhir. Model yang dipecah menjadi beberapa file disertai model.safetensors.index.json, yang menyatakan file mana yang memuat tiap tensor. Pilih file-file itu bersama-sama, dan alat ini mencantumkan file yang hilang, tensor yang tidak berada di tempat yang dinyatakan indeks, dan apakah ukuran totalnya cocok. Tambahkan config.json, dan alat ini menampilkan arsitektur, panjang konteks, layer dan attention head, serta KV cache pada f16, bawaan Ollama: 2 × layer × KV head × ukuran head × 2 byte × panjang konteks. Kami memeriksa alat ini dengan header Qwen2.5-7B-Instruct (4 file) dan Qwen2.5-0.5B-Instruct dari Hugging Face: jumlah parameternya cocok dengan angka yang dilaporkan Hub (7,615,616,512 dan 494,032,768), dan ukuran yang dihitung dari setiap header cocok dengan file hingga ke byte. Kami juga membuka 52 file yang valid dan rusak dengan paket Python resmi safetensors 0.8.0, dan alat ini menerima dan menolak file yang sama.

Logika utama alat ini bersifat sumber terbuka dengan lisensi MIT. github.com/seigo5555/toolkitbox-lib/src/safetensors.ts

Kapan dipakai

  • Periksa file safetensors model Hugging Face sebelum Anda mengonversi atau mengimpornya: tipe data, jumlah parameter, dan apakah setiap file lengkap
  • Temukan file yang hilang atau terpotong pada model yang dipecah menjadi beberapa file, dengan model.safetensors.index.json
  • Lihat isi model di Hugging Face tanpa mengunduh bobotnya, dengan hanya menyimpan bagian awal setiap file

Cara pakai

  1. Pilih file .safetensors (beberapa sekaligus untuk model yang dipecah) dan, jika ada, model.safetensors.index.json dan config.json. Anda juga dapat menjatuhkannya ke kotak.
  2. Untuk melihat model tanpa mengunduhnya, simpan hanya bagian awal setiap file dengan perintah curl yang ditampilkan (permintaan Range, metode dalam dokumentasi Hugging Face) dan centang "Hanya bagian awal file".
  3. Anda juga dapat menempelkan index.json, config.json, atau header (JSON setelah 8 byte pertama) ke kotak teks lalu menambahkannya.

Tanya jawab

Apakah file diunggah?

Tidak. Browser membaca file di komputer Anda, dan alat ini hanya membaca bagian awal setiap file .safetensors: 8 byte berisi panjang header dan header itu sendiri. Bobot tidak dibaca.

Mengapa jumlah parameter berbeda dari nama model?

Alat ini menghitung setiap tensor di dalam file, seperti Hugging Face Hub. Nama seperti 7B adalah angka yang dibulatkan. Beberapa model juga berbagi satu tensor antara input dan output: Qwen2.5-0.5B-Instruct memiliki tie_word_embeddings di config.json, dan filenya tidak memiliki lm_head.weight.

Apa arti "file not fully covered"?

Pustaka safetensors resmi menolak file yang ukurannya tidak tepat sama dengan 8 byte + header + akhir tensor terakhir, dengan pesan "incomplete metadata, file not fully covered". Jika file lebih pendek, sebagian bobot hilang, misalnya karena unduhan berhenti lebih awal.

Mengapa ada masalah yang merah dan ada yang kuning?

Masalah merah adalah masalah yang ditolak pustaka resmi. Masalah kuning melanggar spesifikasi, tetapi pustaka resmi tetap membaca file tersebut: nama tensor yang muncul dua kali (pustaka menyimpan yang terakhir), atau header yang diawali spasi kosong atau diisi dengan karakter selain spasi.

Bagaimana cara mengimpor safetensors ke Ollama?

Panduan impor Ollama mengarahkan FROM ke folder yang berisi bobot safetensors, lalu menjalankan ollama create. Dalam pengujian kami dengan Ollama 0.40.11 di macOS, folder tanpa config.json ditolak, begitu pula model Qwen2 (Qwen2ForCausalLM) karena arsitektur yang tidak didukung. Jika model Anda tidak dapat diimpor, konversikan dulu ke GGUF, misalnya dengan convert_hf_to_gguf.py dari llama.cpp.

Seberapa akurat ukuran KV cache?

Rumus ini cocok dengan log Ollama dalam pengujian kami (224 MiB untuk qwen2.5:7b pada 4096 token), dan config.json dari Qwen2.5-7B-Instruct memberikan 224 MiB yang sama. Ini untuk f16, bawaan Ollama. Model dengan sliding window, KV terkompresi (kv_lora_rank), atau layer selain full attention memakai jumlah yang berbeda; alat ini memberi tahu hal itu ketika config.json menunjukkannya.

Terkait