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í:
- Azure AI Search
- Azure Cosmos DB for NoSQL
- Azure Cosmos DB pro MongoDB (virtuální jádra)
- Azure Cosmos DB for PostgreSQL
- Azure Database for PostgreSQL
- Azure SQL Database
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
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 pro datové typy vektorů, přibližné indexy vektorů nejbližšího souseda (ANN), limity dimenzí vektoru, více vektorových polí a více vektorových indexů se někdy mezi službami 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 |
- "pgvector" podporuje vektorové vyhledávání, což je rozšíření PostgreSQL.
- Použití vektorové vyhledávání při vkládání ve službě Azure Cosmos DB pro virtuální jádro MongoDB
- Vektory ve službě Azure AI Search
- Nativní vektorové vyhledávání je k dispozici ve verzi Preview služby Azure SQL Database v rané fázi přijetí
- Vektory mohou být uloženy ve sloupci nebo proměnné VARBINARY(8000).
- 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.
- Vektory můžou mít až 16 000 dimenzí. Index používající "IVFFlat" a "HNSW" ale podporuje vektory s až 2 000 dimenzemi.
- 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 |
- Fulltextové vyhledávání PostgreSQL
- Vyhledávání a dotazování pomocí textových indexů ve službě Azure Cosmos DB pro virtuální jádra MongoDB
- Začínáme s fulltextovým vyhledáváním
- Vektorová data na SQL Serveru
- Není k dispozici jako prvotřídní funkce, ale jsou k dispozici vzorové kódy .
- 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.
- Příklad hybridního vyhledávání pro databázi Azure SQL a SQL Server
- 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.
DiskANN, 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. DiskANN se může přizpůsobit změně datové sady a uložit výpočetní prostředky. 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ě. IVFFlat je efektivní v prostředích, kde jsou hardwarové prostředky omezené nebo objemy dotazů nejsou vysoké.
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 |
---|---|---|---|---|---|---|
DiskANN | No | Ano | No | No | No | Ne |
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, quantizedFlat2 | Omezení vektorových polí 3 Omezení vektorových indexů 4 |
- | - | Externí knihovny jsou k dispozici5 |
- Azure Cosmos DB pro MongoDB – přehled vektorového vyhledávání
- Zásady indexování vektorů
- Pro každý kontejner je k dispozici pouze jedno vektorové pole.
- Pro každý kontejner je k dispozici pouze jeden vektorový index.
- 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 |
Skalární součin | Ano | Ano1 | Ano | Ano | Yes | Ano 2 |
- Výpočet vektorové vzdálenosti pro Azure Cosmos DB for NoSQL
- 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 |
- Azure Cosmos DB pro MongoDB (virtuální jádro) se podporuje jako zdroj dat pro Azure OpenAI ve vašich datech.
- Azure AI Search se podporuje jako zdroj dat pro Azure OpenAI ve vašich datech.
- K dispozici je rozšíření Azure AI (Preview).
- Azure AI Search poskytuje dovednost vektorizovat blokovaný text.
- Můžete vytvořit uloženou proceduru pro nasazení modelu vložení.
- Podporuje se jako vektorová databáze v nástroji Vector DB Lookup .
- Podporuje se jako konektor paměti a konektor vektorové databáze (C#).
- Podporuje se jako konektor paměti a konektor vektorové databáze (C#, Python).
- Podporuje se jako konektor vektorové databáze (C#, Python).
- Podporuje se jako konektor paměti a konektor vektorové databáze (C#, Python).
- 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:
- Keita Onabuta | Vedoucí zákaznický inženýr
- Gary Lee | Vedoucí zákaznický inženýr
Další přispěvatelé:
- Kruti Mehta | Customer Engineer
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.
Související prostředky
- Principy modelů úložiště dat
- Technologické volby pro řešení Azure
- Oznámení EAP pro podporu vektorů ve službě Azure SQL Database
- Nativní podpora vektorů v Azure SQL a SQL Serveru
- Vektorová databáze ve službě Azure Cosmos DB
- Představení funkcí vektorové databáze ve službě Azure Cosmos DB for NoSQL
- Vektorové vyhledávání ve službě Azure Cosmos DB for NoSQL
- Ukázky azure Vector Database