Comparar
Safetensors frente a ONNX: pesos o grafos del modelo
Safetensors almacena tensores con nombre. ONNX representa un modelo con grafo de cálculo, entradas, salidas y versiones de operadores.
¿Qué formato deberías elegir?
Considere Safetensors para cargar pesos en un modelo compatible, u ONNX para entregar un grafo a un entorno de ejecución compatible.
Adecuado para Safetensors
Guardar y distribuir pesos tensoriales de aprendizaje automático · Cargar pesos entre frameworks compatibles
- Intercambiar tensores y metadatos básicos en lugar de objetos Python arbitrarios
- Flujos que inspeccionan y cargan tensores seleccionados
Adecuado para ONNX
Intercambiar grafos computacionales y pesos de aprendizaje automático con runtimes compatibles · Trasladar modelos entre frameworks de entrenamiento y entornos de inferencia
- Inferencia con runtimes compatibles con los operadores y opset del modelo
- Intercambio de grafos con entradas salidas y tipos
Información básica
| Campo | Safetensors | ONNX |
|---|---|---|
| Extensión | .safetensors | .onnx |
| Tipo MIME | application/octet-stream | application/octet-stream |
| Usos habituales | Guardar y distribuir pesos tensoriales de aprendizaje automático · Cargar pesos entre frameworks compatibles | Intercambiar grafos computacionales y pesos de aprendizaje automático con runtimes compatibles · Trasladar modelos entre frameworks de entrenamiento y entornos de inferencia |
| Cómo abrir | Usa una biblioteca o herramienta de modelos compatible con Safetensors. Las herramientas compatibles permiten consultar nombres, tipos y formas antes de cargar todos los pesos en un dispositivo. Que la cabecera sea JSON no convierte todo el archivo en texto JSON. | Cárgalo con un validador ONNX o runtime compatible. Antes de desplegar, revisa versiones IR y opset, operadores, tipos y formas de entrada/salida y soporte del runtime; compara las salidas con el modelo original usando entradas representativas. |
| Exportar o convertir | Guarda los pesos tensoriales mediante una API compatible con el framework. Convertir desde una entrada basada en pickle puede deserializarla; no cargues a la ligera un archivo de origen no confiable. Tras convertir, compara nombres, formas, tipos, número de elementos y resultados del modelo. | Exporta con la herramienta ONNX del framework de origen y valida la estructura con ONNX checker. Una conversión correcta no garantiza equivalencia numérica ni ejecución en el dispositivo objetivo. Si hay datos externos, distribuye juntos el modelo y todos los archivos referenciados. |
Elegir según el uso
Intercambiar tensores y metadatos básicos en lugar de objetos Python arbitrarios
Guardar y distribuir pesos tensoriales de aprendizaje automático · Cargar pesos entre frameworks compatibles
SafetensorsFlujos que inspeccionan y cargan tensores seleccionados
Guardar y distribuir pesos tensoriales de aprendizaje automático · Cargar pesos entre frameworks compatibles
SafetensorsInferencia con runtimes compatibles con los operadores y opset del modelo
Intercambiar grafos computacionales y pesos de aprendizaje automático con runtimes compatibles · Trasladar modelos entre frameworks de entrenamiento y entornos de inferencia
ONNXIntercambio de grafos con entradas salidas y tipos
Intercambiar grafos computacionales y pesos de aprendizaje automático con runtimes compatibles · Trasladar modelos entre frameworks de entrenamiento y entornos de inferencia
ONNXPunto clave 1
Safetensors por sí solo no define la arquitectura ni el código de inferencia.
Más sobre las diferenciasPunto clave 2
ONNX puede contener tensores inicializadores y referenciar datos externos.
Más sobre las diferenciasMás sobre las diferencias
No son sustitutos directos. Crear ONNX a partir de pesos requiere definir el modelo y un proceso de exportación compatible. Cambiar la extensión no crea un grafo.
- La cabecera Safetensors registra nombres, dtype, shape y rangos de datos. Compruebe aparte índices de fragmentos, configuración, tokenizadores y otros requisitos.
- Compruebe IR/opset, operadores y tipos ONNX con el entorno de ejecución; conserve las referencias a pesos externos. Compare salidas con el mismo preprocesamiento y entradas representativas; comprobar la estructura no garantiza precisión ni velocidad.
Preguntas frecuentes
¿Safetensors es fiable independientemente de su origen?
No. Evita reconstruir objetos arbitrarios con pickle, pero no garantiza la seguridad del origen, lector, código dependiente ni modelo.