Vektor- & Datenspeicher

Wählen Sie einen Vektor-Speicher: vier Fragen, die die Entscheidung treffen

Veröffentlichte Benchmark-Tabellen vergleichen die Trefferquote auf öffentlichen Datensätzen, was nicht Ihrem Datensatz, Ihren Filtern oder Ihrer Abfrageverteilung entspricht. Vier operative Fragen entscheiden stattdessen.

Warum die Benchmark-Tabellen täuschen

Fast jeder Vergleich, den Sie finden, misst die Recall-Rate und die Anzahl der Abfragen pro Sekunde auf einem öffentlichen Datensatz ohne Metadaten-Filter. Ihre Anwendung hat jedoch einen spezifischen Korpus, selektive Filter auf den meisten Abfragen und einen Latenz-Budget, das Netzwerk und Neubewertung einschließt. Unter diesen Bedingungen invertiert sich die Rangordnung in einer Benchmark-Tabelle häufig.

Dies ist kein Argument gegen das Messen. Es ist ein Argument für das Messen dessen, was Sie tatsächlich ausführen werden.

Frage eins: Wie groß ist der Korpus, gemessen?

Zählen Sie Chunks und nicht Dokumente und multiplizieren Sie sie mit Dimensionen und Präzision, um eine ungefähre Speichergröße zu erhalten. Wenn das Ergebnis bequem in den Speicher der Maschinen passt, die Sie bereits ausführen, ist eine Single-Node-Option einfacher und günstiger als alles Verteilte. Teams adoptieren verteilte Speicher Jahre bevor sie sie benötigen und bezahlen dafür mit operativer Oberfläche anstelle von Geld.

Frage zwei: Tragen die meisten Abfragen einen Filter?

Dies ist die Frage, die die Speicher trennt. Wenn jede Abfrage durch Mandanten, Berechtigungen oder Aktualität eingeschränkt ist, benötigen Sie Filterung im Index und nicht nach der Suche und sollten mit Ihrer realen Filter-Selektivität testen. Ein Speicher, der bei unfilterter Suche schnell aussieht, kann auseinanderfallen, wenn neunundneunzig Prozent der Kandidaten ausgeschlossen werden.

Frage drei: Wer betreibt es?

Seien Sie ehrlich über den On-Call-Dienst. Wenn niemand einen verteilten System betreiben möchte, ist ein Managed-Service oder eine Erweiterung einer Datenbank, die Sie bereits betreiben, die richtige Antwort, unabhängig davon, was einen Durchsatzvergleich gewinnt. Der günstigste Speicher ist der, für den Ihr Team nicht aufwachen muss.

Frage vier: Was sind die Ausstiegskosten?

Bevor Sie sich verpflichten, wissen Sie, wie Sie austreten würden. Können Sie Vektoren exportieren und anderswo neu aufbauen? Ist die Abfragesprache portabel oder besitzt das SDK Ihren Code? Ein Speicher, der günstig zu betreten und teuer zu verlassen ist, ist eine Haftung, die genau im falschen Moment auftritt - wenn Sie Verkehr und keine Verhandlungsmacht haben.

Wie man den Test durchführt

Nehmen Sie zwei hundred reale Abfragen mit ihren realen Berechtigungsfiltern. Laden Sie Ihren tatsächlichen Korpus in zwei Kandidaten-Speicher. Messen Sie die End-to-End-Latenz von Ihrer Anwendung, die Recall-Rate bei dem k, den Sie verwenden werden, und die operativen Schritte, um einen Million Vektoren hinzuzufügen. Ein Nachmittag davon schlägt jede veröffentlichte Tabelle.

Was daraus folgt

  • Öffentliche Benchmarks berücksichtigen weder Ihre Filter noch Ihr Latenzbudget und verhalten sich oft unter realen Bedingungen umgekehrt
  • Messungen der Korpusgröße sollten in Blöcken und im Speicher und nicht in Dokumenten durchgeführt werden
  • Wenn die meisten Abfragen gefiltert werden, testen Sie das Filtern innerhalb des Index mit Ihrer realen Selektivität
  • Informieren Sie sich über die Ausstiegskosten, bevor Sie sich binden – Export, Portabilität und wer die Abfragesprache besitzt