~/tools / Arquivos de modelo e templates de chat / Safetensors Metadata Viewer
Safetensors Metadata Viewer — Abra arquivos safetensors: dtypes, parâmetros, pesos, KV cache
Abra no navegador os arquivos safetensors de um modelo do Hugging Face e veja o que há dentro sem carregar os pesos: cada tensor com seu tipo de dados e sua forma, o número de parâmetros, o tamanho dos pesos e o __metadata__. Se o modelo estiver dividido em vários arquivos, adicione model.safetensors.index.json para achar arquivos ausentes ou incompletos, e adicione config.json para ver a arquitetura, o tamanho do contexto e o KV cache. A ferramenta verifica cada arquivo como a biblioteca oficial do safetensors. Só o início de cada arquivo é lido e nada é enviado.
Ou solte arquivos aqui: arquivos .safetensors, model.safetensors.index.json e config.json. Só o início de cada arquivo .safetensors é lido e nada sai do seu computador.
curl -L -r 0-1048575 -o model.safetensors https://huggingface.co/OWNER/REPO/resolve/main/model.safetensorsO número de parâmetros soma os elementos de cada tensor dos arquivos (o produto da sua forma), do mesmo modo que o Hugging Face Hub conta os parâmetros que mostra para um modelo. O tamanho dos pesos são os dados que os arquivos contêm, nos tipos de dados dos arquivos.
KV cache = 2 × camadas × cabeças KV × tamanho da cabeça × 2 bytes (f16) × tamanho do contexto. Os valores vêm do config.json (num_hidden_layers, num_key_value_heads, head_dim, ou hidden_size ÷ num_attention_heads). Para modelos cuja parte de texto está em text_config, a ferramenta lê de lá.
Verificado em 2026-11-09 com estas fontes e com o safetensors 0.8.0 oficial: Formato safetensors · Hugging Face: ler os metadados · Ollama: importar um modelo
Tudo roda no seu navegador. Só o início de cada arquivo .safetensors é lido e nada é enviado a lugar nenhum.
safetensors é o formato de arquivo que o Hugging Face usa para os pesos dos modelos. Um arquivo safetensors começa com 8 bytes que dão o tamanho de um cabeçalho JSON. O cabeçalho lista cada tensor com seu tipo de dados (dtype), sua forma (shape) e sua posição (data_offsets), e pode conter um mapa __metadata__ de strings como {"format": "pt"}. Depois vêm os pesos. Esta ferramenta lê só esse cabeçalho, com o formato descrito no repositório do safetensors, então um arquivo de vários gigabytes abre num instante: no Qwen2.5-7B-Instruct cada cabeçalho tem de 7 a 11 KiB, em arquivos de 3.3 a 3.7 GiB. Ela conta os parâmetros como o Hugging Face Hub (o produto da forma de cada tensor, somado para cada tipo de dados), soma o tamanho dos pesos e verifica o que a biblioteca oficial do safetensors verifica: o tamanho do cabeçalho, o JSON, os tipos de dados, se os tensores preenchem os dados sem lacunas nem sobreposições, se o tamanho de cada tensor corresponde ao seu tipo e à sua forma, e se o arquivo termina logo depois do último tensor. Um modelo dividido em vários arquivos vem com model.safetensors.index.json, que diz qual arquivo contém cada tensor. Escolha os arquivos juntos e a ferramenta lista os arquivos ausentes, os tensores que não estão onde o índice diz e se o tamanho total confere. Adicione config.json e ela mostra a arquitetura, o tamanho do contexto, as camadas e as cabeças de atenção, e o KV cache em f16, o padrão do Ollama: 2 × camadas × cabeças KV × tamanho da cabeça × 2 bytes × tamanho do contexto. Verificamos a ferramenta com os cabeçalhos do Qwen2.5-7B-Instruct (4 arquivos) e do Qwen2.5-0.5B-Instruct do Hugging Face: o número de parâmetros coincidiu com o que o Hub informa (7,615,616,512 e 494,032,768) e o tamanho calculado a partir de cada cabeçalho coincidiu com o do arquivo, byte a byte. Também abrimos 52 arquivos válidos e quebrados com o pacote oficial de Python safetensors 0.8.0, e a ferramenta aceita e recusa os mesmos arquivos.
A lógica principal desta ferramenta é de código aberto, sob a licença MIT. github.com/seigo5555/toolkitbox-lib/src/safetensors.ts
Casos de uso
- Verifique os arquivos safetensors de um modelo do Hugging Face antes de convertê-lo ou importá-lo: tipos de dados, número de parâmetros e se todos os arquivos estão completos
- Ache o arquivo ausente ou cortado em um modelo dividido em vários arquivos, com model.safetensors.index.json
- Olhe dentro de um modelo do Hugging Face sem baixar os pesos, salvando só o início de cada arquivo
Como usar
- Escolha os arquivos .safetensors (vários de uma vez para um modelo dividido) e, se tiver, model.safetensors.index.json e config.json. Você também pode soltá-los na caixa.
- Para olhar um modelo sem baixá-lo, salve só o início de cada arquivo com o comando curl mostrado (uma requisição Range, o método da documentação do Hugging Face) e marque "Só o início do arquivo".
- Você também pode colar index.json, config.json ou um cabeçalho (o JSON depois dos primeiros 8 bytes) na caixa de texto e adicioná-lo.
FAQ
O arquivo é enviado?
Não. O navegador lê os arquivos no seu computador, e a ferramenta lê só o início de cada arquivo .safetensors: os 8 bytes com o tamanho do cabeçalho e o cabeçalho. Os pesos não são lidos.
Por que o número de parâmetros difere do nome do modelo?
A ferramenta conta todos os tensores dos arquivos, como o Hugging Face Hub. Nomes como 7B são arredondados. Alguns modelos também compartilham um tensor entre a entrada e a saída: o Qwen2.5-0.5B-Instruct tem tie_word_embeddings no seu config.json, e seu arquivo não tem lm_head.weight.
O que significa "file not fully covered"?
A biblioteca oficial do safetensors recusa um arquivo cujo tamanho não é exatamente 8 bytes + o cabeçalho + o fim do último tensor, com "incomplete metadata, file not fully covered". Se o arquivo for mais curto, falta parte dos pesos, por exemplo porque um download parou antes do fim.
Por que alguns problemas são vermelhos e outros amarelos?
Os problemas vermelhos são os que a biblioteca oficial recusa. Os amarelos violam a especificação, mas a biblioteca oficial ainda lê o arquivo: um nome de tensor que aparece duas vezes (a biblioteca fica com o último), ou um cabeçalho que começa com espaço em branco ou é preenchido com caracteres que não são espaços.
Como importar safetensors no Ollama?
O guia de importação do Ollama aponta FROM para a pasta que contém os pesos safetensors e depois executa ollama create. No nosso teste com o Ollama 0.40.11 no macOS, uma pasta sem config.json foi recusada, e um modelo Qwen2 (Qwen2ForCausalLM) também, como arquitetura não suportada. Se o seu modelo não puder ser importado, converta-o primeiro para GGUF, por exemplo com o convert_hf_to_gguf.py do llama.cpp.
Qual é a precisão do tamanho do KV cache?
A fórmula coincidiu com o log do Ollama no nosso teste (224 MiB para o qwen2.5:7b com 4096 tokens), e o config.json do Qwen2.5-7B-Instruct dá os mesmos 224 MiB. Vale para f16, o padrão do Ollama. Modelos com janela deslizante, KV comprimido (kv_lora_rank) ou camadas diferentes da atenção completa usam uma quantidade diferente; a ferramenta avisa quando o config.json mostra isso.