livero ist eine winzige Vektor-Datenbank für On-Device-Umgebungen wie Mobilgeräte und Mikrocontroller, die mit festen 48 KiB RAM auskommt, wie die Quelle auf github.com angibt. Erreicht wird das durch ternär quantisierte Vektoren, ganz ohne zusätzliche Speicherzuweisung, und die Suche per Vollscan über den gesamten Bestand. Einen ANN-Index gibt es nicht. Die Meldung dazu kursiert gerade über news.hada.io.
- Feste Speichergröße von aktuell 48 KiB, ohne weitere Zuweisungen, so die Quelle.
- Intern speichert livero ausschließlich ternär quantisierte Vektoren.
- Gesucht wird per Vollscan, ein Index fehlt komplett.
48 KiB, das ist bei mir ungefähr die Größe eines Thumbnails, das ich versehentlich ins Repo committet habe. Hier soll darin aber semantische Suche laufen.
Was heißt das: eine Vektor-Datenbank ohne Index?
Die kurze Antwort: livero tauscht Suchgeschwindigkeit gegen RAM. Übliche Vektor-Datenbanken legen Indexstrukturen an, die Anfragen beschleunigen, aber genau den Speicher fressen, den auf einem Mikrocontroller niemand entbehren kann. livero lässt den Index weg, quantisiert Vektoren auf drei Zustände und prüft bei jeder Anfrage alle Einträge einzeln. Für kleine Datenbestände auf winziger Hardware ist das ein pragmatischer Deal.
Wo hört der Spaß auf?
Beim Wachstum. Vollscan bedeutet, dass die Rechenzeit pro Anfrage linear mit der Zahl der gespeicherten Vektoren steigt. Ein paar Hundert Einträge auf einem µC halte ich für gut machbar, bei Zehntausenden dürfte es zäh werden. Benchmarks nennt die Quelle nicht, von daher bleibt das Rechnen mit offenen Karten.
Dazu passt, dass die Beschreibung im Repository stellenweise löchrig ist: Am Rand tauchen FP32 und 768 Dimensionen auf, dann bricht der Text mitten im Satz ab. Was dort verglichen werden sollte, erfährt man nicht. Hinter dem Projekt steckt der Account beginner-jhj, Code und Doku liegen offen auf github.com/beginner-jhj/livero.
Kurz beantwortet:
Für welche Geräte ist livero gebaut? Für On-Device-Umgebungen, laut Quelle mobil und MCU.
Warum ohne ANN-Index? Der Index würde über die feste 48-KiB-Grenze hinaus Speicher kosten, also wird per Vollscan gesucht.
Mich lässt eine Frage zurück: Wenn semantische Suche in 48 KiB RAM passt (harte Grenze laut Quelle), welche KI-Funktion wandert als Nächstes aus der Cloud zurück auf ein Gerät, das bisher nur piepen durfte?