Microsoft je odprl knjižnico vektorskega iskanja, ki se uporablja v Bingu

Microsoft objavljeno izvorne kode knjižnice strojnega učenja SPTAG (Space Partition Tree And Graph) z implementacijo približnega algoritma iskanje najbližjega soseda. Knjižnica razviti v raziskovalnem oddelku Microsoft Research in centru za razvoj iskalne tehnologije (Microsoft Search Technology Center). V praksi iskalnik Bing uporablja SPTAG za določanje najbolj ustreznih rezultatov na podlagi konteksta iskalnih poizvedb. Koda je napisana v C++ in distributer pod licenco MIT. Build za Linux in Windows je podprt. Obstaja vezava za jezik Python.

Kljub dejstvu, da se ideja o uporabi vektorskega shranjevanja v iskalnikih pojavlja že precej dolgo, v praksi njihovo izvajanje ovirajo visoka intenzivnost virov operacij z vektorji in omejitve razširljivosti. Združevanje metod globokega strojnega učenja z algoritmi iskanja po približnih najbližjih sosedih je omogočilo, da se zmogljivost in razširljivost vektorskih sistemov dvigne na raven, ki je sprejemljiva za velike iskalnike. Na primer, v Bingu je za vektorski indeks z več kot 150 milijardami vektorjev čas za pridobivanje najbolj ustreznih rezultatov znotraj 8 ms.

Knjižnica vključuje orodja za gradnjo indeksa in organiziranje vektorskih iskanj ter nabor orodij za vzdrževanje porazdeljenega spletnega iskalnega sistema, ki pokriva zelo velike zbirke vektorjev. Ponujen naslednje module: graditelj indeksov za indeksiranje, iskalnik za iskanje z uporabo indeksa, porazdeljenega v gruči več vozlišč, strežnik za izvajanje obdelovalcev na vozliščih, agregator za združevanje več strežnikov v enega in odjemalec za pošiljanje poizvedb. Podprto je vključevanje novih vektorjev v indeks in brisanje vektorjev sproti.

Knjižnica pomeni, da so podatki, obdelani in predstavljeni v zbirki, oblikovani v obliki povezanih vektorjev, ki jih je mogoče primerjati na podlagi evklidsko (L2) oz kosinus razdalje Iskalna poizvedba vrne vektorje, katerih razdalja med njimi in izvirnim vektorjem je minimalna. SPTAG ponuja dve metodi za organiziranje vektorskega prostora: SPTAG-KDT (K-dimenzionalno drevo (kd-drevo) In graf relativne soseščine) in SPTAG-BKT (k-pomeni drevo (k-pomeni drevo in graf relativne soseske). Prva metoda zahteva manj sredstev pri delu z indeksom, druga pa kaže večjo natančnost rezultatov iskanja za zelo velike zbirke vektorjev.

Hkrati pa vektorsko iskanje ni omejeno na besedilo in se lahko uporablja za večpredstavnostne informacije in slike, pa tudi v sistemih za samodejno generiranje priporočil. Na primer, eden od prototipov, ki temelji na ogrodju PyTorch, je implementiral vektorski sistem za iskanje na podlagi podobnosti predmetov na slikah, zgrajen na podlagi podatkov iz več referenčnih zbirk s slikami živali, mačk in psov, ki so bili pretvorjeni v nize vektorjev . Ko je dohodna slika prejeta v iskanje, se ta pretvori z modelom strojnega učenja v vektor, na podlagi katerega se iz indeksa z algoritmom SPTAG izberejo najbolj podobni vektorji in kot rezultat se vrnejo pripadajoče slike.

Vir: opennet.ru

Dodaj komentar