Sdílet prostřednictvím


Volba služby Azure pro vektorové vyhledávání

Vektorové vyhledávání je metoda hledání informací uložených v databázi ve tvaru vektorů. Vektory jsou skupiny čísel, které představují vlastnosti nebo charakteristiky médií, jako je text nebo obrázky. Vektory představují významný pokrok oproti tradičním metodám hledání založeným na klíčových slovech. Nabízejí rychlejší a přesnější výsledky pochopením sémantických vztahů v rámci informací.

Azure nabízí několik způsobů ukládání a vyhledávání vektorizovaných dat. Tento článek pomáhá architektům a vývojářům, kteří potřebují porozumět a zvolit správnou službu Azure pro vektorové vyhledávání pro svou aplikaci.

Tento článek porovnává následující služby na základě možností vektorového vyhledávání:

Architekti a vývojáři by měli porovnat dostupné služby z pohledu požadavků na systém v matici Volba kandidátské služby a v matici schopností.

Volba kandidátské služby

Tato část vám pomůže vybrat nejpravděpodobnější služby pro vaše potřeby. Pokud chcete volby zúžit, začněte zvážením požadavků na systém.

Klíčové požadavky

Vývojový diagram, který vám pomůže zvolit správnou službu Azure pro vektorové vyhledávání.

Při rozhodování, jestli použít tradiční databázové řešení nebo azure AI Search, zvažte své požadavky a to, jestli můžete s daty prohledávat živé nebo vektorové vyhledávání v reálném čase. Tradiční relační databáze nebo databáze NoSQL je nejvhodnější pro váš scénář, pokud často měníte hodnoty v vektorizovaných polích a změny musí být prohledávatelné v reálném čase nebo téměř v reálném čase. Stejně tak může být použití existující databáze nejlepším řešením, které vám umožní splnit vaše výkonnostní cíle. Pokud vaše úloha nevyžaduje vyhledávání vektorů v reálném čase nebo téměř v reálném čase a přijímáte správu indexu vektorů, může být hledání AI přesvědčivou volbou.

Pokud zvolíte tradiční databázové řešení, konkrétní typ databázové služby, kterou se rozhodnete použít, závisí hlavně na sadě dovedností vašeho týmu a databázích, které aktuálně provozujete. Pokud už používáte konkrétní typ databáze, například MongoDB, může být pro váš scénář nejjednodušší použít stejný typ databáze. Jak je znázorněno v části Matice schopností, každá databázová služba má určité jedinečné možnosti a omezení pro vektorové vyhledávání. Zkontrolujte uvedené informace a ujistěte se, že preferovaný typ databáze podporuje požadované funkce.

Pokud jsou obavy o náklady hnacím faktorem, je údržba stávajícího návrhu pravděpodobně nejvhodnější pro váš scénář, protože zavedení nových služeb nebo jiných instancí databázové služby může přidat nové čisté náklady a složitost. Použití aktuálních databází pro vektorové vyhledávání pravděpodobně ovlivní vaše náklady méně než použití vyhrazené služby.

Pokud se rozhodnete místo vyhledávání AI použít tradiční databázi, některé pokročilé funkce vyhledávání nejsou ve výchozím nastavení dostupné. Pokud například chcete provést opakované řazení nebo hybridní vyhledávání, povolte tuto funkci prostřednictvím jazyka Transact-SQL (T-SQL) nebo jiného kódování.

Matice schopností

Tabulky v této části shrnují klíčové rozdíly v možnostech.

Základní funkce

Nativní podpora vektorových datových typů, indexů vektorů umělé neurální sítě (ANN), limitů dimenzí vektorů, více vektorových polí a více vektorových indexů se mezi službami někdy liší. Vaše požadavky na úlohy můžou vyžadovat některé z těchto konkrétních funkcí. Seznamte se se základními vektorovými funkcemi jednotlivých služeb Azure, jak je znázorněno v následující tabulce.

Schopnost Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB pro MongoDB (virtuální jádra) Azure Database for PostgreSQL (Flex) Azure AI Vyhledávač Azure SQL Database
Integrované vektorové vyhledávání Ano 1 Ano Ano 2 Ano 1 Ano 3 Ano 4
Datový typ vektoru Ano Ano Ano Ano Ano No
Limity dimenzí 6 16 000 7 nebo 2000 5058 nebo 4096 2 000 16 000 7 nebo 2000 3 072 1998 (Preview)5
Více vektorových polí Ano Ano Ne Ano Ano Yes
Více vektorových indexů Ano Ano Ne Ano Ano Yes
  1. "pgvector" podporuje vektorové vyhledávání, což je rozšíření PostgreSQL.
  2. Použití vektorové vyhledávání při vkládání ve službě Azure Cosmos DB pro virtuální jádro MongoDB
  3. Vektory ve službě Azure AI Search
  4. Nativní vektorové vyhledávání je k dispozici ve verzi Preview služby Azure SQL Database v rané fázi přijetí
  5. Vektory mohou být uloženy ve sloupci nebo proměnné VARBINARY(8000).
  6. Vkládání modelů z OpenAI, 1536 pro vkládání textu ada-002 a vkládání textu-3-small a 3072 pro vkládání textu-3-large. Pro multimodální modely vkládání ve službě Azure AI Vision 1024 pro obrázky i text.
  7. Vektory můžou mít až 16 000 dimenzí. Index používající "IVFFlat" a "HNSW" ale podporuje vektory s až 2 000 dimenzemi.
  8. Vektory indexované s plochým indexem mohou být maximálně 505 dimenzí. Vektory indexované pomocí quantizedFlat nebo DiskANN typu indexu mohou být maximálně 4 096 dimenzí.

Metody hledání

Úlohy často potřebují kombinovat vektorové vyhledávání s fulltextovým vyhledáváním nebo dokonce hybridním vyhledáváním (fulltextové vyhledávání nebo sémantické vyhledávání plus vektorové vyhledávání). Kombinace hybridního vyhledávání a opětovného řazení dosahuje vysoké přesnosti pro úlohy. Hybridní vyhledávání a řazení můžete implementovat ručně pomocí vlastního kódu, nebo můžete zvážit, jak úložiště vektorů podporuje tento požadavek na úlohy.

Metoda vyhledávání Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB pro MongoDB (virtuální jádra) Azure Database for PostgreSQL (Flex) Azure AI Vyhledávač Azure SQL Database
Fulltextové vyhledávání Ano 1 No Ano 2 Ano 1 Ano 3 Ano 4
Hybridní vyhledávání Ano 5 No Ne Ano 5 Ano 6 Ano 7
Předdefinované přehodnotování No No No Ne Ano 8 No
  1. Fulltextové vyhledávání PostgreSQL
  2. Vyhledávání a dotazování pomocí textových indexů ve službě Azure Cosmos DB pro virtuální jádra MongoDB
  3. Začínáme s fulltextovým vyhledáváním
  4. Vektorová data na SQL Serveru
  5. Není k dispozici jako prvotřídní funkce, ale jsou k dispozici vzorové kódy .
  6. Hybridní vyhledávání (kombinace fulltextového vyhledávání, vektorového vyhledávání a sémantického řazení) je k dispozici jako prvotřídní funkce.
  7. Příklad hybridního vyhledávání pro databázi Azure SQL a SQL Server
  8. Přehodnocování s názvem Sémantic Ranking je prvotřídní funkce pro přehodnocování výsledku fulltextového vyhledávání a/nebo vektorového vyhledávání.

Algoritmy indexování vektorových dat

Indexování vektorových dat je schopnost efektivně ukládat a načítat vektory. Tato funkce je důležitá, protože indexování ovlivňuje rychlost a přesnost vyhledávání podobností a dotazy nejbližšího souseda na zdroje dat.

Indexy jsou obvykle založené na vyčerpávajícím k-nejbližším sousedu (Ek-NN) nebo algoritmu ANN. Ek-NN provede vyčerpávající vyhledávání všech datových bodů o jeden po druhém a vrátí přesné K nejbližší sousedy. Ek-NN funguje v milisekundách s malým množstvím dat, ale může způsobit latenci velkých objemů dat.

HNSW a IVFFlat jsou indexy algoritmů ANN. Výběr vhodné strategie indexování zahrnuje pečlivé zvážení různých faktorů, jako je povaha datové sady, konkrétní požadavky dotazů a dostupné prostředky. IvFFlat je efektivní v prostředích, kde hardwarové prostředky jsou omezené nebo nejsou velké objemy dotazů. HNSW je excelovat v systémech, které vyžadují rychlé odpovědi na dotazy a mohou se přizpůsobit změnám v datové sadě.

Seznamte se s typy indexování vektorových dat z následující tabulky.

Přístup k indexování Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB pro MongoDB (virtuální jádra) Azure Database for PostgreSQL (Flex) Azure AI Vyhledávač Azure SQL Database
Vyčerpávající K-nejbližší soused (EKNN) Ano Ano Ano Ano Ano Yes
Hierarchický pohyblivý malý svět (HNSW) Yes No Ano (Preview)1 Ano Ano No
IVFflat Yes Ne Ano Ano No Ne
Jiný důvod - flat, quantizedFlat, diskANN2 Omezení vektorových polí 3
Omezení vektorových indexů 4
- - Externí knihovny jsou k dispozici5
  1. Azure Cosmos DB pro MongoDB – přehled vektorového vyhledávání
  2. Zásady indexování vektorů
  3. Pro každý kontejner je k dispozici pouze jedno vektorové pole.
  4. Pro každý kontejner je k dispozici pouze jeden vektorový index.
  5. Index lze vytvořit pomocí externích knihoven, jako je Scikit Learn nebo FAISS.

Podobnost a možnosti výpočtu vzdálenosti

Existují metody výpočtu kosinusu, dot a euclidovské metody výpočtu vzdálenosti pro vektorové vyhledávání. Tyto metody slouží k výpočtu podobnosti mezi dvěma vektory nebo vzdáleností mezi dvěma vektory.

Předběžná analýza dat přináší výhody z metrik i euklidových vzdáleností, které umožňují extrakci různých přehledů o datové struktuře, zatímco klasifikace textu obecně funguje lépe v rámci euklidských vzdáleností. Načtení nejvíce podobných textů k danému textu obvykle funguje lépe s kosinusovou podobností.

Vkládání služby Azure OpenAI závisí na kosinusové podobnosti výpočetní podobnosti mezi dokumenty a dotazem.

Předdefinovaný výpočet porovnání vektorů Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB pro MongoDB (virtuální jádra) Azure Database for PostgreSQL (Flex) Azure AI Vyhledávač Azure SQL Database
Kosinusová podobnost Ano Ano1 Ano Ano Yes Ano 2
Euclidean vzdálenost (L2 vzdálenost) Ano Ano1 Ano Ano Yes Ano 2
Tečkovaný produkt Ano Ano1 Ano Ano Yes Ano 2
  1. Výpočet vektorové vzdálenosti pro Azure Cosmos DB for NoSQL
  2. Příklady výpočtů vzdálenosti pro databázi Azure SQL a SQL Server

Integrace s Azure OpenAI a dalšími komponentami

Při implementaci vektorové vyhledávání můžete také zvážit propojení s dalšími komponentami Microsoftu. Například služba Azure OpenAI pomáhá vytvářet vektory pro vaše data a vstupní dotazy pro vyhledávání podobnosti vektorů.

Schopnost Azure Cosmos DB for PostgreSQL Azure Cosmos DB for NoSQL Azure Cosmos DB pro MongoDB (virtuální jádra) Azure Database for PostgreSQL (Flex) Azure AI Vyhledávač Azure SQL Database
Azure OpenAI Service – Přidání vlastních dat No Ne Ano 1 No Ano 2 No
Vektorové vkládání pomocí Azure OpenAI No No Ne Ano 3 Ano 4 Ano 5
Integrace s tokem výzvy No No No Ne Ano 6 No
Integrace s sémantickým jádrem Ano 7 Ano8 Ano9 Ano 7 Ano 10 Ano 11
  1. Azure Cosmos DB pro MongoDB (virtuální jádro) se podporuje jako zdroj dat pro Azure OpenAI ve vašich datech.
  2. Azure AI Search se podporuje jako zdroj dat pro Azure OpenAI ve vašich datech.
  3. K dispozici je rozšíření Azure AI (Preview).
  4. Azure AI Search poskytuje dovednost vektorizovat blokovaný text.
  5. Můžete vytvořit uloženou proceduru pro nasazení modelu vložení.
  6. Podporuje se jako vektorová databáze v nástroji Vector DB Lookup .
  7. Podporuje se jako konektor paměti a konektor vektorové databáze (C#).
  8. Azure Cosmos DB v sémantickém jádru
  9. Podporuje se jako konektor vektorové databáze (Python).
  10. Podporuje se jako konektor paměti a konektor vektorové databáze (C#, Python).
  11. Podporuje se jako paměťový konektor.

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autoři:

Další přispěvatelé:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další krok

Implementace dolování znalostí pomocí služby Azure AI Search V tomto studijním programu se dozvíte, jak používat Azure AI Search.