Sdílet prostřednictvím


Vektorové databáze pro .NET + AI

Vektorové databáze jsou navržené tak, aby ukládaly a spravovaly vkládání vektorů. Vkládání jsou číselné reprezentace nečíselných dat, která zachovávají sémantický význam. Slova, dokumenty, obrázky, zvuk a další typy dat mohou být vektorizovány. Vkládání můžete použít k tomu, aby model umělé inteligence porozuměl významu vstupů, aby mohl provádět porovnání a transformace, například sumarizaci textu, hledání kontextových dat nebo vytváření obrázků z popisů textu.

Vektorovou databázi můžete použít například k:

  • Identifikujte podobné obrázky, dokumenty a skladby na základě jejich obsahu, motivů, mínění a stylů.
  • Identifikujte podobné produkty na základě jejich charakteristik, funkcí a skupin uživatelů.
  • Doporučte obsah, produkty nebo služby na základě uživatelských předvoleb.
  • Identifikujte nejlepší potenciální možnosti z velkého fondu voleb, abyste splnili složité požadavky.
  • Identifikujte datové anomálie nebo podvodné aktivity, které se liší od převládajících nebo normálních vzorů.

Vektorové databáze poskytují možnosti vektorového vyhledávání k vyhledání podobných položek na základě jejich charakteristik dat, nikoli přesných shod v poli vlastnosti. Vektorové vyhledávání funguje tak, že analyzuje vektorové znázornění dat, která jste vytvořili pomocí modelu vkládání AI, jako jsou modely vkládání Azure OpenAI. Proces hledání měří vzdálenost mezi datovými vektory a vektorem dotazu. Datové vektory, které jsou nejblíže vašemu vektoru dotazu, jsou ty, které jsou nalezeny nejvíce podobné sémanticky.

Některé služby, jako je Azure Cosmos DB pro virtuální jádro MongoDB, poskytují nativní možnosti vyhledávání vektorů pro vaše data. Další databáze je možné vylepšit pomocí vektorového vyhledávání indexováním uložených dat pomocí služby, jako je Azure AI Search, která může prohledávat a indexovat vaše data, aby poskytovala možnosti vektorového vyhledávání.

Pracovní postupy vektorového vyhledávání s využitím .NET a OpenAI

Vektorové databáze a jejich funkce vyhledávání jsou užitečné zejména v pracovních postupech vzoru RAG s Azure OpenAI. Tento model umožňuje rozšířit nebo vylepšit model AI o další sémanticky bohaté znalosti vašich dat. Běžný pracovní postup AI využívající vektorové databáze může zahrnovat následující kroky:

  1. Vytvářejte vkládání dat pomocí modelu vkládání OpenAI.
  2. Ukládání a indexování vkládání do vektorové databáze nebo vyhledávací služby
  3. Převeďte výzvy uživatelů z vaší aplikace na vkládání.
  4. Spusťte vektorové vyhledávání napříč daty a porovnejte uživatele s vložením do databáze.
  5. Pomocí jazykového modelu, jako je GPT-35 nebo GPT-4, se sestaví uživatelsky přívětivé dokončování z výsledků hledání vektorů.

V kurzu implementace Azure OpenAI s RAG s využitím vektorového vyhledávání v aplikaci .NET najdete praktický příklad tohoto toku.

Mezi další výhody modelu RAG patří:

  • Vygenerujte kontextově relevantní a přesné odpovědi na výzvy uživatelů z modelů AI.
  • Překonat limity tokenů LLM – náročné práce se provádí prostřednictvím vyhledávání vektorů databáze.
  • Snižte náklady na časté vyladění aktualizovaných dat.

Dostupná řešení vektorové databáze

Aplikace umělé inteligence často používají databáze a služby datových vektorů ke zlepšení relevance a poskytování přizpůsobených funkcí. Mnohé z těchto služeb poskytují nativní sadu SDK pro .NET, zatímco jiné nabízejí službu REST, ke které se můžete připojit prostřednictvím vlastního kódu. Sémantické jádro poskytuje rozšiřitelný model komponent, který umožňuje používat různá vektorová úložiště bez nutnosti učit se jednotlivé sady SDK.

Sémantické jádro poskytuje konektory pro následující vektorové databáze a služby:

Vektorová služba Sémantický konektor jádra .NET SDK
Azure AI Vyhledávač Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB for NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB pro MongoDB Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL Server Microsoft.SemanticKernel.Connectors.Postgres Npgsql
Azure SQL Database Microsoft.SemanticKernel.Connectors.SqlServer Microsoft.Data.SqlClient
Sytost barvy 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 REST API
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 REST API

Navštivte dokumentaci pro každou příslušnou službu a zjistěte podporu sady .NET SDK a rozhraní API.