Microsoft je otvorio knjižnicu vektorskog pretraživanja koja se koristi u Bingu

Microsoft опубликовала izvorni kodovi knjižnice strojnog učenja SPTAG (Space Partition Tree And Graph) s implementacijom aproksimativnog algoritma traženje najbližeg susjeda. Knjižnica razvijena u istraživačkom odjelu Microsoft Researcha i centru za razvoj tehnologije pretraživanja (Microsoft Search Technology Center). U praksi tražilica Bing koristi SPTAG za određivanje najrelevantnijih rezultata na temelju konteksta upita za pretraživanje. Kod je napisan u C++ i distribuira pod licencom MIT-a. Podržana je izrada za Linux i Windows. Postoji vezanje za jezik Python.

Unatoč činjenici da je ideja o korištenju vektorske pohrane u tražilicama lebdjela već duže vrijeme, u praksi je njihova implementacija otežana visokim resursnim intenzitetom operacija s vektorima i ograničenjima skalabilnosti. Kombinacija metoda dubokog strojnog učenja s približnim algoritmima pretraživanja najbližeg susjeda omogućila je dovođenje performansi i skalabilnosti vektorskih sustava na razinu prihvatljivu za velike tražilice. Na primjer, u Bingu, za vektorski indeks od preko 150 milijardi vektora, vrijeme za dohvaćanje najrelevantnijih rezultata je unutar 8 ms.

Knjižnica uključuje alate za izradu indeksa i organiziranje pretraživanja vektora, kao i skup alata za održavanje distribuiranog online sustava pretraživanja koji pokriva vrlo velike zbirke vektora. Ponuđena sljedeće module: graditelj indeksa za indeksiranje, pretraživač za pretraživanje pomoću indeksa distribuiranog u klasteru od nekoliko čvorova, poslužitelj za pokretanje rukovatelja na čvorovima, agregator za kombiniranje više poslužitelja u jedan i klijent za slanje upita. Podržano je uključivanje novih vektora u indeks i brisanje vektora u hodu.

Knjižnica podrazumijeva da su podaci obrađeni i predstavljeni u zbirci formatirani u obliku povezanih vektora koji se mogu usporediti na temelju euklidski (L2) ili kosinus udaljenosti Upit za pretraživanje vraća vektore čija je udaljenost između njih i originalnog vektora minimalna. SPTAG pruža dvije metode za organiziranje vektorskog prostora: SPTAG-KDT (K-dimenzionalno stablo (kd-drvo) I graf relativnog susjedstva) i SPTAG-BKT (k-znači stablo (k-znači drvo i graf relativnog susjedstva). Prva metoda zahtijeva manje resursa pri radu s indeksom, a druga pokazuje veću točnost rezultata pretraživanja za vrlo velike zbirke vektora.

Istodobno, vektorsko pretraživanje nije ograničeno na tekst i može se primijeniti na multimedijske informacije i slike, kao iu sustavima za automatsko generiranje preporuka. Na primjer, jedan od prototipova temeljen na okviru PyTorch implementirao je vektorski sustav za pretraživanje na temelju sličnosti objekata na slikama, izgrađen pomoću podataka iz nekoliko referentnih zbirki sa slikama životinja, mačaka i pasa, koje su pretvorene u skupove vektora . Kada se dolazna slika primi za pretraživanje, ona se pomoću modela strojnog učenja pretvara u vektor, na temelju kojeg se pomoću SPTAG algoritma iz indeksa biraju najsličniji vektori, a pridružene slike se vraćaju kao rezultat.

Izvor: opennet.ru

Dodajte komentar