Google vydal EmbeddingGemma 2 pro vyhledávání v textu, obrazech i zvuku
Google 6. října vydal EmbeddingGemma 2, která hledá souvislosti mezi textem, obrázky, videem a zvukem přímo v zařízení. Údaj o 191 MB paměti platí jen pro textové váhy; vlastní test Qdrantu ukazuje, kolik místa zabere databáze vyhledávání.

Fotku lze hledat podle textového popisu, nahrávku podle napsaného dotazu. Google 6. října představil EmbeddingGemma 2, model pro vyhledávání podle významu. Obsah převádí na vektory, tedy seznamy čísel, jejichž porovnáním se hledají podobné položky. Text, obraz i zvuk přitom zapisuje do stejného prostoru, takže mezi nimi může vyhledávač hledat souvislosti.
Výstupem není odpověď chatbota. Model vytvoří číselný popis dotazu a prohledávaného obsahu; aplikace pak vybírá nejbližší shody. Google ho nabízí pro místní běh na telefonech a počítačích. Vyhledávání tak může fungovat bez posílání souborů na vzdálený server. Paměťový účet má ovšem dvě samostatné položky: model a data, ve kterých se hledá.
191 MB patří pouze textovým vahám
Celá sestava má podle karty modelu 740 milionů parametrů. Textová část potřebuje 270 milionů, obrazová přidává 170 milionů a zvuková dalších 300 milionů. Parametry jsou naučené hodnoty, které určují výpočet modelu. Nepotřebné části lze při načítání vynechat.
Pro text a obraz proto Google uvádí 440 milionů parametrů, pro text se zvukem 570 milionů. Jde o různé sestavy téhož modelu. Číselné popisy z textové části lze podle dokumentace porovnávat i s popisy, které vytvořila úplná sestava.
Nejnižší paměťový údaj v oznámení je přibližně 191 MB aktivní operační paměti pro textové váhy po kvantizaci, tedy uložení naučených hodnot s menší přesností. Google ho uvádí pro Pixel 11 Pro. U úplného modelu na stejném telefonu píše přibližně 567 MB. Ani jedno číslo není rozpočet celé aplikace včetně prohledávané databáze a obslužného programu. Jde o údaje výrobce; místní běh jsme nezkoušeli.
Milion vektorů může zabrat víc než model
Každá položka má standardně 768 čísel. Vlastní přepočet při ukládání každého čísla do čtyř bajtů vychází na 3 072 bajtů na vektor. Milion takových položek zabere 3,072 GB, deset milionů 30,72 GB. Počítáme desetinné gigabajty a pouze samotné vektory, bez textů, obrázků a dalších struktur databáze.
Model umí vracet také kratší seznamy o 512, 256 nebo 128 číslech. Vývojářský návod Googlu popisuje zkrácení na 128 složek jako šestinovou velikost uložených vektorů. Pro deset milionů položek ve stejné čtyřbajtové přesnosti vychází náš výpočet na 5,12 GB. Tato úspora se týká číselných popisů, nikoli veškeré paměti vyhledávače.
Zkrácení zároveň mění kvalitu hledání. Google v návodu doporučuje 128 složek hlavně pro text a první výběr kandidátů, kteří se později znovu vyhodnotí. Pro hledání v obrazech, videu a řeči uvádí při této délce zhruba 75 % původní kvality. Je to shrnutí měření Googlu, ne záruka pro libovolný archiv.
Qdrant měřil kompresi na pěti textových sadách
Další cestu prověřil tým databáze Qdrant ve vlastním testu. Dostal k modelu předběžný přístup od Googlu. Ponechal všech 768 složek a použil jednobitovou kompresi TurboQuant. Uložený vektor pak zabíral 104 bajtů místo 3 072. Deset milionů takových vektorů představuje podle našeho přepočtu 1,04 GB.
Qdrant porovnával EmbeddingGemma 2 na textových sadách SciFact, NFCorpus, ArguAna, SCIDOCS a FiQA ze souboru testů BEIR. Základem bylo přesné hledání v plných vektorech ve formátu float32, který používá čtyři bajty na číslo. Konkrétní verzi databáze článek neuvádí.
Bez opětovného vyhodnocení kandidátů zachovala komprese v průměru 99 % základního skóre nDCG@10. Tato míra hodnotí, zda se relevantní dokumenty objevují vysoko mezi prvními deseti výsledky. Neznamená, že vyhledávač vrátí stejné dokumenty: v samostatné zkoušce na datech Quory se shodovalo přibližně 74 % první desítky.
Do paměťových úspor Qdrant nezapočítal struktury pro rychlé hledání, doprovodná data ani původní vektory uložené pro další vyhodnocení. Výsledky se navíc týkají textu. Z tohoto testu nelze odvodit stejnou úsporu při stejné kvalitě pro fotografie či zvuk.
Váhy už jsou na Hugging Face. Karta je označuje licencí Apache 2.0 a odkazuje na její úplné znění u Googlu. Pro rozšiřování hotového vyhledávače má dokumentace ještě praktický detail: když k textovému archivu přibudou obrázky nebo nahrávky, dříve vypočtené vektory se nemusí vytvářet znovu. Nové vstupy ale potřebují příslušnou obrazovou či zvukovou část modelu.