AGI
Role vektorových databází v moderních generativních aplikacích AI

Pro efektivní fungování velkých generativních aplikací AI je zapotřebí kvalitní systém pro zpracování velkého množství dat. Jedním z takových důležitých systémů jsou vektorové databáze. Tyto databáze se odlišují svou schopností zpracovávat různé typy dat, jako je text, zvuk, obrázky a videa, ve formě číselných vektorů.
Co jsou vektorové databáze?
Vektorová databáze je specializovaný systém úložiště navržen pro efektivní zpracování vektorů s vysokou dimenzionalitou. Tyto vektory, které lze považovat za body v multi-dimenzionálním prostoru, často reprezentují embeddings 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ání dat s vysokou dimenzionalitou: Vektorové databáze jsou navrženy pro efektivní zpracování a uložení dat ve vysokých dimenzionálních prostorech. To je besonders 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 multi-dimenzionálních prostorech.
- Optimalizované pro vyhledávání podobnosti: Jednou z výjimečných vlastností 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, tyto databáze umožňují uživatelům načíst data, která jsou “podobná” zadanému dotazu, což je činí nepostradatelnými pro úkoly, jako je vyhledávání obrázků nebo textu.
- Škálovatelnost pro velké datové sady: Jak aplikace AI a strojového učení pokračují ve svém růstu, tak i množství zpracovávaných dat. Vektorové databáze jsou navrženy pro škálovatelnost, což zajišťuje, že mohou zpracovat velké množství dat bez kompromisů v oblasti výkonu.
Tradiční databáze:
- Úložiště strukturovaných dat: Tradiční databáze, jako relační databáze, jsou navrženy pro uložení 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.
- Optimalizované pro operace CRUD: Tradiční databáze jsou primárně optimalizovány pro operace CRUD (create, read, update, delete). To znamená, že jsou navrženy pro efektivní vytváření, čtení, aktualizaci a odstranění datových záznamů, což je činí vhodnými 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 jejich pevné schéma. Jakmile je definována struktura databáze, změny mohou být komplexní a časově náročné. Tato rigidita zajišťuje konzistenci dat, ale může být méně flexibilní než schéma-bez nebo dynamické schéma některých moderních databází.
Tradiční databáze často bojují s komplexitou embeddings, 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 vás to může být jen roztomilý obrázek, pro stroj to může být transformováno do jedinečného 512-rozměrného vektoru, jako je:
[0,23, 0,54, 0,32, …, 0,12, 0,45, 0,90]
S vektorovými databázemi mohou generativní aplikace AI 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ě, tato metoda není omezena pouze na obrázky. Textová data plná kontextových a sémantických významů mohou být také převedena do vektorové formy.
Generativní AI a potřeba vektorových databází
Generativní AI často zahrnuje embeddings. Vezměme si například 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í lidském textu modely potřebují rychle porovnat a načíst relevantní embeddings, aby zajistily, že vygenerovaný text zachovává kontextuální významy.
Podobně, v generování obrázků nebo zvuku, embeddings hrají klíčovou roli v kódování vzorců a funkcí. Pro tyto modely, aby fungovaly optimálně, potřebují databázi, která umožňuje okamžité načtení podobných vektorů, což činí vektorové databáze nezbytnou součástí puzzle generativního AI.
Vytváření embeddings 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 (Generative 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ů, pokračuje v rozšiřování hranic generování vysokokvalitních embeddings. Tyto modely jsou trénovány na rozmanitých datech, což jim umožňuje vytvářet embeddings, které zachycují širokou škálu lingvistických nuancí.
- BERT a jeho varianty: BERT (Bidirectional Encoder Representations from Transformers) od Googlu je dalším významným modelem, který prošel různými aktualizacemi a iteracemi, jako je RoBERTa a DistillBERT. BERTův bidirekční trénink, který čte text v obou směrech, je zvláště vhodný pro pochopení kontextu okolního slova.
- ELECTRA: Nedávný model, který je efektivní a dosahuje srovnatelných výsledků s mnohem většími modely, jako je GPT-3 a BERT, při nižších výpočetních nákladech. 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í rafinovanějších embeddings.
Porozumění výše uvedenému procesu:
Nejdříve se použije model embeddings k transformaci požadovaného obsahu do vektorových embeddings. Jakmile jsou vygenerovány, tyto embeddings se uloží do vektorové databáze. Pro snadnou stopovatelnost a relevanci tyto uložené embeddings uchovávají odkaz nebo reference na původní obsah, z něhož byly odvozeny.
Později, když uživatel nebo systém položí otázku aplikaci, stejný model embeddings opět zasáhne. Transformuje tuto otázku do odpovídajících embeddings. Tyto nově vytvořené embeddings pak prohledají vektorovou databázi, hledají podobné vektorové reprezentace. Embeddings, které jsou identifikovány jako shody, mají přímou asociaci se svým původním obsahem, což zajišťuje, že otázka uživatele je splněna relevantními a přesnými výsledky.
Rostoucí financování pro nové vektorové databáze
S rostoucí popularitou AI, mnoho společností investuje 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 podnikům vytvářet AI nástroje pomocí vektorových databází.
Oracle nedávno oznámil nové funkce pro svou Database 23c, představující integrovanou vektorovou databázi. Nazvanou “AI Vector Search”, bude mít nový datový typ, indexy a vyhledávací nástroje pro uložení a vyhledávání dat, jako jsou dokumenty a obrázky, pomocí vektorů. Podporuje Retrieval Augmented Generation (RAG), které kombinuje velké jazykové modely s obchodními daty pro lepší odpovědi na jazykové otázky bez sdílení soukromých dat.
Primární úvahy vektorových databází
Metriky 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í dělení vektorového prostoru a rychlé vyhledávání nejbližších sousedů.

Annoy tree (Source)
Annoy je metoda, která používá binární vyhledávací stromy. Rozděluje naše datové prostory mnohokrát a prochází pouze část z nich, aby našel blízké sousedy.

Hierarchical Navigable Small World (HNSW) graphs (Source)
HNSW grafy, na druhé straně, jsou jako sítě. Propojují 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 i výzva spočívající v udržení rychlých dob načítání. Distribuované systémy, urychlení pomocí GPU a optimalizované správy paměti jsou některé způsoby, jak vektorové databáze řeší škálovatelnost.
Role vektorových databází: implikace a příležitosti
1. Trénovací data pro pokročilé generativní modely AI: Generativní modely AI, jako je DALL-E a GPT-3, jsou trénovány pomocí obrovského množství dat. Tato data č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í tak modelům AI absorbovat a analyzovat světovou znalost identifikací vzorců a vztahů uvnitř těchto vektorů.
2. Pokročilé few-shot učení: Few-shot učení je technika trénování AI, při které se modely učí 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í recommender systémů: Recommender 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 obsahové vektory, které se podobají těmto zájmovým vektorům, zajišťuje tak přesné doporučení.
4. Sémantické informační vyhledávání: Tradiční vyhledávací metody spoléhají na přesné shody klíčových slov. Vektorové databáze však umožňují systémům porozumět a načíst obsah na základě sémantické podobnosti. To znamená, že vyhledávání se stává intuitivnějším, zaměřujícím se na základní význam dotazu, spíše než pouze na jeho znění. Například, když uživatelé zadají dotaz, odpovídající vektor je porovnán s vektory v databázi, aby našel obsah, který rezonuje s úmyslem dotazu, nikoli pouze jeho slovy.
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í kombinovanou analýzu vektorů z různých modalit. To vede k holistické vyhledávací zkušenosti, kde uživatelé mohou načíst informace z různých zdrojů na základě jediného dotazu, což vede k bohatším poznatkům a komplexnějším výsledkům.
Závěr
Svět AI se rychle mění. Dotýká se mnoha odvětví, přináší dobré věci a nové problémy. Rychlý pokrok v generativním AI zdůrazňuje vitální roli vektorových databází při správě a analýze multi-dimenzionálních dat.
Tyto specializované systémy úložiště, schopné zpracovávat vektory s vysokou dimenzionalitou 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í AI, zejména v oblasti vyhledávání podobnosti.
Jejich rostoucí důležitost je dále zdůrazněna investicemi do tohoto sektoru, se startupy, jako je Pinecone, a giganty, jako je Microsoft, aktivně přispívajícími k pokroku.















