~/tools / Archivos de modelo y plantillas de chat / Safetensors Metadata Viewer
Safetensors Metadata Viewer — Abre archivos safetensors: dtypes, parámetros, pesos, caché KV
Abre en tu navegador los archivos safetensors de un modelo de Hugging Face y mira qué contienen sin cargar los pesos: cada tensor con su tipo de datos y su forma, el número de parámetros, el tamaño de los pesos y el __metadata__. Si el modelo está dividido en varios archivos, añade model.safetensors.index.json para encontrar archivos que faltan o están incompletos, y añade config.json para ver la arquitectura, la longitud de contexto y la caché KV. La herramienta comprueba cada archivo como lo hace la biblioteca oficial de safetensors. Solo se lee el principio de cada archivo y no se sube nada.
O suelta archivos aquí: archivos .safetensors, model.safetensors.index.json y config.json. Solo se lee el principio de cada archivo .safetensors y nada sale de tu equipo.
curl -L -r 0-1048575 -o model.safetensors https://huggingface.co/OWNER/REPO/resolve/main/model.safetensorsEl número de parámetros suma los elementos de cada tensor de los archivos (el producto de su forma), de la misma manera que el Hugging Face Hub cuenta los parámetros que muestra para un modelo. El tamaño de los pesos son los datos que contienen los archivos, en los tipos de datos de los archivos.
Caché KV = 2 × capas × cabezas KV × tamaño de cabeza × 2 bytes (f16) × longitud de contexto. Los valores salen de config.json (num_hidden_layers, num_key_value_heads, head_dim, o hidden_size ÷ num_attention_heads). En los modelos cuya parte de texto está en text_config, la herramienta lo lee de ahí.
Comprobado el 2026-11-09 con estas fuentes y con safetensors 0.8.0 oficial: Formato safetensors · Hugging Face: leer los metadatos · Ollama: importar un modelo
Todo se ejecuta en tu navegador. Solo se lee el principio de cada archivo .safetensors y no se envía nada a ninguna parte.
safetensors es el formato de archivo que Hugging Face usa para los pesos de los modelos. Un archivo safetensors empieza con 8 bytes que indican la longitud de una cabecera JSON. La cabecera enumera cada tensor con su tipo de datos (dtype), su forma (shape) y su posición (data_offsets), y puede incluir un mapa __metadata__ de cadenas de texto como {"format": "pt"}. Después vienen los pesos. Esta herramienta lee solo esa cabecera, con el formato descrito en el repositorio de safetensors, así que un archivo de varios gigabytes se abre en un instante: en Qwen2.5-7B-Instruct cada cabecera ocupa de 7 a 11 KiB, en archivos de 3.3 a 3.7 GiB. Cuenta los parámetros como lo hace el Hugging Face Hub (el producto de la forma de cada tensor, sumado por cada tipo de datos), suma el tamaño de los pesos y comprueba lo que comprueba la biblioteca oficial de safetensors: la longitud de la cabecera, el JSON, los tipos de datos, que los tensores llenen los datos sin huecos ni solapamientos, que el tamaño de cada tensor coincida con su tipo y su forma, y que el archivo termine justo después del último tensor. Un modelo dividido en varios archivos trae model.safetensors.index.json, que indica qué archivo contiene cada tensor. Elige los archivos juntos y la herramienta enumera los archivos que faltan, los tensores que no están donde dice el índice y si el tamaño total coincide. Añade config.json y muestra la arquitectura, la longitud de contexto, las capas y las cabezas de atención, y la caché KV en f16, el valor por defecto de Ollama: 2 × capas × cabezas KV × tamaño de cabeza × 2 bytes × longitud de contexto. Comprobamos la herramienta con las cabeceras de Qwen2.5-7B-Instruct (4 archivos) y de Qwen2.5-0.5B-Instruct de Hugging Face: el número de parámetros coincidió con el que informa el Hub (7,615,616,512 y 494,032,768) y el tamaño calculado a partir de cada cabecera coincidió con el del archivo al byte. También abrimos 52 archivos válidos y rotos con el paquete oficial de Python safetensors 0.8.0, y la herramienta acepta y rechaza los mismos archivos.
La lógica principal de esta herramienta es de código abierto, con licencia MIT. github.com/seigo5555/toolkitbox-lib/src/safetensors.ts
Casos de uso
- Comprueba los archivos safetensors de un modelo de Hugging Face antes de convertirlo o importarlo: tipos de datos, número de parámetros y si todos los archivos están completos
- Encuentra el archivo que falta o que está cortado en un modelo dividido en varios archivos, con model.safetensors.index.json
- Mira dentro de un modelo de Hugging Face sin descargar los pesos, guardando solo el principio de cada archivo
Cómo usarlo
- Elige los archivos .safetensors (varios a la vez si el modelo está dividido) y, si los tienes, model.safetensors.index.json y config.json. También puedes soltarlos en el recuadro.
- Para mirar un modelo sin descargarlo, guarda solo el principio de cada archivo con el comando curl que se muestra (una petición Range, el método de la documentación de Hugging Face) y marca "Solo el principio del archivo".
- También puedes pegar index.json, config.json o una cabecera (el JSON que sigue a los primeros 8 bytes) en el cuadro de texto y añadirlo.
FAQ
¿Se sube el archivo?
No. El navegador lee los archivos de tu equipo, y la herramienta lee solo el principio de cada archivo .safetensors: los 8 bytes con la longitud de la cabecera y la cabecera. Los pesos no se leen.
¿Por qué el número de parámetros difiere del nombre del modelo?
La herramienta cuenta todos los tensores de los archivos, como hace el Hugging Face Hub. Nombres como 7B están redondeados. Además, algunos modelos comparten un tensor entre la entrada y la salida: Qwen2.5-0.5B-Instruct tiene tie_word_embeddings en su config.json y su archivo no tiene lm_head.weight.
¿Qué significa "file not fully covered"?
La biblioteca oficial de safetensors rechaza un archivo cuyo tamaño no es exactamente 8 bytes + la cabecera + el final del último tensor, con "incomplete metadata, file not fully covered". Si el archivo es más corto, falta parte de los pesos, por ejemplo porque una descarga se detuvo antes de tiempo.
¿Por qué unos problemas son rojos y otros amarillos?
Los problemas rojos son los que la biblioteca oficial rechaza. Los amarillos incumplen la especificación, pero la biblioteca oficial aun así lee el archivo: un nombre de tensor que aparece dos veces (la biblioteca se queda con el último), o una cabecera que empieza con espacios en blanco o está rellenada con caracteres que no son espacios.
¿Cómo se importa safetensors en Ollama?
La guía de importación de Ollama apunta FROM a la carpeta que contiene los pesos safetensors y después ejecuta ollama create. En nuestra prueba con Ollama 0.40.11 en macOS, se rechazó una carpeta sin config.json, y también un modelo Qwen2 (Qwen2ForCausalLM) por arquitectura no admitida. Si tu modelo no se puede importar, conviértelo primero a GGUF, por ejemplo con convert_hf_to_gguf.py de llama.cpp.
¿Qué precisión tiene el tamaño de la caché KV?
La fórmula coincidió con el log de Ollama en nuestra prueba (224 MiB para qwen2.5:7b con 4096 tokens), y el config.json de Qwen2.5-7B-Instruct da los mismos 224 MiB. Vale para f16, el valor por defecto de Ollama. Los modelos con ventana deslizante, KV comprimida (kv_lora_rank) o capas distintas de la atención completa usan una cantidad diferente; la herramienta lo indica cuando config.json lo muestra.