← Toutes les recherches

Open source · Compression vectorielle

Semafold : des vecteurs plus petits, des compromis mesurables

Données du rapport vérifiées : 25 septembre 2026

Télécharger le PDF ↓

Semafold est notre bibliothèque Python open source pour compresser les représentations numériques utilisées par les systèmes d’IA. Elle réduit le stockage des embeddings et permet d’explorer des tenseurs de cache d’attention plus petits, en mesurant ensemble les octets économisés et l’erreur de reconstruction.

Mesure synthétique · rapport source 0.1.0 du 31 mars 2026 · bibliothèque examinée en 0.2.0

90,50%de stockage d’embeddings en moins que float323 bits · 74 738 octets, métadonnées incluses
5,26×compression des embeddings face au 16 bitsMême résultat ; référence dense de 393 216 octets
9,47×compression clé/valeur face au float32885 734 octets pour les deux tenseurs

Question de recherche

Quel espace peut-on économiser pour les vecteurs d’IA en comptant la représentation compressée complète, métadonnées comprises ?

Méthode

Le rapport source utilise des données synthétiques : 128 vecteurs de 1 536 valeurs et des paires de tenseurs clé/valeur de forme (4, 8, 256, 128). Les encodages vectoriels à 2, 3 et 4 bits sont comparés au stockage dense float32 et 16 bits. Les tailles incluent les données compressées, les valeurs auxiliaires et les métadonnées. La qualité est évaluée par les erreurs de reconstruction et de similarité.

Résultats

À 3 bits, la représentation des embeddings passe de 786 432 à 74 738 octets : 90,50 % de moins qu’en float32 et 80,99 % de moins qu’en 16 bits. La paire clé/valeur étudiée passe de 8 388 608 à 885 734 octets. Ces mesures de stockage sur données synthétiques ne démontrent ni un gain de vitesse applicative ni une meilleure qualité des réponses.

Cas d’utilisation

Les archives d’embeddings, la mémoire vectorielle des agents et les chaînes de recherche personnalisées sont des points d’intégration possibles. Une API en préversion traite les tenseurs clé et valeur du mécanisme d’attention. Semafold compresse des nombres ; il ne résume pas les documents et ne raccourcit pas les prompts.

Choisir le compromis entre taille et fidélité

Dans le test de reconstruction, l’encodage à 2 bits occupe 50 077 octets avec une erreur quadratique moyenne de 0,1178 ; à 3 bits, 74 738 octets avec 0,0348 ; à 4 bits, 99 484 octets avec 0,0098. Plus de bits préservent mieux les valeurs d’origine. Ces erreurs ne mesurent ni le rappel de recherche ni l’exactitude des réponses.

Une bibliothèque Python aux limites explicites

Python 3.10+ et NumPy suffisent pour le cœur. La version 0.2.0 ajoute une accélération facultative via PyTorch (CUDA/MPS) ou MLX (Metal). L’API racine documentée fournit des contrats typés d’encodage et de décodage, ainsi que le décompte des octets. Les codecs TurboQuant et l’API clé/valeur sont des modules en préversion sans garantie de compatibilité. Aucun gain de vitesse GPU n’a été mesuré dans ce rapport.

Limites

La compression entraîne une perte d’information. La qualité de recherche et le comportement du modèle doivent être évalués sur les données visées. Les très petits blocs de cache peuvent dépasser le stockage 16 bits à cause des métadonnées. Les API de compression et de cache restent en préversion ; les intégrations prêtes à l’emploi pour l’inférence sont hors du périmètre de ce rapport.

À propos de ce rapport

Ce rapport technique n’a pas été évalué par les pairs. Les chiffres proviennent du rapport de mesure 0.1.0 du dépôt ; les tests n’ont pas été relancés pour ce site. Le code, les exemples, les scripts de mesure et la politique de stabilité des API sont publics sous Apache-2.0.

Notes techniques et sources

Mesure synthétique · rapport source 0.1.0 du 31 mars 2026 · bibliothèque examinée en 0.2.0

Les noms de fichiers et les empreintes SHA-256 identifient les versions exactes des sources utilisées pour préparer ce rapport.

  • benchmarks/turboquant_benchmark_report.mdSHA-256: ef384c74195d3f0944b36b1d2cf75baa78ca77e6e29009faa1f08ed3d648f1ad
  • STABILITY.mdSHA-256: f085264ec4f6c0a0b3e962e8cccea470fd6e11fdb501f3492b4b4865ae6885e7
  • CHANGELOG.mdSHA-256: b52cccda6dc65f2d5f8de5f31d7c44a634d1250dcd61c5b1cd1c5ebd46b603f6
  • pyproject.tomlSHA-256: b5ed5776e2bdde03a2ff6b62176ed687993b9a7bc39e4e74721f49c8763950ce
Demander les documents de recherche →
← Toutes les recherches
Semafold : des vecteurs plus petits, des compromis mesurables | Mindtro | Intelligence, Engineered