Introduction

Safetensors, un projet initié par Hugging Face, a été créé pour répondre à un besoin spécifique : stocker et partager des poids de modèles de manière sécurisée, sans exécuter de code arbitraire. Le format pickle dominant à l'époque présentait un risque réel d'exécution de code malveillant. Alors que ce risque était acceptable lors des débuts du machine learning, il est devenu inacceptable avec l'essor du partage de modèles ouverts.

Contexte Technique

Le format Safetensors est conçu pour être simple et sécurisé. Il se compose d'un en-tête JSON avec une limite de 100 Mo, qui décrit les métadonnées des tenseurs, suivi de données de tenseurs brutes. Le chargement sans copie permet de mapper les tenseurs directement depuis le disque, tandis que le chargement différé permet de lire des poids individuels sans désérialiser l'ensemble d'un point de contrôle.

Analyse et Implications

Aujourd'hui, Safetensors est le format par défaut pour la distribution de modèles sur le Hugging Face Hub et d'autres plateformes, avec des dizaines de milliers de modèles utilisés dans toutes les modalités du machine learning. Le projet est désormais ouvert à la gouvernance communautaire, avec la PyTorch Foundation comme maison neutre. Cela signifie que la marque, le référentiel et la gouvernance du projet sont gérés par la Linux Foundation, plutôt que par une seule entreprise.

Perspective

Les prochains mois verront une croissance significative, avec des fonctionnalités telles que le chargement et la sauvegarde de tenseurs sur les appareils, le chargement parallèle de tenseurs et le support de formats de quantification avancés. La gouvernance ouverte et la collaboration avec d'autres projets au sein de la PyTorch Foundation permettront de résoudre les problèmes de l'écosystème de manière collective. Les contributions sont les bienvenues à tous les niveaux, de la recherche de bogues à la documentation et aux nouvelles fonctionnalités.