Vektordatenbanken für .NET + AI
Vektordatenbanken sollen Vektoreinbettungen speichern und verwalten. Einbettungen sind numerische Darstellungen von nicht numerischen Daten, die die semantische Bedeutung erhalten. Wörter, Dokumente, Bilder, Audio und andere Datentypen können vektorisiert werden. Sie können Einbettungen verwenden, um einem KI-Modell zu helfen, die Bedeutung von Eingaben zu verstehen, sodass es Vergleiche und Transformationen durchführen kann, z. B. Zusammenfassen von Text, Finden von kontextbezogenen Daten oder Erstellen von Bildern aus Textbeschreibungen.
Sie können eine Vektordatenbank unter anderem für Folgendes verwenden:
- Identifizieren ähnlicher Bilder, Dokumente und Songs basierend auf ihren Inhalten, Designs, Stimmungen und Stilen.
- Identifizieren ähnlicher Produkte basierend auf ihren Merkmalen, Features und Benutzergruppen.
- Empfehlen von Inhalten, Produkten oder Diensten basierend auf den Benutzereinstellungen.
- Identifizieren der besten potenziellen Optionen aus einer großen Auswahl, um komplexe Anforderungen zu erfüllen.
- Identifizieren von Datenanomalien oder betrügerischen Aktivitäten, die sich von überwiegenden oder normalen Mustern unterscheiden.
Grundlegendes zur Vektorsuche
Vektordatenbanken bieten Vektorsuchfunktionen, um ähnliche Elemente basierend auf ihren Datenmerkmalen zu finden, anstatt nach exakten Übereinstimmungen in einem Eigenschaftenfeld zu suchen. Die Vektorsuche funktioniert, indem die Vektordarstellungen Ihrer Daten analysiert werden, die Sie mit einem KI-Einbettungsmodell erstellt haben, z. B. mit den Azure OpenAI-Einbettungsmodellen. Der Suchvorgang misst den Abstand zwischen den Datenvektoren und dem Abfragevektor. Die Datenvektoren, die Ihrem Abfragevektor am nächsten liegen, sind semantisch am ähnlichsten.
Einige Dienste wie Azure Cosmos DB für MongoDB vCore bieten native Vektorsuchfunktionen für Ihre Daten. Andere Datenbanken können mit der Vektorsuche verbessert werden, indem die gespeicherten Daten mithilfe eines Diensts wie Azure KI-Suche indiziert werden, der Ihre Daten scannen und indizieren kann, um Vektorsuchfunktionen bereitzustellen.
Vektorsuchworkflows mit .NET und OpenAI
Vektordatenbanken und ihre Suchfunktionen sind besonders nützlich bei RAG-Muster-Workflows mit Azure OpenAI. Mit diesem Muster können Sie Ihr KI-Modell mit zusätzlichen semantisch umfangreichen Kenntnissen Ihrer Daten erweitern oder verbessern. Ein allgemeiner KI-Workflow mit Vektordatenbanken kann die folgenden Schritte umfassen:
- Erstellen von Einbettungen für Ihre Daten mithilfe eines OpenAI-Einbettungsmodells.
- Speichern und Indizieren der Einbettungen in einer Vektordatenbank oder einem Suchdienst.
- Konvertieren der Benutzeraufforderungen aus Ihrer Anwendung in Einbettungen.
- Ausführen einer Vektorsuche über Ihre Daten und Vergleichen der Einbettung der Benutzereingabeaufforderung mit den Einbettungen Ihrer Datenbank.
- Verwenden eines Sprachmodells wie GPT-35 oder GPT-4, um einen benutzerfreundlichen Abschluss aus den Vektorsuchergebnissen zu erstellen.
Besuchen Sie das Tutorial Implementieren von Azure OpenAI mit RAG mithilfe der Vektorsuche in einer .NET-App, um sich ein praktisches Beispiel für diesen Flow anzusehen.
Weitere Vorteile des RAG-Musters sind:
- Generieren kontextbezogener und präziser Antworten auf Benutzeraufforderungen aus KI-Modellen.
- Überwinden von LLM-Tokenlimits – die Datenbankvektorsuche übernimmt die schwere Arbeit.
- Reduzieren der Kosten durch häufige Feinabstimmung bei aktualisierten Daten.
Verfügbare Vektordatenbanklösungen
KI-Anwendungen verwenden häufig Datenvektordatenbanken und -dienste, um die Relevanz zu verbessern und angepasste Funktionen bereitzustellen. Viele dieser Dienste stellen ein natives SDK für .NET bereit, während andere einen REST-Dienst anbieten, mit dem Sie über benutzerdefinierten Code eine Verbindung herstellen können. Der semantische Kernel bietet ein erweiterbares Komponentenmodell, mit dem Sie unterschiedliche Vektorspeicher verwenden können, ohne sich in jedes SDK einarbeiten zu müssen.
Der semantische Kernel stellt Connectors für die folgenden Vektordatenbanken und -dienste bereit:
Besuchen Sie die Dokumentation für jeden jeweiligen Dienst, um .NET SDK- und API-Unterstützung zu ermitteln.