Open Source · Vektorkompression
Semafold: kleinere Vektoren, messbare Abwägungen
Semafold ist unsere quelloffene Python-Bibliothek zur Kompression numerischer KI-Repräsentationen. Sie reduziert den Speicherbedarf von Embeddings und ermöglicht Experimente mit kleineren Attention-Cache-Tensoren. Speicherersparnis und Rekonstruktionsfehler werden gemeinsam ausgewiesen.
Synthetischer Benchmark · Quellbericht 0.1.0 vom 31. März 2026 · Bibliothek 0.2.0 geprüft
Forschungsfrage
Wie viel Speicher lässt sich für KI-Vektoren einsparen, wenn die vollständige komprimierte Darstellung einschließlich Metadaten zählt?
Methode
Der Quellbericht verwendet synthetische Daten: 128 Vektoren mit jeweils 1.536 Werten und Schlüssel/Wert-Tensorpaare der Form (4, 8, 256, 128). Vektorkodierungen mit 2, 3 und 4 Bit werden mit dichter float32- und 16-Bit-Speicherung verglichen. Die Größen enthalten Nutzdaten, Hilfswerte und Metadaten. Rekonstruktions- und Ähnlichkeitsfehler dienen als Qualitätsmaße.
Ergebnisse
Bei 3 Bit sinkt die Embedding-Darstellung von 786.432 auf 74.738 Byte: 90,50 % weniger als float32 und 80,99 % weniger als 16-Bit-Speicherung. Das untersuchte Schlüssel/Wert-Paar schrumpft von 8.388.608 auf 885.734 Byte. Dies sind Speichermessungen an synthetischen Daten, keine gemessenen Verbesserungen der Anwendungsgeschwindigkeit oder Antwortqualität.
Einsatzbereiche
Embedding-Archive, Vektorspeicher für Agenten und eigene Suchpipelines bieten Ansatzpunkte für die Integration. Eine separate Vorschau-API verarbeitet die Schlüssel- und Wert-Tensoren des Attention-Mechanismus. Semafold komprimiert Zahlen; es fasst keine Dokumente zusammen und kürzt keine Prompts.
Speicherbedarf und Genauigkeit abwägen
Im Rekonstruktionsbenchmark benötigt die 2-Bit-Kodierung 50.077 Byte bei einem mittleren quadratischen Fehler von 0,1178; 3 Bit benötigen 74.738 Byte bei 0,0348; 4 Bit benötigen 99.484 Byte bei 0,0098. Mehr Bits erhalten die ursprünglichen Werte genauer. Diese Fehlermaße messen weder Suchtrefferquote noch Antwortkorrektheit.
Python-Bibliothek mit klaren API-Grenzen
Für den Kern genügen Python 3.10+ und NumPy. Version 0.2.0 ergänzt optionale Beschleunigung über PyTorch (CUDA/MPS) oder MLX (Metal). Die dokumentierte Root-API bietet typisierte Kodier- und Dekodierverträge sowie Byte-Abrechnung. TurboQuant-Codecs und die Schlüssel/Wert-API sind Vorschau-Module ohne garantierte Kompatibilität. GPU-Geschwindigkeitsgewinne wurden hier nicht gemessen.
Grenzen
Die Kompression ist verlustbehaftet. Suchqualität und Modellverhalten müssen am vorgesehenen Einsatzfall geprüft werden. Sehr kleine Cache-Blöcke können wegen Metadaten größer als die 16-Bit-Darstellung werden. Kompressions- und Cache-APIs bleiben Vorschau-Schnittstellen; fertige Serving-Integrationen sind nicht Gegenstand dieses Berichts.
Über diesen Bericht
Dieser technische Bericht ist nicht begutachtet. Die Zahlen wurden aus dem Benchmarkbericht für 0.1.0 übernommen und nicht für diese Website erneut gemessen. Code, Beispiele, Benchmarkskripte und API-Stabilitätsrichtlinie sind unter Apache-2.0 öffentlich verfügbar.
- Semafold auf GitHub ansehen ↗
- Original-Benchmarkbericht ↗
- Ausführbare Python-Beispiele ↗
- API-Stabilitätsrichtlinie ↗
- Apache-2.0 ↗
Technische Hinweise und Quellen
Synthetischer Benchmark · Quellbericht 0.1.0 vom 31. März 2026 · Bibliothek 0.2.0 geprüft
Dateinamen und SHA-256-Prüfsummen kennzeichnen die genauen Quellenversionen dieses Berichts.
- benchmarks/turboquant_benchmark_report.md
SHA-256: ef384c74195d3f0944b36b1d2cf75baa78ca77e6e29009faa1f08ed3d648f1ad - STABILITY.md
SHA-256: f085264ec4f6c0a0b3e962e8cccea470fd6e11fdb501f3492b4b4865ae6885e7 - CHANGELOG.md
SHA-256: b52cccda6dc65f2d5f8de5f31d7c44a634d1250dcd61c5b1cd1c5ebd46b603f6 - pyproject.toml
SHA-256: b5ed5776e2bdde03a2ff6b62176ed687993b9a7bc39e4e74721f49c8763950ce
