Jedním z prvních projektů autora tohoto příspěvku jako softwarového vývojáře bylo vytvoření algoritmů genetické analýzy. Vytvořil software pro skenování vzorků elektroforézy do databáze, přičemž úkolem bylo převést obraz každého vzoru DNA na reprezentativní data.
Co se dozvíte v článku
Využíváte už ve firmě autonomní agenty postavené na bázi umělé inteligence?
Udělal to tak, že obrázek převedl na vektor, přičemž každý bod představoval atributy vzorku. Po vektorizaci se mohly ukládat informace efektivně a také bylo možné vypočítat podobnost mezi vzorky DNA.
Převod nestrukturovaných informací na vektory je dnes běžnou záležitostí a používá se ve velkých jazykových modelech LLM (Large Language Model) pro rozpoznávání obrázků, ke zpracování přirozeného jazyka, ve strojích generujících doporučení a v dalších případech využití strojového učení.
Vektorové databáze a vektorové vyhledávání jsou dvě primární platformy, které vývojáři využívají k převodu nestrukturovaných informací na vektory, nyní častěji nazývané jako embedding (reprezentace).
Jakmile se informace zakódují jako reprezentace, je ukládání, vyhledávání a porovnávání informací mnohem jednodušší, rychlejší a výrazně škálovatelnější pro velké datové sady.
„Na naší průkopnické cestě světem vektorových databází jsme si všimli, že navzdory rozruchu dochází k běžnému podceňování jejich skutečného potenciálu,“ tvrdí Charles Xie, výkonný ředitel společnosti Zilliz.
Skutečným pokladem vektorových databází je podle něj jejich schopnost ponořit se hluboko do obrovského objemu nestrukturovaných dat a umožnit snáze využít jejich hodnotu.
Je důležité si uvědomit, že jejich role se neomezuje na paměťové úložiště pro LLM a že skrývají transformační schopnosti, které se stále objevují.
Jak to funguje
Představte si, že vytváříte vyhledávací funkci pro digitální fotoaparáty. Digitální fotoaparáty mají desítky atributů včetně velikosti, značky, ceny, typu objektivu, typu snímače, rozlišení obrazu a dalších funkcí. Jeden vyhledávač digitálních fotoaparátů má dokonce padesát atributů pro vyhledávání v počtu více než 2,5 tisíce fotoaparátů.
Existuje mnoho způsobů, jak implementovat vyhledávání a porovnávání, ale jedním z možných přístupů je převést každý atribut na jeden nebo více datových bodů v reprezentaci. Jakmile se atributy vektorizují, mohou vzorce pro vektorové vzdálenosti vypočítat podobnosti produktů a vyhledávání.
Fotoaparáty jsou sice problémem s nízkou dimenzionalitou, představte si však, že váš úkol vyžaduje prohledávání stovek tisíc vědeckých dokumentů nebo poskytování hudebních doporučení pro více než 100 milionů skladeb.
Konvenční vyhledávací mechanismy v takovém měřítku už nelze použít, ale vektorové vyhledávání snižuje složitost informací a umožňuje rychlejší výpočty.
„Vektorová databáze kóduje informace do matematické reprezentace, která je ideálně vhodná pro počítačové chápání,“ popisuje Josh Miramant, výkonný ředitel společnosti BlueOrange.
Tyto matematické reprezentace nebo vektory podle něj mohou zakódovat podobnosti a rozdíly mezi různými daty, jako by dvě barvy byly bližší vektorová reprezentace. Vzdálenosti nebo míry podobnosti jsou to, co mnoho modelů používá k určení nejlepšího nebo nejhoršího výsledku pro danou otázku.
Případy použití
Jednou z funkcí vektorové databáze je zjednodušit informace, ale její skutečnou schopností je vytváření aplikací pro podporu široké řady dotazů v přirozeném jazyce.
Vyhledávání podle klíčových slov a pokročilé vyhledávací formuláře zjednodušují překlad toho, co lidé hledají, do vyhledávacího dotazu, zpracování otázky v přirozeném jazyce však nabízí mnohem větší flexibilitu. U vektorových databází se otázka převede na reprezentaci a použije se k vyhledávání.
Lze tak například říci: „Najdi mi fotoaparát zrcadlovku za střední cenu, která je na trhu nová, má vynikající záznam videa a funguje dobře i při slabém osvětlení.“ Transformer převede tuto otázku na embedding (reprezentaci).
Vektorové databáze běžně používají kodérové transformery. Vývojář nejprve tokenizuje otázku na slova, poté použije transformer ke kódování pozic slov, přidání vah relevance a poté vytvoří abstraktní reprezentace pomocí dopředné neuronové sítě FFNN (Feed-Forward Neural Network). Následně použije dokončený embedding otázky k prohledání vektorové databáze.
Vektorové databáze pomáhají řešit problém podpory široké řady možností vyhledávání v komplexním informačním zdroji s mnoha atributy a případy použití. Modely LLM ukázaly všestrannost vektorových databází, které nyní vývojáři aplikují v jazykových a dalších oblastech bohatých na informace.
„Vektorové vyhledávání rychle získalo velkou oblibu, protože stále více aplikací využívá strojové učení a umělou inteligenci k podpoře hlasových asistentů, chatbotů, k detekci anomálií a pro stroje generující doporučení a nabízející personalizaci – to vše je totiž ve své podstatě založené právě na vektorové reprezentaci,“ vysvětluje Venkat Venkataramani, výkonný ředitel společnosti Rockset.
Díky přidání vyhledávání a schopností analýzy v reálném čase do vektorového vyhledávání mohou vývojáři indexovat a aktualizovat metadata a vektorové reprezentace v reálném čase, což je životně důležitá součást pro hledání podobností, pro stroje generující doporučení, výstupy generativní umělé inteligence nebo pro chatboty.
Použití v LLM
Vektorové databáze umožňují vývojářům vytvářet speciální jazykové modely, které nabízejí vysoký stupeň kontroly nad způsobem vektorizace informací.
Například se tak mohou vytvářet obecné reprezentace, jež lidem pomohou vyhledávat všechny typy knih na webových stránkách elektronického obchodu.
Alternativně mohou vytvářet specializované reprezentace pro historické, vědecké nebo jiné knihy ze speciální kategorie s reprezentací pro konkrétní oblast, což umožňuje zkušeným uživatelům a odborníkům na dané téma klást podrobné otázky týkající se obsahu knih, které je zajímají.
„Vektorové databáze jednoduše poskytují snadný způsob, jak načíst mnoho nestrukturovaných dat do jazykového modelu,“ vysvětluje Mike Finley, technologický ředitel společnosti AnswerRocket.
Týmy pro vývoj dat a aplikací by podle něj měly považovat vektorovou databázi za slovník nebo rejstřík (index) znalostí s dlouhým seznamem klíčů (myšlenek nebo konceptů) a užitečného zatížení (textu, který souvisí s klíčem) pro každý z nich.
Můžete mít například klíč „spotřebitelské trendy v roce 2023“ s užitečným zatížením obsahujícím text z analýzy průzkumu analytické firmy nebo interní studie od společnosti vyrábějící spotřební zboží, dodává Finley.
Výběr databáze
Vývojáři mají několik technologických možností při konverzi informací na reprezentace (embedding), při vytváření vektorového vyhledávání, porovnávání podobností a funkcí odpovědí na otázky.
„Na trh přicházejí jak specializované vektorové databáze, tak i mnoho konvenčních univerzálních databází, které získávají vektorová rozšíření,“ popisuje Peter Zaitsev, zakladatel společnosti Percona.
Vývojáři se podle něj musejí rozhodnout, zda začít používat tyto nové databáze, které mohou nabízet více funkcí a výkonu, anebo pokračovat ve využívání obecných databází s rozšířeními. Neexistuje jen jedna správná odpověď – v závislosti na vytvářené aplikaci a zkušenostech týmu mají oba přístupy své opodstatnění.
Rajesh Abhyankar, vedoucí centra COE pro generativní umělou inteligenci ve společnosti Persistent Systems, dodává, že „mezi vektorové databáze běžně používané pro vyhledávače, chatboty a zpracování přirozeného jazyka patří Pinecone, FAISS a Mivus“.
Pinecone se podle něj dobře hodí pro systémy doporučení a detekci podvodů, FAISS pro vyhledávání obrázků a doporučení produktů a Milvus pro vysoce výkonné vyhledávání a doporučení v reálném čase.
Mezi další vektorové databáze patří Chroma, LanceDB, Marqo, Qdrant, Vespa a Weaviate. Databáze a stroje podporující možnosti vektorového vyhledávání zahrnují produkty Cassandra, Coveo, Elasticsearch OpenSearch, PostgreSQL, Redis, Rockset a Zilliz.
Vektorové vyhledávání je rovněž funkcí Azure Cognitive Search, přičemž cloud Microsoft Azure poskytuje konektory pro mnoho dalších vektorových databází.
Také AWS podporuje několik možností ohledně vektorových databází, a Google Cloud nabízí Vector AI Vector Search či konektory k technologiím dalších vektorových databází.
Rizika od GenAI
Používání vektorových databází a vyhledávání s sebou přináší několik běžných rizik spojených s generativní AI, jako je kvalita dat, problémy s modelováním a další. Mezi nové problémy patří halucinace a konfabulace. Některé způsoby, jak je řešit, zahrnují zlepšení tréninkových dat a přístup k informacím v reálném čase.
„Rozlišování mezi halucinacemi a konfabulacemi je důležité při zvažování role vektorových databází v pracovním toku LLM,“ vysvětluje Joe Regensburger, viceprezident výzkumu ve společnosti Immuta.
Přísně z hlediska rozhodování o bezpečnosti představuje konfabulace vyšší riziko než halucinace, protože LLM produkují věrohodné reakce, dodává.
Regensburger zmínil dvě doporučení ohledně kroků ke snížení nepřesností modelu. „Pro dosahování dobrých výsledků LLM se vyžadují dobrá, sledovaná a řízená data bez ohledu na to, kde jsou uložená.“
Poznamenává také, že embeding (reprezentace) je nejzákladnější záležitostí, kterou je potřebné vyřešit. Vytváření takových reprezentací, kteježré obsahují nejdůležitější informace a podporují flexibilní vyhledávání, však není jednoduché, upozorňuje.
Rahul Pradhan, viceprezident pro produkty a strategii společnosti Couchbase, také přináší svůj pohled na to, jak vektorové databáze pomáhají řešit problémy s halucinacemi.
„V kontextu LLM poskytují vektorové databáze dlouhodobé úložiště pro zmírnění halucinací AI, aby se zajistilo, že znalosti modelu zůstanou koherentní a podložené, čímž se minimalizuje riziko nepřesných odpovědí,“ vysvětluje.
Evoluce pokračuje
Když se databáze SQL začaly stávat všudypřítomnými, byly po desetiletí v čele inovací pro ukládání strukturovaných informací uspořádaných do řádků a sloupců.
Následovaly NoSQL, sloupcové databáze, úložiště klíč-hodnota, databáze dokumentů a úložiště objektů umožňující vývojářům ukládat a spravovat různé polostrukturované a nestrukturované datové sady a vytvářet vůči nim dotazy.
Vektorová technologie je základem pro generativní umělou inteligenci s potenciálními lavinovými dopady, jaké byly vidět po nástupu SQL. Pochopení vektorizace a znalost vektorových databází je proto pro vývojáře dnes už základní dovedností.
Tento příspěvek vyšel v Computerworldu 3/2024.
Chcete si článek přečíst celý?
Tento článek je součástí exkluzivního obsahu pouze pro odběratele našeho newsletteru.
Přihlaste se k odběru newsletteru a my vám do mailu pošleme odkaz na celý článek.