Udostępnij za pośrednictwem


Wektorowe bazy danych dla platformy .NET i sztucznej inteligencji

Wektorowe bazy danych są przeznaczone do przechowywania wektorów osadzania i zarządzania nimi. Osadzanie to reprezentacje liczbowe danych nieliczbowych, które zachowują znaczenie semantyczne. Słowa, dokumenty, obrazy, dźwięk i inne typy danych mogą być wektoryzowane. Za pomocą osadzania można pomóc modelowi sztucznej inteligencji zrozumieć znaczenie danych wejściowych, dzięki czemu może wykonywać porównania i przekształcenia, takie jak podsumowywanie tekstu, znajdowanie danych powiązanych kontekstowo lub tworzenie obrazów na podstawie opisów tekstu.

Na przykład można użyć wektorowej bazy danych do:

  • Identyfikowanie podobnych obrazów, dokumentów i piosenek na podstawie ich zawartości, motywów, tonacji i stylów.
  • Zidentyfikuj podobne produkty na podstawie ich cech, funkcji i grup użytkowników.
  • Zalecanie zawartości, produktów lub usług na podstawie preferencji użytkownika.
  • Zidentyfikuj najlepsze potencjalne opcje z dużej puli wyborów, aby spełnić złożone wymagania.
  • Identyfikowanie anomalii danych lub fałszywych działań, które różnią się od dominujących lub normalnych wzorców.

Bazy danych wektorów umożliwiają wyszukiwanie wektorów w celu znalezienia podobnych elementów na podstawie ich cech danych, a nie dokładnych dopasowań w polu właściwości. Wyszukiwanie wektorowe działa, analizując wektorowe reprezentacje danych utworzonych przy użyciu modelu osadzania sztucznej inteligencji, takiego jak modele osadzania usługi Azure OpenAI. Proces wyszukiwania mierzy odległość między wektorami danych a wektorem zapytania. Wektory danych, które znajdują się najbliżej wektora zapytania, to te, które są najbardziej podobne semantycznie.

Niektóre usługi, takie jak Azure Cosmos DB for MongoDB vCore , zapewniają natywne możliwości wyszukiwania wektorów danych. Inne bazy danych można ulepszyć za pomocą wyszukiwania wektorowego, indeksując przechowywane dane przy użyciu usługi, takiej jak Usługa Azure AI Search, która może skanować i indeksować dane w celu zapewnienia możliwości wyszukiwania wektorowego.

Przepływy pracy wyszukiwania wektorów przy użyciu platformy .NET i interfejsu OpenAI

Wektorowe bazy danych i ich funkcje wyszukiwania są szczególnie przydatne w przepływach pracy wzorca RAG za pomocą usługi Azure OpenAI. Ten wzorzec umożliwia rozszerzanie lub ulepszanie modelu sztucznej inteligencji dzięki dodatkowej bogatej w semantycznie wiedzy na temat danych. Typowy przepływ pracy sztucznej inteligencji korzystający z baz danych wektorów może obejmować następujące kroki:

  1. Utwórz osadzanie dla danych przy użyciu modelu osadzania OpenAI.
  2. Zapisz i zaindeksuj osadzanie w wektorowej bazie danych lub usłudze wyszukiwania.
  3. Przekonwertuj monity użytkownika z aplikacji na osadzanie.
  4. Uruchom wyszukiwanie wektorowe w danych, porównując monit użytkownika z osadzeniem bazy danych.
  5. Użyj modelu językowego, takiego jak GPT-35 lub GPT-4, aby utworzyć przyjazne dla użytkownika uzupełnianie z wyników wyszukiwania wektorowego.

Odwiedź samouczek Implementowanie usługi Azure OpenAI z narzędziem RAG przy użyciu wyszukiwania wektorów w aplikacji platformy .NET, aby zapoznać się z praktycznym przykładem tego przepływu.

Inne zalety wzorca RAG obejmują:

  • Generuj kontekstowo odpowiednie i dokładne odpowiedzi na monity użytkownika z modeli sztucznej inteligencji.
  • Pokonaj limity tokenów LLM — intensywne podnoszenie odbywa się za pośrednictwem wyszukiwania wektorów bazy danych.
  • Zmniejsz koszty częstego dostrajania w przypadku zaktualizowanych danych.

Dostępne rozwiązania bazy danych wektorów

Aplikacje sztucznej inteligencji często używają baz danych i usług wektorów danych, aby poprawić trafność i zapewnić dostosowane funkcje. Wiele z tych usług zapewnia natywny zestaw SDK dla platformy .NET, a inne oferują usługę REST, z którą można nawiązać połączenie za pośrednictwem kodu niestandardowego. Semantyczne jądro udostępnia rozszerzalny model składników, który umożliwia korzystanie z różnych magazynów wektorów bez konieczności uczenia się każdego zestawu SDK.

Semantyczne jądro udostępnia łączniki dla następujących wektorowych baz danych i usług:

Usługa wektorowa Łącznik jądra semantycznego Zestaw SDK platformy .NET
Wyszukiwanie AI platformy Azure Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB for NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Usługa Azure Cosmos DB dla bazy danych MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Serwer Usługi Azure PostgreSQL Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Azure SQL Database Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Chroma Microsoft.SemanticKernel.Connectors.Chroma NA
DuckDB Microsoft.SemanticKernel.Connectors.DuckDB DuckDB.NET.Data.Full
Milvus Microsoft.SemanticKernel.Connectors.Milvus Milvus.Client
MongoDB Atlas Vector Search Microsoft.SemanticKernel.Connectors.MongoDB MongoDb.Driver
Pinecone Microsoft.SemanticKernel.Connectors.Pinecone Interfejs API REST
Postgres Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Qdrant Microsoft.SemanticKernel.Connectors.Qdrant Qdrant.Client
Redis Microsoft.SemanticKernel.Connectors.Redis StackExchange.Redis
Weaviate Microsoft.SemanticKernel.Connectors.Weaviate Interfejs API REST

Zapoznaj się z dokumentacją dla każdej odpowiedniej usługi, aby odnaleźć zestaw SDK platformy .NET i obsługę interfejsu API.