Co jsou vektorové embeddingy a vektorové vyhledávání v Azure Managed Redis?

Vyhledávání podle vektorové podobnosti (VSS) je běžná schopnost v inteligentních aplikacích poháněných umělou inteligencí. Azure Managed Redis můžete použít jako nízkolatenční vektorovou databázi, když ji zkombinujete s embedding modely, jako je Azure OpenAI, pro Retrieval-Augmented Generation (RAG), sémantické cache, doporučování, vyhledávání a další AI scénáře.

Tento článek představuje vektorové embeddingy, vyhledávání podobnosti vektorů a jak může Azure Managed Redis ukládat a vyhledávat vektory pomocí modulu RediSearch.

Pro tutoriály a ukázkové aplikace, které využívají Azure Managed Redis s Azure OpenAI, viz následující zdroje:

Rozsah dostupnosti

Možnosti vektorového vyhledávání v Redis vyžadují Redis Stack, konkrétně modul RediSearch . V Azure Managed Redis je RediSearch dostupný jako spravovaný modul, který musíte povolit při vytváření cache.

Následující tabulka ukazuje dostupnost RediSearch pro úrovně Azure Managed Redis.

vrstva Azure Managed Redis Podpora RediSearch
Optimalizováno pro Paměť Ano
Vyvážené Ano
Optimalizované výpočetní prostředky Ano
Optimalizováno pro Flash Ne

Important

Moduly do instance Azure Managed Redis už nemůžete přidávat poté, co je vytvořena. Pokud plánujete používat vektorové vyhledávání, povolte modul RediSearch během provisioningu.

Než vytvoříte instanci Azure Managed Redis pro vektorové vyhledávání, naplánujte konfiguraci cache a datový model. Během provisioningu musíte zvolit některé možnosti, včetně modulů a politiky shlukování.

Pro úlohy vektorového vyhledávání:

  • Povolte modul RediSearch při vytváření instance Azure Managed Redis.
  • Použijte zásady clusteringu Enterprise. RediSearch vyžaduje podnikové zásady clusterování.
  • Používejte NoEviction politiku vyřazování, když je RediSearch povolen.
  • Vyberte podporovanou úroveň v paměti: Memory Optimized, Balanced nebo Compute Optimized.
  • Dimenzujte mezipaměť jak pro vektorová data, tak pro režii indexu.
  • Ukládejte metadata s vektory, jako je ID dokumentu, název, zdrojová URL, kategorie, časové razítko, ID tenanta nebo pole řízení přístupu, aby dotazy mohly filtrovat výsledky a vracet informace o zdroji.
  • Používejte TLS pro připojení ke klientům a zvažte autentizaci Microsoft Entra, pokud to váš klient podporuje.
  • Pro produkční pracovní zátěže zvažte Private Link, vysokou dostupnost a diagnostiku.

Azure Managed Redis spravuje dostupné verze modulů pro tuto službu. Moduly nelze ručně načítat ani ručně aktualizovat verze modulů.

Pro více informací viz Použít moduly Redis s Azure Managed Redis, architekturu Azure Managed Redis a Quickstart: Create an Azure Managed Redis instance.

Co jsou vektorové vkládání?

Vektorové embeddingy jsou numerické reprezentace dat, jako jsou slova, dokumenty, obrázky nebo produkty, ve vysokorozměrném vektorovém prostoru. Embeddingy zachycují sémantické vztahy tak, aby aplikace mohly data matematicky porovnávat.

Například slova basketball a baseball mají obvykle vnoření, která jsou si blíže než kterékoli slovo k rainforest, protože model umisťuje sémanticky související pojmy blízko sebe ve vektorovém prostoru.

Různé modely strojového učení generují embeddingy různě. Pro nejlepší výsledky používejte konzistentně jeden model vnoření pro daný vektorový index. Indexové schéma, vektorové rozměry a metrika vzdálenosti by měly odpovídat modelu vložení, který se používá k generování vektorů.

Porovnání vektorů

Můžete porovnávat vektory pomocí metrik vzdálenosti nebo podobnosti. Mezi běžné metriky patří:

  • Kosinusová podobnost, která porovnává úhel mezi vektory.
  • Eukleidovská vzdálenost, která měří přímou vzdálenost ve vektorovém prostoru.
  • Vnitřní součin, který některé scénáře vkládání a řazení běžně používají.

Správná metrika závisí na modelu vnoření a na tom, jak jsou vektory normalizovány. V mnoha scénářích textového vkládání je kosinusová podobnost běžnou volbou.

Generování vložených objektů

Mnoho modelů strojového učení podporuje rozhraní API pro vkládání. Pro příklad, jak vytvářet vektorové embeddingy pomocí Azure OpenAI, viz Naučte se, jak generovat embeddingy pomocí Azure OpenAI.

Co je vektorová databáze?

Vektorová databáze ukládá, indexuje, načítá a porovnává vysokorozměrné vektory. Vektorové databáze jsou navrženy tak, aby vracely podobné vektory s nízkou latencí a vysokou propustností.

Azure Managed Redis můžete použít jako vektorovou databázi tím, že ukládáte embeddingy do datových struktur Redis a indexujete je pomocí RediSearch.

Vektorové ukládání a metadata

V Redisu můžete vektory ukládat do hashů nebo JSON dokumentů. Ukládejte užitečná metadata s každým vektorem, jako je ID dokumentu, název, zdrojová URL, kategorie, časové razítko, ID tenanta nebo pole řízení přístupu.

Metadata činí vektorové vyhledávání užitečnějším, protože aplikace mohou filtrovat výsledky před nebo během vektorového vyhledávání. Pro aplikace RAG lze metadata také vracet s výsledky vyhledávání pro podporu citací a ukotvení zdroje.

Metody indexování a vyhledávání

Vektorové databáze používají indexy k efektivnímu vyhledávání. RediSearch podporuje běžné vektorové indexační přístupy, včetně:

  • FLAT – Přesně hrubý index síly. FLAT může být užitečný pro menší datové sady nebo pracovní zátěže, které vyžadují důkladné vyhledávání.
  • HNSW – Přibližný index nejbližších sousedů založený na hierarchických navigačních grafech malého světa. HNSW se často používá pro větší datové soubory, kde je nižší latence důležitější než vyčerpávající přesnost.

Mezi běžné metody vyhledávání patří:

  • K-nejbližší sousedé (KNN) - Vrátí nejpodobnější vektory v nejvyšší souvislosti K .
  • Approximate nearest neighbors (ANN) – Obětuje určitou přesnost za nižší latenci a nižší výpočetní náklady.

Možnosti vyhledávání

Vektorové databáze provádějí vyhledávání porovnáním dotazovacího vektoru s indexovanými vektory a vracením nejpodobnějších výsledků. Mnoho aplikací také používá hybridní vyhledávání, kde filtry metadat zužují kandidátní sadu před nebo během porovnání vektorů.

Například dotaz na doporučení produktu může vyhledávat pouze produkty v konkrétní kategorii, nebo aplikace RAG může vyhledávat pouze dokumenty, ke kterým má současný uživatel přístup.

Scénáře klíčových vektorových hledání

Vyhledávání podle vektorové podobnosti lze použít v mnoha aplikačních vzorcích, včetně:

  • Sémantické otázky a odpovědi. Vytvořte chatbota, který odpovídá na otázky přes vaše vlastní data. Dokumenty lze rozdělit na části, vložit, uložit do Azure Managed Redis a získat pomocí vektorové podobnosti před tím, než budou shrnuty velkým jazykovým modelem.
  • Vyhledávání dokumentů. Používejte embeddingy k zajištění sémantického vyhledávání v dokumentech, když vyhledávání po klíčových slovech nestačí.
  • Doporučení produktu. Najděte podobné produkty nebo služby na základě aktivity při prohlížení, historie nákupů nebo popisu produktů.
  • Vizuální vyhledávání. Hledejte produkty nebo obrázky, které vizuálně připomínají zaslaný obrázek.
  • Sémantické ukládání do mezipaměti Snižte náklady a latenci LLM tím, že dokončení ukládáte do mezipaměti a opakovaně používáte cacheované odpovědi, když je nový prompt sémanticky podobný předchozímu.
  • Paměť konverzací LLM. Ukládejte krátkodobou paměť, například nedávné konverzační obraty, a dlouhodobou paměť, jako jsou trvalé souhrny, uživatelské preference nebo fakta, jako embeddingy, které aplikace mohou získat pro budoucí odpovědi.

Proč zvolit Azure Managed Redis pro ukládání a vyhledávání vektorů?

Azure Managed Redis je užitečný pro úlohy vektorového vyhledávání, které vyžadují přístup s nízkou latencí v blízkosti aplikačních dat, dat mezipaměti, stavu relace nebo konverzační paměti. Protože se Redis běžně používá pro vysoce výkonné aplikační vzory, Azure Managed Redis může podporovat vektorové vyhledávání a zároveň sloužit příbuzným případům použití, jako je caching, omezení rychlosti, ukládání relací, sémantické cache a agentní paměť.

Mnoho AI a aplikačních frameworků obsahuje integrace s Redis, včetně:

Azure Managed Redis využívá modul RediSearch k podpoře vektorového vyhledávání, jako jsou:

  • Běžné metriky vzdálenosti, včetně L2, COSINE, a IP.
  • KNN vyhledávání s FLAT a HNSW vektorovými indexy.
  • Vektorové ukládání v hash nebo JSON datových strukturách.
  • Top-K dotazy.
  • Dotazy na vektorový rozsah.
  • Hybridní vyhledávání s funkcemi dotazů, jako jsou:
    • Geoprostorové filtrování.
    • Číselné a textové filtry.
    • Prefixové a nepřesné shody.
    • Fonetické párování.
    • Booleovské dotazy.

Jaké mám další možnosti pro ukládání a vyhledávání vektorů?

Azure poskytuje více služeb pro vektorové ukládání a vyhledávání. Nejlepší volba závisí na vašem pracovním zatížení.

Service Zvažme, kdy
Azure Spravovaný Redis Potřebujete nízkolatenční vektorové vyhledávání blízko aplikační cache, session state, sémantické cache nebo LLM paměťových vzorů.
Azure AI Vyhledávač Pro indexování dokumentů, hybridní vyhledávání, ladění relevance a podnikové vyhledávání potřebujete službu zaměřenou na vyhledávání.
Azure Cosmos DB Chcete vektorové vyhledávání vedle operačních NoSQL dat.
Azure Database pro PostgreSQL – Flexibilní server Chcete v PostgreSQL provádět vektorové vyhledávání pomocí pgvector vedle relačních dat.

Nejlepší způsob, jak začít s embeddingy a vektorovým vyhledáváním, je vyzkoušet si to sami.