Ein Vektor ist eine mathematische Darstellung von Text, Bildern, Audio oder Video, die Features bzw. die semantische Bedeutung der Daten kodiert, anstatt die tatsächlichen Inhalte wie die zugrunde liegenden Wörter oder Pixel. Ein Vektor besteht aus einer Liste numerischer Werte, den sogenannten Dimensionen, und kann für Anwendungen im Bereich der künstlichen Intelligenz (KI) genutzt werden.
Vektoren werden aus verschiedenen Eingabedaten wie Text, Bildern, Audio-, Video- oder anderen Datenquellen durch Deep-Learning-Modelle – sogenannte Embedding-Modelle – generiert. Die Erstellung kann außerhalb der Datenbank mithilfe eines Embedding-Modells oder -Services erfolgen, oder direkt innerhalb der Datenbank über ONNX-Embedding-Modelle mit der SQL-Funktion `VECTOR_EMBEDDING()`.
Oracle AI Vector Search unterstützt die Formate BINARY, INT8, FLOAT32 und FLOAT64.
Oracle AI Vector Search unterstützt Vektoren bis zu 65.535 Dimensionen.
Die Größe eines Vektors ist das Produkt der Anzahl der Dimensionen und der Größe jeder Dimension.
Beispielsweise ist ein Vektor mit 2.048 Dimensionen im INT8-Format (1 Byte) 2 Kilobyte groß, und ein Vektor mit 1.024 Dimensionen im FLOAT32-Format (4 Byte) umfasst 4 Kilobyte.
Ja, Oracle AI Vector Search unterstützt Sparse-Vektoren – also Vektoren mit vielen Dimensionen, von denen jedoch nur wenige einen von null abweichenden Wert aufweisen. In einem Dokument entsprechen die Nicht-Null-Werte im Vektor den Schlüsselwörtern und deren Variationen, die tatsächlich im Text enthalten sind.
AI Vector Search funktioniert mit jedem gültigen Embedding-Modell, das Vektoren in einem der unterstützten Dimensionsformate erzeugt und maximal 65.535 Dimensionen verwendet.
Die Wahl des Einbettungsmodells hängt von vielen Faktoren ab, wie der Art Ihrer Daten, den von Ihnen priorisierten Leistungskennzahlen und den Kosten, die Sie zahlen möchten. Kostenlose Open-Source-Embedding-Modelle – einschließlich verschiedener Sentence-Transformers – sind auf Hugging Face und vergleichbaren Plattformen verfügbar. Diese Modelle können ins ONNX-Format konvertiert werden, um Vektoreinbettungen direkt innerhalb der Datenbank mit AI Vector Search zu erzeugen. Eine beliebte Quelle für leistungsstarke Text-Embedding-Modelle ist das MTEB Leaderboard auf Hugging Face. Alternativ können Sie auch auf etablierte Anbieter wie OpenAI und Cohere zurückgreifen.
AI Vector Search unterstützt Vektoren aus allen Embedding-Modellen – unabhängig davon, ob sie für Text, Bilder, Audio, Video oder andere Datenarten entwickelt wurden. Oracle AI Database enthält zudem vorab kompilierte ONNX-Embedding-Modelle, mit denen bildbasierte Distanzoperationen direkt mit AI Vector Search durchgeführt werden können.
Es stehen mehrere mathematische Operationen für Vektoren zur Verfügung. Die wichtigste ist die SQL-Funktion VECTOR_DISTANCE(), mit der der mathematische Abstand zwischen zwei Vektoren basierend auf einer ausgewählten Distanzformel berechnet wird. Oracle AI Vector Search unterstützt eine Vielzahl von Distanzmetriken, darunter Euklidisch, Euklidisch Quadrat, Kosinus-Ähnlichkeit, Skalarprodukt, Manhattan, Jaccard und Hamming. Die Wahl der Distanzfunktion hängt in der Regel vom verwendeten Embedding-Modell ab. Die Standardmetrik in Oracle Database 26ai ist jedoch die Kosinus-Ähnlichkeit.
Alle Vektoren haben eine gemeinsame Eigenschaft: Je ähnlicher sich zwei Objekte sind, desto geringer ist der mathematische Abstand zwischen ihren Vektoren. Zum Beispiel sind die Vektoren für "Apfel" und "Orange" näher zusammen als die Vektoren für "Apfel" und "Hund". Diese Eigenschaft von Vektoren ermöglicht es ihnen, Daten nach semantischer Ähnlichkeit zu suchen.
Es gibt einfache und intuitive SQL-Erweiterungen, mit denen AI Vector Search problemlos in Ihre Anwendungen integriert werden kann. Da der Vektorabstand ein Maß für Ähnlichkeit ist, sortiert AI Vector Search die Kandidatenvektoren nach ihrer Entfernung zum Suchvektor und gibt die K nächstgelegenen Treffer zurück. Das folgende Beispiel zeigt eine Abfrage, die die 10 Produkte mit den Fotos ermittelt, die dem Suchfoto eines Nutzers am ähnlichsten sind:
SELECT product_name, product_photo
FROM product
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;
AI Vector Search kann in anspruchsvolle Abfragen integriert werden, die Filter, Joins, Aggregationen, Group-by-Klauseln und weitere Elemente enthalten. Beispielsweise lässt sich mit der folgenden Abfrage ermitteln, welche 10 Produkte, die in Kalifornien hergestellt wurden, dem vom Nutzer hochgeladenen Foto am ähnlichsten sind.
SELECT p.name, p.photo, m.name
FROM product p
JOIN manufacturer m ON (p.mfr_id = m.id)
WHERE m.state = 'CA'
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;
Herkömmliche Datenbankindizes werden verwendet, um Suchvorgänge basierend auf übereinstimmenden Werten zu beschleunigen. Ein B-Baum-Index beschleunigt klassisch wertbasierte Suchvorgänge und Bereichsabfragen. Vektorindizes hingegen sind darauf ausgelegt, die K semantisch ähnlichsten Ergebnisse zu ermitteln – nicht identische Werte. So lässt sich ein Vektorindex beispielsweise einsetzen, um in einem Wortkorpus die K Begriffe zu finden, die der Bedeutung von „apple“ am nächsten kommen. Dabei handelt es sich um eine approximative Suche, bei der zugunsten einer bis zu 100-fach höheren Performance eine leichte Abweichung bei der Genauigkeit akzeptiert wird – da nicht jeder Vektor in der Spalte einzeln geprüft werden muss.
In-Memory-Nachbargraf-Vektorindizes sind speicherresident und graphenbasiert aufgebaut. Die Scheitelpunkte (Vertices) im Graphen stehen für Vektoren, während die Kanten zwischen den Scheiteln die Ähnlichkeit zwischen den Vektoren darstellen. Oracle AI Vector Search unterstützt In-Memory-Nachbargraf-Indizes vom Typ HNSW (Hierarchical Navigable Small World). Diese basieren auf den Prinzipien kleiner Welt-Netzwerke und einer hierarchisch geschichteten Struktur. Dadurch ermöglichen sie besonders schnelle und präzise Ähnlichkeitssuchen.
Oracle AI Vector Search unterstützt nachbarschaftspartitionierte Vektorindizes vom Typ Inverted File Flat (IVF). Dabei handelt es sich um festplattengestützte Vektorindizes, bei denen Vektoren anhand ihrer Ähnlichkeit in Tabellenpartitionen gruppiert werden. Sie bieten eine effiziente Skalierbarkeit, unterstützen schnelle und nahtlose Transaktionen und ermöglichen eine ausgewogene Kombination aus hochwertiger Suche und guter Performance. Da sie nicht vom Arbeitsspeicher abhängig sind, lassen sich damit auch unbegrenzt große Datenmengen verarbeiten.
Hybride Vektorindizes sind eine neuartige Indexform, mit der sich Dokumente gleichzeitig über Volltextsuche und semantische Vektorsuche indizieren und abfragen lassen – für besonders präzise und relevante Suchergebnisse. Sie unterstützen eine einheitliche Abfrageschnittstelle, über die sich Textabfragen, Vektorähnlichkeitsabfragen oder hybride Abfragen durchführen lassen, die beide Methoden kombinieren.
Neben SQL und PL/SQL können Anwendungen mit AI Vector Search auch in verschiedenen Programmiersprachen entwickelt werden. AI Vector Search bietet native Treiberunterstützung für Vektoren in gängigen Sprachen wie Java, Python, JavaScript und C#.
AI Vector Search ist häufig Teil eines Retrieval-Augmented-Generation-Workflows (RAG). Dabei stellt es zusätzliche Informationen bereit, mit denen sich die Antwort eines GenAI Large Language Models (LLM) gezielt verbessern lässt.
In einem typischen RAG-Prozess wird die Nutzerfrage zunächst in einen Vektor umgewandelt. Anschließend identifiziert AI Vector Search die relevantesten Dokumente in der Datenbank. Die ursprüngliche Frage und die gefundenen Inhalte werden dann an das LLM übergeben, das auf Basis dieses Kontextes eine fundierte Antwort generiert – kombiniert aus allgemeinem und unternehmensspezifischem Wissen.
AI Vector Search lässt sich mit allen LLMs für RAG nutzen – darunter Open-Source-Modelle wie Llama3 und Mistral sowie proprietäre Modelle von Anbietern wie OpenAI oder Cohere. Für die Integration mit LLMs stehen zudem spezielle PL/SQL-APIs zur Verfügung, die eine nahtlose Anbindung ermöglichen.
Ja, AI Vector Search ist in LangChain und LlamaIndex integriert. Diese Frameworks erleichtern die Verbindung von privaten und öffentlichen Datenquellen für Anwendungen mit großen Sprachmodellen.
Retrieval-Augmented Generation (RAG) ist ein zentraler Bestandteil der generativen KI (GenAI) und bietet entscheidende Vorteile für hochwertige, kontextbezogene Antworten. Hier sind drei überzeugende Gründe, warum die Integration von RAG in Ihre GenAI-Strategie essenziell ist:
Die umfassenden Skalierbarkeitsmechanismen von Oracle – darunter Parallelverarbeitung, Partitionierung, Oracle Real Application Clusters (Oracle RAC), Sharding und Exadata – ermöglichen es, AI Vector Search auf praktisch jede Datenmenge und Nutzeranzahl zu skalieren.
Die umfassenden Skalierbarkeitsmechanismen von Oracle – darunter Parallelverarbeitung, Partitionierung, Oracle Real Application Clusters (Oracle RAC), Sharding und Exadata – ermöglichen es, AI Vector Search auf praktisch jede Datenmenge und Nutzeranzahl zu skalieren. Oracle Exadata umfasst zudem AI Smart Scan, das AI Vector Search-Abfragen auf die Exadata Storage Server auslagert, um eine unvergleichliche Abfrageleistung zu erzielen.
Oracle AI Vector Search lässt sich nahtlos in die branchenführenden Datenbanksicherheitsfunktionen von Oracle integrieren, um Risiken zu reduzieren und die Einhaltung von Vorschriften zu vereinfachen. Unternehmen können ihre Vektordaten mit leistungsstarken Sicherheitsfunktionen wie Verschlüsselung, Data Masking, Zugriffskontrollen für privilegierte Nutzer, Aktivitätsüberwachung und Auditing schützen – und dabei dennoch die Vorteile einer leistungsstarken AI-Suche nutzen. In-Database-Funktionen wie Database Vault und Virtual Private Database sorgen dafür, dass nur autorisierte Nutzer Zugriff auf sensible Vektordaten erhalten.
So kann Oracle AI Vector Search die Infrastruktur für Vektordaten deutlich verschlanken: Eine einzelne Oracle AI Database kann die Anforderungen vieler verschiedener Nutzer mit unterschiedlichen Zugriffsrechten abdecken – ganz ohne Datenkopien oder zusätzlichen Verwaltungsaufwand, wie er bei anderen Vektordatenbanken häufig erforderlich ist.
Vektoren sind in Oracle AI Database als erstklassige Datentypen integriert. Dadurch profitieren sie automatisch von allen innovativen Funktionen, die Oracle zur führenden Enterprise-Datenbank machen. High Availability (HA) wird durch die Ausführung von Similarity Searches auf Oracle RAC oder Oracle Globally Distributed Database (Sharding) gewährleistet. Die Disaster-Recovery-Funktionalität wird durch automatisierte Lösungen wie Data Guard, Active Data Guard und Oracle GoldenGate sichergestellt.