What is SafeTensors?

    Un formato de archivo seguro, rápido y eficiente en memoria para almacenar pesos de redes neuronales, diseñado como una alternativa más segura a los formatos basados en pickle de Python.

    Definition

    SafeTensors es un formato de archivo desarrollado por Hugging Face para serializar y deserializar tensores de redes neuronales (pesos del modelo). Fue creado para abordar las limitaciones de seguridad y rendimiento de la serialización predeterminada basada en pickle de PyTorch (archivos .bin). A diferencia de pickle, que puede ejecutar código Python arbitrario durante la deserialización (convirtiéndolo en un vector potencial para malware), SafeTensors usa un formato binario simple con un encabezado JSON que es demostrablemente seguro de cargar — no es posible la ejecución de código.

    El formato almacena tensores en un diseño binario mapeable en memoria con un pequeño encabezado JSON que describe nombres de tensores, formas, tipos de datos y desplazamientos de bytes. Este diseño permite la carga de copia cero: el archivo puede mapearse directamente en el espacio de direcciones del proceso sin análisis ni copia, reduciendo drásticamente los tiempos de carga para modelos grandes. Un archivo de modelo de 14 GB que tarda 30 segundos en cargar desde pickle de PyTorch puede cargarse desde SafeTensors en menos de 5 segundos.

    SafeTensors ha sido rápidamente adoptado como el formato estándar para la distribución de modelos en Hugging Face Hub. La mayoría de los modelos publicados recientemente incluyen archivos SafeTensors, y la biblioteca de carga de modelos de Hugging Face usa SafeTensors por defecto cuando está disponible. El formato también es soportado por los principales frameworks de inferencia incluyendo vLLM, TGI y llama.cpp, convirtiéndolo en un estándar de facto para el almacenamiento de pesos de modelos.

    Why It Matters

    La seguridad es la motivación principal de SafeTensors. Los archivos pickle de PyTorch han sido usados para distribuir malware disfrazado de modelos de ML — cargar un archivo pickle malicioso puede ejecutar código arbitrario con los permisos del usuario, potencialmente comprometiendo todo el sistema. Para organizaciones que descargan modelos de repositorios públicos, este es un riesgo serio de cadena de suministro. SafeTensors elimina este vector de ataque por completo por diseño.

    El rendimiento es el beneficio secundario. La carga más rápida de modelos reduce los tiempos de inicio de los servicios de inferencia, permite una experimentación más rápida durante el desarrollo y reduce el tiempo para intercambiar modelos en producción. Para modelos grandes (más de 70B), la diferencia entre la carga con pickle y SafeTensors puede ser de minutos versus segundos, lo cual importa para servicios con requisitos estrictos de disponibilidad.

    How It Works

    Un archivo SafeTensors consiste en un encabezado seguido de datos de tensores en bruto. El encabezado es un objeto JSON que lista el nombre, tipo de dato (float16, bfloat16, float32, int8, etc.), forma y desplazamiento de bytes de cada tensor dentro del archivo. El propio encabezado está precedido por su longitud como un entero de 8 bytes, permitiendo un análisis eficiente.

    Los datos de los tensores se almacenan en un diseño binario plano, contiguos en memoria, alineados para acceso eficiente. Este diseño permite el mapeo de memoria — el sistema operativo mapea el archivo directamente en memoria virtual, y los datos de los tensores se leen del disco bajo demanda a medida que se accede a las páginas. No se requiere deserialización, análisis ni transformación de datos. Este enfoque de copia cero significa que cargar un modelo SafeTensors no usa memoria adicional más allá de los propios pesos del modelo, a diferencia de pickle que requiere memoria temporal para el buffer de deserialización.

    Example Use Case

    Una institución financiera consciente de la seguridad descarga modelos open-source de Hugging Face Hub para evaluación. Su política de seguridad prohíbe cargar archivos pickle debido al riesgo de ejecución de código arbitrario. Al filtrar por modelos que proporcionan formato SafeTensors, pueden evaluar modelos de forma segura sin ejecutar código no confiable. El formato SafeTensors también se integra con su pipeline de verificación de integridad basado en sumas de verificación, asegurando que los pesos del modelo no hayan sido manipulados en tránsito.

    Key Takeaways

    • SafeTensors es un formato seguro de pesos de modelo que previene la ejecución de código arbitrario durante la carga.
    • Usa almacenamiento binario mapeable en memoria para carga rápida de modelos de copia cero.
    • Fue creado por Hugging Face como un reemplazo seguro para los archivos de modelo de PyTorch basados en pickle.
    • Los tiempos de carga son 3-10x más rápidos que pickle para modelos grandes.
    • SafeTensors es el estándar de facto para la distribución de modelos en Hugging Face Hub.

    How Ertas Helps

    Ertas Studio carga modelos base desde el formato SafeTensors por seguridad y rendimiento, y puede exportar pesos de adaptadores ajustados en SafeTensors antes de convertirlos a GGUF para despliegue local.

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.