Megosztás a következőn keresztül:


Vektoradatbázisok .NET+ AI-hoz

A vektoradatbázisok vektoros beágyazások tárolására és kezelésére szolgálnak. A beágyazások nem numerikus adatok numerikus ábrázolásai, amelyek megőrzik a szemantikai jelentést. Szavak, dokumentumok, képek, hang és más típusú adatok mind vektorizálhatók. Beágyazásokkal segítheti az AI-modelleket a bemenetek jelentésének megértésében, hogy összehasonlításokat és átalakításokat hajtson végre, például a szöveg összegzését, a környezetfüggő adatok keresését vagy a szövegleírásokból származó képek létrehozását.

Egy vektoradatbázis például a következő célokra használható:

  • Azonosítsa a hasonló képeket, dokumentumokat és dalokat azok tartalma, témái, hangulatai és stílusai alapján.
  • Azonosítsa a hasonló termékeket jellemzőik, jellemzőik és felhasználói csoportjaik alapján.
  • Tartalom, termékek vagy szolgáltatások ajánlása a felhasználói beállítások alapján.
  • Az összetett követelményeknek való megfelelés érdekében azonosítsa a nagy választási lehetőségek közül a legjobb lehetőségeket.
  • Azonosítsa azokat az adatrendellenességeket vagy csalárd tevékenységeket, amelyek eltérnek az elsődleges vagy a normál mintáktól.

A vektoradatbázisok vektorkeresési képességeket biztosítanak a hasonló elemek megkereséséhez az adattulajdonságuk alapján, nem pedig egy tulajdonságmező pontos egyezései alapján. A vektorkeresés egy AI-beágyazási modellel, például az Azure OpenAI beágyazási modellel létrehozott adatok vektorábrázolásainak elemzésével működik. A keresési folyamat méri az adatvektorok és a lekérdezésvektorok közötti távolságot. A lekérdezésvektorhoz legközelebb eső adatvektorok azok, amelyek szemantikailag a leginkább hasonlítanak.

Egyes szolgáltatások, például az Azure Cosmos DB for MongoDB vCore natív vektorkeresési képességeket biztosítanak az adatokhoz. Más adatbázisok vektorkereséssel bővíthetők a tárolt adatok indexelésével egy olyan szolgáltatással, mint az Azure AI Search, amely képes az adatok vizsgálatára és indexelésére a vektorkeresési képességek biztosítása érdekében.

Vektorkeresési munkafolyamatok .NET-tel és OpenAI-val

A vektoradatbázisok és keresési funkcióik különösen hasznosak az Azure OpenAI-val folytatott RAG-minta-munkafolyamatokban . Ez a minta lehetővé teszi az AI-modell bővítését vagy továbbfejlesztését az adatok szemantikailag gazdag ismereteivel. A vektoradatbázisokat használó gyakori AI-munkafolyamatok a következő lépéseket tartalmazhatják:

  1. Hozzon létre beágyazásokat az adatokhoz egy OpenAI-beágyazási modellel.
  2. Tárolja és indexelje a beágyazásokat egy vektoradatbázisban vagy keresési szolgáltatásban.
  3. Felhasználói kérések konvertálása az alkalmazásból beágyazásokká.
  4. Futtasson vektoros keresést az adatok között, összehasonlítva a felhasználói kérést az adatbázis beágyazási adataival.
  5. Használjon olyan nyelvi modellt, mint a GPT-35 vagy a GPT-4, hogy felhasználóbarát befejezést hoz létre a vektorkeresés eredményeiből.

A folyamat gyakorlati példájáért látogasson el az Azure OpenAI ragtal történő implementálására egy .NET-alkalmazás oktatóanyagában található vektorkereséssel.

A RAG-minta további előnyei a következők:

  • Környezetileg releváns és pontos válaszokat hozhat létre a felhasználói kérésekre az AI-modellekből.
  • Az LLM-jogkivonatok korlátainak leküzdése – a nehéz emelés az adatbázisvektor-keresésen keresztül történik.
  • Csökkentse a költségeket a frissített adatok gyakori finomhangolásával.

Elérhető vektoradatbázis-megoldások

Az AI-alkalmazások gyakran használnak adatvektor-adatbázisokat és -szolgáltatásokat a relevancia javítása és a testre szabott funkciók biztosítása érdekében. Ezek közül a szolgáltatások közül sok natív SDK-t biztosít a .NET-hez, míg mások olyan REST-szolgáltatást kínálnak, amelyhez egyéni kódon keresztül csatlakozhat. A Szemantic Kernel bővíthető összetevőmodellt biztosít, amely lehetővé teszi a különböző vektortárolók használatát anélkül, hogy minden SDK-t meg kellene tanulnia.

A Szemantic Kernel az alábbi vektoradatbázisokhoz és -szolgáltatásokhoz biztosít összekötőket:

Vektorszolgáltatás Szemantikus kernel-összekötő .NET SDK
Azure AI Keresés Microsoft.SemanticKernel.Connectors.AzureAISearch Azure.Search.Documents
Azure Cosmos DB for NoSQL Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.Azure.Cosmos
Azure Cosmos DB a MongoDB-hez Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB MongoDb.Driver
Azure PostgreSQL-kiszolgáló 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 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

A .NET SDK és az API támogatásának felderítéséhez tekintse meg az egyes szolgáltatások dokumentációját.