Oracle AI Vector Search – Häufig gestellte Fragen

Häufig gestellte Fragen – Themen

Allgemeine Fragen

Was ist ein Vektor?

Ein Vektor ist eine numerische Darstellung von Text, Bildern, Audio oder Video, die Funktionen/semantische Bedeutung der Daten kodiert, anstatt die tatsächlichen Inhalte wie die zugrunde liegenden Wörter oder Pixel. Ein Vektor ist eine Liste von numerischen Werten, die als Dimensionen bezeichnet werden, mit einem angegebenen Format.

Wie viele Vektordimensionen werden unterstützt?

Oracle AI Vector Search unterstützt Vektoren bis zu 65.535 Dimensionen.

Welche Zahlenformate werden für Vektoren unterstützt?

AI Vector Search unterstützt die Formate INT8, Float32 und Float64.

Wie groß sind Vektoren?

Die Größe eines Vektors ist das Produkt der Anzahl der Dimensionen und der Größe jeder Dimension.

Beispiel: Ein Vektor mit 2.048 Dimensionen und dem Format INT8 (1 Byte) hat eine Größe von 2 KB. Ein Vektor mit 1.024 Dimensionen und dem Format FLOAT32 (4 Byte) hat eine Größe von 4 KB.

Wie entstehen Vektoren?

Vektoren werden aus verschiedenen Arten von Eingabedaten (Text, Bilder, Audio, Video usw.) von Deep-Learning-Modellen erstellt, die als Einbettungsmodelle bezeichnet werden. Sie können Vektoren außerhalb der Datenbank mit Ihren eigenen Einbettungsmodellen oder Einbettungsservices erstellen oder sie mit importierten Einbettungsmodellen über die SQL-Funktion VECTOR_EMBEDDING() in der Datenbank erstellen.

Mit welchen Einbettungsmodellen funktioniert AI Vector Search?

AI Vector Search sollte mit jedem gültigen Einbettungsmodell funktionieren, das Vektoren mit einem der unterstützten Formate und 65.535 oder weniger Dimensionen generiert.

Welche Einbettungsmodelle sollte ich verwenden und wo kann ich sie erhalten?

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-Einbettungsmodelle, wie verschiedene Satztransformatoren, finden Sie auf Hugging Face und ähnlichen Websites. Diese Modelle können in ONNX konvertiert werden, um sie mit AI Vector Search in der Datenbank auszuführen. Darüber hinaus ist die von Hugging Face gehostete MTEB-Rangliste eine beliebte Quelle für die besten Texteinbettungsmodelle. Sie können sich auch an etablierte Modellanbieter wie OpenAI und Cohere wenden.

Welche Operationen werden auf Vektoren unterstützt?

Es gibt mehrere mathematische Operationen, die auf Vektoren unterstützt werden, aber die wichtigste Operation ist die SQL-Funktion VECTOR_DISTANCE(). Diese findet den mathematischen Abstand zwischen zwei Vektoren basierend auf der gewählten Entfernungsformel. Es gibt viele Entfernungsformeln, die von Oracle AI Vector Search unterstützt werden, einschließlich der euklidischen Entfernung, der Kosinusähnlichkeit und der Hamming-Distanz. Die Wahl der Entfernungsfunktion wird typischerweise durch das Einbettungsmodell gesteuert, das zur Generierung der Vektoren verwendet wird.

Wie werden Vektoren bei der Ähnlichkeitssuche verwendet?

Alle Arten von Vektoren teilen die gleiche Eigenschaft: Je ähnlicher zwei Entitäten sind, desto kleiner ist der mathematische Abstand zwischen ihnen. 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.

Wie wird die AI Vector Search mit SQL ausgeführt?

Es gibt einfache und intuitive SQL-Erweiterungen, mit denen AI Vector Search problemlos in Ihre Anwendungen integriert werden kann. Da die Vektorentfernung ein Maß für die Ähnlichkeit ist, besteht die KI-Vektorsuche einfach darin, die Menge der Kandidatenvektoren nach ihrer Entfernung von einem Suchvektor zu sortieren und die K besten Übereinstimmungen zurückzugeben. Beispiel: Die folgende Abfrage ermittelt die Top-10-Produkte, deren Fotos am besten mit dem Suchfoto des Benutzers übereinstimmen:

SELECT product_name, product_photo
FROM Product
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;

Wie kann ich AI Vector Search in komplexen Abfragen mit Geschäftsdaten verwenden?

AI Vector Search kann in anspruchsvollen Abfragen mit Filtern, Joins, Aggregationen, Gruppierungen usw. verwendet werden. Zum Beispiel kann die folgende Abfrage verwendet werden, um die Top 10 passenden Produkte nach Foto für Produkte zu finden, die im Bundesstaat Kalifornien hergestellt werden.

SELECT Product.name, Product.photo, Manufacturer.name
FROM Product p JOIN Manufacturer m ON (p.mfr_id = m.id)
WHERE Manufacturer.state = ‘CA’
ORDER BY VECTOR_DISTANCE(product_photo_vector, :search_photo_vector)
FETCH FIRST 10 ROWS ONLY;

Was sind Vektorindizes und wie unterscheiden sie sich von traditionellen Datenbankindizes?

Herkömmliche Datenbankindizes werden verwendet, um Suchvorgänge basierend auf übereinstimmenden Werten zu beschleunigen. Ein B*-Baumindex beschleunigt beispielsweise wertbasierte Lookups und wertbasierte Range Scans. Vektorindizes hingegen sind so konzipiert, dass die Top-K-ähnlichsten Übereinstimmungen basierend auf semantischer Ähnlichkeit anstelle genau übereinstimmender Werte gefunden werden. Zum Beispiel kann ein Vektorindex verwendet werden, um die Top-K-Wörter zu finden, die in der Bedeutung von „Apfel“ in einem Korpus bestehender Wörter am ähnlichsten sind. Die Verwendung eines Vektorindex führt zu einer ungefähren Suche, die eine gewisse Suchgenauigkeit für bis zu 100X höhere Leistung abhandelt, da es vermeidet, jeden einzelnen Vektor innerhalb einer Spalte zu untersuchen.

Welche Programmiersprachen können verwendet werden, um AI Vector Search-Anwendungen zu entwickeln?

Neben SQL und PL/SQL können AI Vector Search-Anwendungen in einer Vielzahl von Programmiersprachen erstellt werden. AI Vector Search umfasst native Treiberunterstützung für Vektoren in gängigen Sprachen wie Java, Python, JavaScript und C#.

Welche Rolle spielt die KI-Vektorsuche bei der generativen KI?

AI Vector Search kann im bekannten Retrieval-Augmented Generation(RAG)-Workflow verwendet werden, um die Genauigkeit und kontextbezogene Relevanz von Unterhaltungen in natürlicher Sprache mit dem GenAI Large Language Model (LLMs) zu verbessern. Mit RAG wird die Frage eines Benutzers zunächst in einen Vektor konvertiert und dann über AI Vector Search den relevantesten Dokumenten in der Datenbank zugeordnet. Anschließend werden die Frage des Benutzers und die unterstützenden relevanten Dokumente an das LLM weitergeleitet, damit es eine fundierte Antwort basierend auf seinem eigenen allgemeinen Wissen und dem Fachwissen aus dem Vektorspeicher generieren kann.

Mit welchen LLMs funktioniert AI Vector Search?

AI Vector Search kann für RAG mit Open-Source-LLMs wie Llama2 oder Llama3 sowie LLMs von Anbietern wie OpenAI und Cohere verwendet werden.

Unterstützt AI Vector Search LangChain?

AI Vector Search ist in LangChain integriert, ein sehr beliebtes Open-Source-Framework für den Aufbau von RAG-basierten Lösungen.

Wie kann ich die AI Vector Search skalieren, um die wachsenden Anforderungen meiner Anwendung zu erfüllen?

Alle umfangreichen Skalierbarkeitsmechanismen von Oracle – wie Parallel Execution, Partitionierung, RAC, Sharding und Exadata – können verwendet werden, um die KI-Vektorsuche auf praktisch jede Datengröße und -anzahl zu skalieren.