Il formato legacy Pickle (.bin, .pt di PyTorch) serializza sia i pesi tensoriali sia lo stato dell'interprete Python: durante la deserializzazione con torch.load(), il bytecode esegue la funzione __reduce__(), consentendo a un attaccante di iniettare ed eseguire codice arbitrario (RCE) sul sistema host con i privilegi del processo di inferenza.
Il formato SafeTensors (.safetensors), sviluppato da Hugging Face:
1. Zero codice eseguibile: memorizza esclusivamente un header JSON con i metadati dei tensori e i buffer binari raw, senza alcun interprete di codice.
2. Zero-Copy memory mapping: usa mmap per mappare i pesi direttamente dallo storage alla RAM/VRAM della GPU, abbattendo la latenza di caricamento e prevenendo overflow.
3. Ispezione deterministica: consente di verificare dimensioni, tipi di dato (float16, bfloat16) e hash SHA-256 dei tensori prima del caricamento in memoria.