Microsoft je otvorio kod za biblioteku vektorske pretrage koju koristi Bing

Microsoft objavljeno izvorni kodovi biblioteke mašinskog učenja SPTAG (Space Partition Tree And Graph) sa implementacijom približnog algoritma pretraga najbližeg susjeda. Biblioteka razvijen u istraživačkom odjelu Microsoft Researcha i centra za razvoj tehnologije pretraživanja (Microsoft Search Technology Center). U praksi, Bing pretraživač koristi SPTAG za određivanje najrelevantnijih rezultata na osnovu konteksta upita za pretraživanje. Kod je napisan u C++ i distribuira pod MIT licencom. Podržana je verzija za Linux i Windows. Postoji veza za jezik Python.

Unatoč činjenici da ideja korištenja vektorske memorije u tražilicama pluta već duže vrijeme, u praksi je njihova implementacija otežana velikim intenzitetom resursa operacija s vektorima i ograničenjima skalabilnosti. Kombinovanje metoda dubokog mašinskog učenja sa približnim algoritmima pretraživanja najbližih suseda omogućilo je da se performanse i skalabilnost vektorskih sistema dovedu na nivo prihvatljiv za velike pretraživače. Na primjer, u Bingu, za vektorski indeks od preko 150 milijardi vektora, vrijeme za dohvaćanje najrelevantnijih rezultata je unutar 8 ms.

Biblioteka uključuje alate za izgradnju indeksa i organizovanje vektorskih pretraga, kao i skup alata za održavanje distribuiranog sistema pretraživanja na mreži koji pokriva veoma velike kolekcije vektora. Ponuđeno slijedeći moduli: index builder za indeksiranje, pretraživač za pretraživanje pomoću indeksa distribuiranog u klasteru od nekoliko čvorova, server za pokretanje rukovatelja na čvorovima, Aggregator za kombinovanje više servera u jedan i klijent za slanje upita. Podržano je uključivanje novih vektora u indeks i brisanje vektora u hodu.

Biblioteka podrazumijeva da se podaci obrađeni i predstavljeni u kolekciji formatiraju u obliku povezanih vektora koji se mogu porediti na osnovu Euklidski (L2) ili kosinus udaljenosti Upit za pretragu 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-stablo) i graf relativnog susjedstva) i SPTAG-BKT (k-means drvo (k-znači drvo i graf relativnog susjedstva). Prva metoda zahtijeva manje resursa pri radu sa indeksom, a druga pokazuje veću tačnost rezultata pretraživanja za vrlo velike kolekcije vektora.

Istovremeno, vektorsko pretraživanje nije ograničeno na tekst i može se primijeniti na multimedijalne informacije i slike, kao i na sisteme za automatsko generiranje preporuka. Na primjer, jedan od prototipova baziranih na PyTorch okviru implementirao je vektorski sistem za pretraživanje zasnovan na sličnosti objekata na slikama, izgrađen koristeći podatke iz nekoliko referentnih kolekcija sa slikama životinja, mačaka i pasa, koje su konvertovane u skupove vektora. . Kada se dolazna slika primi za pretragu, ona se konvertuje pomoću modela mašinskog učenja u vektor, na osnovu kojeg se najsličniji vektori biraju iz indeksa pomoću SPTAG algoritma i pridružene slike se vraćaju kao rezultat.

izvor: opennet.ru

Dodajte komentar