Was genau ist eigentlich ein Vektor?#

Wenn man zum ersten Mal das Wort „Vektor“ hört, können viele Menschen wenig damit anfangen. Wer in der Schule einen naturwissenschaftlichen Zweig besucht hat, erinnert sich vielleicht an den Mathematikunterricht (Algebra/Geometrie), für andere klingt der Begriff jedoch sehr abstrakt. Der einfachste Weg, einen Vektor intuitiv zu verstehen, ist die Vorstellung einer Landkarte.

Stellen Sie sich eine Karte vor und ziehen Sie eine Linie vom Bahnhof Tokio zum Bahnhof Ikebukuro. Genau das ist das Grundkonzept eines Vektors. In Zahlen ausgedrückt ist es eine diagonale Pfeillinie in einem Rechteck mit 3 cm Breite und 5 cm Höhe. Ein Vektor beschreibt also im Wesentlichen „Richtung und Betrag (Länge)“ von einem Punkt zum anderen. Auf einer Karte ist dies 2-dimensional, mit zusätzlicher Höhe wird es 3-dimensional – ein Prinzip, das in der Physik häufig zur Beschreibung von Bewegungen verwendet wird.

Doraemons 4D-Tasche basiert vermutlich auf 4 Achsen: Länge, Breite, Höhe und Zeit (nach Einstein ist die vierte Achse die Zeit). Indem wir nun mehr als zwei oder drei Werte speichern, können wir rechnerisch mehrdimensionale Vektoren darstellen. Drei Dimensionen sind leicht verständlich, da sie unserer Alltagswelt entsprechen. Wenn wir jedoch 1024, 1536 oder 4096 Dimensionen als Granularitätsmaßstab festlegen, erhalten wir einen hochpräzisen Vektor. Man sollte solche hochdimensionalen Räume schlicht als mathematische Darstellung begreifen. Merken Sie sich einfach, dass ein Vektor „Richtung und Menge“ darstellt.

Einsatz in modernen KI-Sprachmodellen (LLMs)#

Ein entscheidender Durchbruch in der modernen KI-Technologie war die Vektorisierung von Texten. Ganze Sätze in Vektoren umzuwandeln, erleichtert die Berechnung des nächsten Wortes – das Fundament moderner Large Language Models (LLMs). Auch bei unserer Vektorsuche wird die semantische Bedeutung von Sätzen als Vektor gespeichert, was die Suchpräzision drastisch erhöht.

Dies betrifft Text-KIs; Bildgenerierungs-KIs basieren auf völlig anderen Konzepten wie Diffusionsmodellen (Diffusion Models).

Bestehende Spezifikationen und Implementierung#

Die Entwicklungsumgebung von Kurousagi basiert vollständig auf Cloudflare und nutzt die SQLite-basierte D1-Datenbank zur Verwaltung von Spezifikationsdokumenten. Anfangs wurden Spezifikationen als Markdown- oder HTML-Dateien direkt in den Repositories abgelegt. Bei vielen parallelen Projekten führte dies jedoch zu verstreuten, veralteten oder doppelten Dokumenten.

Daher sind wir auf eine Monorepo-Struktur umgestiegen und haben ein internes Entwicklungsportal geschaffen. Die Bearbeitung über APIs und Webbrowser ermöglicht eine zentrale Verwaltung und Filterung, sodass jedes Dokument sofort auffindbar ist.

In modernen, KI-gestützten Entwicklungsworkflows verbraucht das Durchsuchen einzelner Dokumente durch die KI jedoch zu viele Tokens. Mit der Einführung einer semantischen Vektorsuche optimieren wir diesen Prozess erheblich.

Grundlegende Funktionsweise#

Die Spezifikationstexte liegen in der D1-Datenbank. Ergänzend nutzen wir Cloudflare Vectorize, eine dedizierte Vektordatenbank. Texte werden aus D1 extrahiert, über Cloudflare Workers AI vektorisiert und in Cloudflare Vectorize (CF Vectorize) gespeichert.

Kostenloses Kontingent für Cloudflare Workers AI

  • 10.000 Neurons pro Tag und Konto kostenlos über alle Workers AI-Modelle hinweg
  • Nutzungsbasierte Abrechnung bei Überschreitung
  • Täglicher Reset um 00:00 UTC (09:00 japanischer Zeit)
  • Wird von allen Workers AI-Modellen des Kontos geteilt

Wir nutzen das Embedding-Modell @cf/baai/bge-m3. Da BGE-M3 mehrsprachig ausgelegt ist, werden japanische Spezifikationen und Suchanfragen im selben Vektorraum abgebildet.

Kostenloses Kontingent für Cloudflare Vectorize

  • Speicher: 5 Millionen Vektordimensionen
  • Abfragen: 30 Millionen Vektordimensionen pro Monat
  • Überziehungsgebühren: Keine (Upgrade auf Paid-Plan für Weiterbetrieb erforderlich)
  • Egress, CPU und Indexwartung: Keine Zusatzkosten

Da unser Konto ein Paid-Plan ist, passt unser Datenbestand gut in das 10-Millionen-Limit, übersteigt jedoch das kostenlose Kontingent. Der Ablauf ist einfach: Ein Cron-Job prüft D1 auf Änderungen, vektorisiert Texte via Workers AI und speichert sie in Vectorize. Bei einer Suche wird der Suchtext vektorisiert, die ähnlichsten Einträge werden in Vectorize ermittelt und aus D1 geladen.

Praxiserfahrungen#

Unser Fazit nach der Einführung der Vektorsuche: Extrem praktisch! Statt einzelner Schlagwörter wie „Gerät“ oder „Verlust“ liefert eine Suchanfrage wie „Benutzerkonten bei Geräteverlust“ sofort die passenden Spezifikationen. Da das kostenlose Kontingent begrenzt ist, empfiehlt sich bei größeren Textmengen ein Paid-Plan.

Der Screenshot zeigt das Administrations-Dashboard der Vektorsuche, auf dem die Überschreitung des Free-Limits sichtbar ist. Während Workers AI täglich zurückgesetzt wird, bleibt der Vektorspeicher permanent belegt.

Für Teams mit bestehendem Paid-Tarif ist Vectorize eine hervorragende Lösung. Wir hoffen, dieser Bericht bietet nützliche Einblicke für Ihre Cloudflare-Projekte!



Referenzen#