Comparar
Safetensors versus ONNX: pesos ou grafos do modelo
Safetensors armazena tensores nomeados. ONNX representa um modelo com grafo computacional, entradas, saídas e versões de operadores.
Qual formato você deve escolher?
Considere Safetensors para carregar pesos em um modelo compatível, ou ONNX para entregar um grafo a um ambiente de execução compatível.
Indicado para Safetensors
Armazenar e distribuir pesos tensoriais de aprendizado de máquina · Carregar pesos entre frameworks compatíveis
- Trocar tensores e metadados básicos em vez de objetos Python arbitrários
- Fluxos que inspecionam e carregam tensores selecionados
Indicado para ONNX
Trocar grafos computacionais e pesos de aprendizado de máquina com runtimes compatíveis · Levar modelos entre frameworks de treinamento e ambientes de inferência
- Inferência em runtimes que aceitam os operadores e opset do modelo
- Trocar um grafo com entradas saídas e tipos
Informações básicas
| Campo | Safetensors | ONNX |
|---|---|---|
| Extensão | .safetensors | .onnx |
| Tipo MIME | application/octet-stream | application/octet-stream |
| Usos comuns | Armazenar e distribuir pesos tensoriais de aprendizado de máquina · Carregar pesos entre frameworks compatíveis | Trocar grafos computacionais e pesos de aprendizado de máquina com runtimes compatíveis · Levar modelos entre frameworks de treinamento e ambientes de inferência |
| Como abrir | Use uma biblioteca ou ferramenta de modelos compatível com Safetensors. Ferramentas compatíveis permitem examinar nomes, tipos e formas antes de carregar todos os pesos em um dispositivo. O cabeçalho JSON não transforma o arquivo inteiro em um documento de texto JSON. | Carregue em um validador ONNX ou runtime compatível. Antes de implantar, confira versões IR e opset, operadores, tipos e formas de entrada/saída e suporte do runtime; compare saídas com o modelo de origem usando entradas representativas. |
| Exportar ou converter | Salve os pesos usando uma API compatível com o framework do modelo. Converter uma entrada baseada em pickle pode desserializá-la; não carregue sem cuidado um arquivo de origem não confiável. Depois da conversão, compare nomes, formas, tipos, quantidade de elementos e saídas do modelo. | Exporte pelo conversor ONNX do framework de origem e valide a estrutura com ONNX checker. Conversão bem-sucedida não garante equivalência numérica nem execução no dispositivo alvo. Se houver dados externos, mantenha o modelo e todos os arquivos referenciados juntos na distribuição. |
Escolha por finalidade
Trocar tensores e metadados básicos em vez de objetos Python arbitrários
Armazenar e distribuir pesos tensoriais de aprendizado de máquina · Carregar pesos entre frameworks compatíveis
SafetensorsFluxos que inspecionam e carregam tensores selecionados
Armazenar e distribuir pesos tensoriais de aprendizado de máquina · Carregar pesos entre frameworks compatíveis
SafetensorsInferência em runtimes que aceitam os operadores e opset do modelo
Trocar grafos computacionais e pesos de aprendizado de máquina com runtimes compatíveis · Levar modelos entre frameworks de treinamento e ambientes de inferência
ONNXTrocar um grafo com entradas saídas e tipos
Trocar grafos computacionais e pesos de aprendizado de máquina com runtimes compatíveis · Levar modelos entre frameworks de treinamento e ambientes de inferência
ONNXPonto principal 1
Safetensors sozinho não define a arquitetura nem o código de inferência.
Mais sobre as diferençasPonto principal 2
ONNX pode conter tensores inicializadores e referenciar dados externos.
Mais sobre as diferençasMais sobre as diferenças
Não são substitutos diretos. Criar ONNX a partir de pesos exige a definição do modelo e uma exportação compatível. Mudar a extensão não cria um grafo.
- O cabeçalho Safetensors registra nomes, dtype, shape e intervalos de dados. Confira separadamente índices de fragmentos, configuração, tokenizadores e outros requisitos.
- Confira IR/opset, operadores e tipos ONNX no ambiente de execução e preserve referências aos pesos externos. Compare saídas com o mesmo pré-processamento e entradas representativas; validar a estrutura não garante precisão nem velocidade.
Perguntas frequentes
Safetensors é confiável independentemente da origem?
Não. Evita reconstruir objetos arbitrários com pickle, mas não garante a segurança da origem, do leitor, do código dependente ou do modelo.