AGI
Role vektorových databází v moderních generativních aplikacích umělé inteligence

Pro efektivní fungování velkých aplikací umělé inteligence je zapotřebí dobrý systém pro zpracování velkých množství dat. Jedním z takových důležitých systémů je vektorová databáze. Co ji odlišuje, je její schopnost pracovat s mnoha typy dat, jako jsou text, zvuk, obrázky a videa, ve formě číselných vektorů.
Co jsou vektorové databáze?
Vektorová databáze je specializovaný systém pro ukládání a zpracování vysokodimenzionálních vektorů. Tyto vektory, které lze považovat za body v mnohorozměrném prostoru, často reprezentují vložené nebo komprimované reprezentace složitějších dat, jako jsou obrázky, text nebo zvuk.
Vektorové databáze umožňují rychlé vyhledávání podobnosti mezi těmito vektory, což umožňuje rychlé načtení nejpodobnějších položek z rozsáhlé datové sady.
Tradiční databáze vs. vektorové databáze
Vektorové databáze:
- Zpracovávají vysokodimenzionální data: Vektorové databáze jsou navrženy pro efektivní zpracování a ukládání dat ve vysokodimenzionálních prostorech. To je zvláště užitečné pro aplikace, jako je strojové učení, kde datové body (jako obrázky nebo text) mohou být reprezentovány jako vektory v mnohorozměrném prostoru.
- Optimalizovány pro vyhledávání podobnosti: Jednou z hlavních funkcí vektorových databází je jejich schopnost provádět vyhledávání podobnosti. Místo dotazování dat na základě přesných shod umožňuje tato databáze uživatelům načíst data, která jsou “podobná” zadanému dotazu, což je neocenitelné pro úkoly, jako je načtení obrázků nebo textu.
- Škálovatelné pro velké datové sady: Jak aplikace umělé inteligence a strojového učení rostou, tak roste i množství zpracovávaných dat. Vektorové databáze jsou navrženy pro škálovatelnost, aby mohly zpracovávat velké množství dat bez kompromisů v oblasti výkonu.
Tradiční databáze:
- Ukládání strukturovaných dat: Tradiční databáze, jako jsou relační databáze, jsou navrženy pro ukládání strukturovaných dat. To znamená, že data jsou organizována do předdefinovaných tabulek, řádků a sloupců, což zajišťuje integritu a konzistenci dat.
- Optimalizovány pro operace CRUD: Tradiční databáze jsou primárně optimalizovány pro operace CRUD (vytvořit, přečíst, aktualizovat, odstranit). To znamená, že jsou navrženy pro efektivní zpracování požadavků na vytvoření, čtení, aktualizaci a odstranění datových položek, což je vhodné pro širokou škálu aplikací, od webových služeb po podnikový software.
- Pevná schéma: Jednou z charakteristických vlastností mnoha tradičních databází je pevná schéma. Jakmile je definována struktura databáze, změny mohou být složité a časově náročné. Tato rigidita zajišťuje konzistenci dat, ale může být méně flexibilní než schéma bez schématu nebo dynamické schéma moderních databází.
Tradiční databáze často bojují s komplexitou vložených reprezentací, což je výzva, kterou vektorové databáze snadno zvládají.
Vektorová reprezentace
Centrální pro fungování vektorových databází je fundamentální koncept reprezentace různých forem dat pomocí číselných vektorů. Zkusme si vzít obrázek jako příklad. Když vidíte obrázek kočky, zatímco pro nás to může být pouze roztomilý obrázek, pro stroj může být transformován do jedinečného 512dimenzionálního vektoru, jako je:
[0,23, 0,54, 0,32, …, 0,12, 0,45, 0,90]
S vektorovými databázemi mohou aplikace umělé inteligence dělat více věcí. Mohou najít informace na základě významu a pamatovat si věci po dlouhou dobu. Zajímavé je, že tato metoda není omezena pouze na obrázky. Textová data plná kontextových a sémantických významů mohou být také transformována do vektorové formy.
Generativní umělé inteligence a potřeba vektorových databází
Generativní umělé inteligence často zahrnuje vložené reprezentace. Zkusme si vzít word embeddings v přírodním jazykovém zpracování (NLP). Slova nebo věty jsou transformovány do vektorů, které zachycují sémantický význam. Při generování lidsky podobného textu modely potřebují rychle porovnávat a načítat relevantní vložené reprezentace, aby generadoval text, který zachovává kontextuální významy.
Podobně, při generování obrázků nebo zvuku hrají vložené reprezentace klíčovou roli při kódování vzorců a funkcí. Pro tyto modely je zapotřebí databáze, která umožňuje okamžité načtení podobných vektorů, což z nich dělá nezbytnou součást puzzle generativní umělé inteligence.
Vytvoření vložených reprezentací pro přirozený jazyk obvykle zahrnuje použití předem trénovaných modelů, jako jsou:
- GPT-3 a GPT-4: OpenAI’s GPT-3 (Generativní Pre-trained Transformer 3) byl monumentálním modelem v NLP komunitě s 175 miliardami parametrů. Následující GPT-4, s ještě větším počtem parametrů, dále rozšiřuje hranice generování vysokokvalitních vložených reprezentací. Tyto modely jsou trénovány na rozmanitých datech, což jim umožňuje vytvářet vložené reprezentace, které zachycují širokou škálu lingvistických nuancí.
- BERT a jeho varianty: BERT (Bidirectional Encoder Representations from Transformers) od Googlu je další významný model, který prošel různými aktualizacemi a iteracemi, jako je RoBERTa a DistillBERT. BERTova bidirekční trénink, který čte text v obou směrech, je zvláště vhodný pro pochopení kontextu kolem slova.
- ELECTRA: Novější model, který je efektivní a dosahuje podobných výkonů jako GPT-3 a BERT, ale vyžaduje méně výpočetních zdrojů. ELECTRA rozlišuje mezi skutečnými a falešnými daty během předtrénování, což pomáhá při generování více rafinovaných vložených reprezentací.
Porozumění výše uvedenému procesu:
Na počátku je použit model vložené reprezentace pro transformaci požadovaného obsahu do vektorových vložených reprezentací. Jakmile jsou vygenerovány, tyto vložené reprezentace jsou uloženy ve vektorové databázi. Pro snadnou stopovatelnost a relevanci tyto uložené vložené reprezentace uchovávají odkaz nebo referenci na původní obsah, ze kterého byly odvozeny.
Později, když uživatel nebo systém položí otázku aplikaci, stejný model vložené reprezentace opět zasahuje. Transformuje tuto otázku do odpovídajících vložených reprezentací. Tyto nově vytvořené vložené reprezentace pak prohledávají vektorovou databázi, aby našly vektorové reprezentace, které jsou podobné. Vložené reprezentace, které jsou identifikovány jako shody, mají přímou asociaci s původním obsahem, zajišťující, že dotaz uživatele je splněn relevantními a přesnými výsledky.
Rostoucí investice do nových vektorových databází
S rostoucí popularitou umělé inteligence investují многие společnosti více peněz do vektorových databází, aby zlepšily své algoritmy a zvýšily rychlost. To je vidět na nedávných investicích do startupů vektorových databází, jako je Pinecone, Chroma DB a Weviate.
Velké společnosti, jako je Microsoft, mají také své vlastní nástroje. Například Azure Cognitive Search umožňuje firmám vytvářet nástroje umělé inteligence pomocí vektorových databází.
Oracle nedávno oznámil nové funkce pro svou Database 23c, zahrnující integrovanou vektorovou databázi. Nazvanou “AI Vector Search”, bude mít nový datový typ, indexy a vyhledávací nástroje pro ukládání a vyhledávání dat, jako jsou dokumenty a obrázky, pomocí vektorů. Podporuje Retrieval Augmented Generation (RAG), který kombinuje velké jazykové modely s podnikovými daty pro lepší odpovědi na jazykové otázky bez sdílení soukromých dat.
Primární úvahy vektorových databází
Metry vzdálenosti
Efektivita vyhledávání podobnosti závisí na zvolené metrice vzdálenosti. Společné metriky zahrnují Euclidean distance a cosine similarity, každá z nich je vhodná pro různé typy vektorových distribucí.
Indexování
Vzhledem k vysoké dimenzionalitě vektorů tradiční metody indexování nejsou dostatečné. Vektorové databáze používají techniky, jako jsou Hierarchical Navigable Small World (HNSW) grafy nebo Annoy stromy, které umožňují efektivní rozdělení vektorového prostoru a rychlé vyhledávání nejbližších sousedů.

Annoy strom (Zdroj)
Annoy je metoda, která používá binární vyhledávací stromy. Rozděluje náš datový prostor mnohokrát a prochází pouze částí, aby našel blízké sousedy.

Hierarchical Navigable Small World (HNSW) grafy (Zdroj)
HNSW grafy, na druhé straně, jsou jako sítě. Připojují datové body speciálním způsobem, aby vyhledávání bylo rychlejší. Tyto grafy pomáhají při rychlém nalezení blízkých bodů v datech.
Škálovatelnost
Jak datové sady rostou, tak roste i výzva udržení rychlých dob načítání. Distribuované systémy, urychlení pomocí GPU a optimalizovaná správa paměti jsou některé z cest, kterými vektorové databáze řeší škálovatelnost.
Role vektorových databází: implikace a příležitosti
1. Školení dat pro pokročilé modely generativní umělé inteligence: Modely generativní umělé inteligence, jako jsou DALL-E a GPT-3, jsou trénovány pomocí rozsáhlých datových sad. Tyto datové sady často zahrnují vektory extrahované z různých zdrojů, včetně obrázků, textu, kódu a dalších domén. Vektorové databáze pečlivě kurátorují a spravují tyto datové sady, umožňující modelům umělé inteligence asimilovat a analyzovat světové znalosti identifikací vzorců a vztahů uvnitř těchto vektorů.
2. Pokročilé učení s několika příklady: Učení s několika příklady je technika školení umělé inteligence, při které jsou modely trénovány s omezenými daty. Vektorové databáze zesilují tento přístup udržováním robustního vektorového indexu. Když je model vystaven pouze několika vektorům – řekněme několika obrázkům ptáků – může rychle extrapolovat širší koncept ptáků rozpoznáním podobností a vztahů mezi těmito vektory.
3. Vylepšení doporučujících systémů: Doporučující systémy používají vektorové databáze k navržení obsahu, který je úzce spojen s preferencemi uživatele. Analýzou chování uživatele, profilu a dotazů jsou extrahovány vektory, které indikují jeho zájmy. Systém pak prohledává vektorovou databázi, aby našel vektorový obsah, který se podobá těmto zájmům, zajišťující přesné doporučení.
4. Sémantické vyhledávání informací: Tradiční metody vyhledávání se spoléhají na přesné shody klíčových slov. Vektorové databáze však umožňují systémům chápat a načítat obsah založený na sémantické podobnosti. To znamená, že vyhledávání se stává intuitivnějším, zaměřeným na základní význam dotazu, spíše než na pouhé shody slov. Například, když uživatelé zadají dotaz, odpovídající vektor je porovnán s vektory v databázi, aby nalezl obsah, který rezonuje s úmyslem dotazu, nikoli pouze jeho formulací.
5. Multimodální vyhledávání: Multimodální vyhledávání je vznikající technika, která integruje data z různých zdrojů, jako je text, obrázky, audio a video. Vektorové databáze slouží jako páteř této metody, umožňující kombinovanou analýzu vektorů z různých modalit. To vede k holistickému vyhledávacímu zážitku, kde uživatelé mohou načíst informace z různých zdrojů na základě jediného dotazu, vedoucí k bohatším vhledům a komplexnějším výsledkům.
Závěr
Svět umělé inteligence se rychle mění. Dotýká se mnoha odvětví, přináší dobré věci a nové problémy. Rychlý pokrok v generativní umělé inteligenci zdůrazňuje vitalní roli vektorových databází při správě a analýze mnohorozměrných dat.
Tyto specializované systémy pro ukládání, které jsou schopny zpracovávat vysokodimenzionální vektory z různých forem dat, jako jsou obrázky, text nebo zvuk, stojí jako klíčový prvek v efektivní funkčnosti moderních aplikací umělé inteligence, zejména v oblasti vyhledávání podobnosti.















