Microsoft otevřel kód pro vektorovou vyhledávací knihovnu používanou Bingem

Microsoft publikováno zdrojové kódy knihovny strojového učení SPTAG (Space Partition Tree And Graph) s implementací přibližného algoritmu hledání nejbližšího souseda. Knihovna vyvinutý společností ve výzkumné divizi společnosti Microsoft Research a vývojovém centru vyhledávacích technologií (Microsoft Search Technology Center). V praxi SPTAG používá vyhledávač Bing k určení nejrelevantnějších výsledků na základě kontextu vyhledávacích dotazů. Kód je napsán v C++ a distribuovány pod licencí MIT. Sestavení pro Linux a Windows je podporováno. Existuje vazba pro jazyk Python.

Navzdory tomu, že myšlenka využití vektorového úložiště ve vyhledávačích se vznášela již poměrně dlouho, v praxi jejich implementaci brzdí vysoká náročnost na zdroje operací s vektory a omezení škálovatelnosti. Kombinace metod hlubokého strojového učení s přibližnými algoritmy pro vyhledávání nejbližších sousedů umožnila posunout výkon a škálovatelnost vektorových systémů na úroveň přijatelnou pro velké vyhledávače. Například v Bingu je pro vektorový index s více než 150 miliardami vektorů čas pro načtení nejrelevantnějších výsledků do 8 ms.

Knihovna obsahuje nástroje pro vytváření indexu a organizaci vyhledávání vektorů a také sadu nástrojů pro údržbu distribuovaného online vyhledávacího systému pokrývajícího velmi rozsáhlé sbírky vektorů. Nabízeno následující moduly: index builder pro indexování, searcher pro vyhledávání pomocí indexu distribuovaného v clusteru několika uzlů, server pro spouštění handlerů na uzlech, Agregator pro spojení několika serverů do jednoho a klient pro odesílání dotazů. Je podporováno zahrnutí nových vektorů do indexu a mazání vektorů za běhu.

Z knihovny vyplývá, že data zpracovávaná a prezentovaná ve sbírce jsou formátována ve formě příbuzných vektorů, které lze porovnávat na základě euklidovský (L2) popř kosinus vzdálenosti Vyhledávací dotaz vrátí vektory, jejichž vzdálenost mezi nimi a původním vektorem je minimální. SPTAG poskytuje dvě metody pro organizaci vektorového prostoru: SPTAG-KDT (K-rozměrný strom (kd-strom) A graf relativního sousedství) a SPTAG-BKT (k- znamená strom (k-znamená strom a graf relativního sousedství). První metoda vyžaduje méně prostředků při práci s indexem a druhá ukazuje vyšší přesnost výsledků vyhledávání pro velmi velké kolekce vektorů.

Vektorové vyhledávání se přitom neomezuje pouze na text a lze jej aplikovat na multimediální informace a obrázky i v systémech pro automatické generování doporučení. Například jeden z prototypů založených na frameworku PyTorch implementoval vektorový systém pro vyhledávání založený na podobnosti objektů v obrázcích, vytvořený pomocí dat z několika referenčních kolekcí s obrázky zvířat, koček a psů, které byly převedeny na sady vektorů. . Když je příchozí obrázek přijat pro vyhledávání, je převeden pomocí modelu strojového učení na vektor, na základě kterého jsou pomocí algoritmu SPTAG vybrány z indexu nejpodobnější vektory a jako výsledek jsou vráceny související obrázky.

Zdroj: opennet.ru

Přidat komentář