Společnost Microsoft původní texty knihovny strojového učení (Space Partition Tree And Graph) s implementací algoritmu přibližného . Knihovna ve výzkumné divizi Microsoft Research a centru pro vývoj vyhledávacích technologií (Microsoft Search Technology Center). V praxi se SPTAG používá v vyhledávači Bing k určení nejrelevantnějších výsledků s přihlédnutím k kontextu vyhledávacích dotazů. Kód je napsán v jazyce C++ a je licencován pod licencí MIT. Je podporována kompilace pro Linux a Windows. Je k dispozici obal pro jazyk Python.
I když myšlenky na využití vektorových úložišť ve vyhledávačích existují již dlouho, jejich implementaci na praxi brání vysoká náročnost operací s vektory a omezení škálovatelnosti. Kombinace metod hloubkového strojového učení s algoritmy přibližného vyhledávání nejbližšího souseda umožnila dosáhnout výkonnosti a škálovatelnosti vektorových systémů na úroveň přijatelnou pro velké vyhledávače. Například v Bingu pro vektorový index o velikosti více než 150 miliard vektorů doba výběru nejrelevantnějších výsledků činí 8 ms.
Knihovna obsahuje nástroje pro vytváření indexu a organizaci vyhledávání vektorů, stejně jako sadu nástrojů pro podporu distribuovaného online vyhledávání, pokrývajícího velmi velké sbírky vektorů. následující moduly: index builder pro indexaci, searcher pro vyhledávání pomocí indexu, distribuovaného v clusteru několika uzlů, server pro spuštění zpracovatelů na uzlech, Aggregator pro spojení několika serverů do jednoho celku a klient pro odesílání dotazů. Podporuje se přidávání nových vektorů do indexu a odstraňování vektorů v reálném čase.
Knihovna předpokládá, že zpracovávaná a prezentovaná data ve sbírce jsou uspořádána jako propojené vektory, které lze porovnávat na základě (L2) nebo vzdáleností. Při vyhledávacím dotazu se vrátí vektory, jejichž vzdálenost od původního vektoru je minimální. V SPTAG jsou k dispozici dvě metody organizace vektorového prostoru: SPTAG-KDT (K-úhlový strom () a ) a SPTAG-BKT (strom k-průměrů ( a graf relativních okolností). První metoda vyžaduje méně zdrojů při práci s indexem, zatímco druhá demonstruje vyšší přesnost výsledků vyhledávání ve velmi velkých kolekcích vektorů.
Vektorové vyhledávání však není omezeno pouze na text a může se aplikovat na multimediální informace a obrázky, stejně jako v systémech automatického doporučování. Například v jednom z prototypů na bázi rámce PyTorch byla realizována vektorová systém pro vyhledávání založené na podobnosti objektů na obrázcích, stavěné s využitím dat z několika referenčních sbírek s obrázky zvířat, koček a psů, které byly převedeny na sady vektorů. Když je přijato vstupní obrázek k vyhledávání, je převeden pomocí modelu strojového učení na vektor, na základě kterého je pomocí algoritmu SPTAG z indexu vybráno nejpodobnější vektory a jako výsledek se vrací k nim přiřazené obrázky.
Zdroj: opennet.ru
