Microsoft-i me burim të hapur bibliotekën e kërkimit vektor të përdorur në Bing

Kompania Microsoft botuar kodet burimore të bibliotekës së mësimit të makinës SPTAG (Space Partition Tree And Graph) me zbatimin e algoritmit të përafërt kërkimi i fqinjit më të afërt. Librari zhvilluar në divizionin e kërkimit të Microsoft Research dhe qendrën e zhvillimit të teknologjisë së kërkimit (Microsoft Search Technology Center). Në praktikë, SPTAG përdoret nga motori i kërkimit Bing për të përcaktuar rezultatet më të rëndësishme bazuar në kontekstin e pyetjeve të kërkimit. Kodi është shkruar në C++ dhe shperndare nga me licencë MIT. Build për Linux dhe Windows mbështetet. Ekziston një lidhje për gjuhën Python.

Përkundër faktit se ideja e përdorimit të ruajtjes vektoriale në motorët e kërkimit ka qarkulluar për një kohë mjaft të gjatë, në praktikë, zbatimi i tyre pengohet nga intensiteti i lartë i burimeve të operacioneve me vektorë dhe kufizime të shkallëzueshmërisë. Kombinimi i metodave të mësimit të makinerive të thella me algoritmet e përafërta të kërkimit të fqinjëve më të afërt ka bërë të mundur sjelljen e performancës dhe shkallëzueshmërisë së sistemeve vektoriale në një nivel të pranueshëm për motorët e mëdhenj të kërkimit. Për shembull, në Bing, për një indeks vektorial prej mbi 150 miliardë vektorësh, koha për të marrë rezultatet më të rëndësishme është brenda 8 ms.

Biblioteka përfshin mjete për ndërtimin e një indeksi dhe organizimin e kërkimeve vektoriale, si dhe një grup mjetesh për mirëmbajtjen e një sistemi kërkimi të shpërndarë në internet që mbulon koleksione shumë të mëdha vektorësh. Ofrohet modulet e mëposhtme: ndërtues indeksi për indeksimin, kërkues për kërkimin duke përdorur një indeks të shpërndarë në një grup prej disa nyjeve, server për ekzekutimin e mbajtësve në nyje, Agregator për kombinimin e disa serverëve në një dhe klient për dërgimin e pyetjeve. Përfshirja e vektorëve të rinj në indeks dhe fshirja e vektorëve në fluturim mbështetet.

Biblioteka nënkupton që të dhënat e përpunuara dhe të paraqitura në koleksion janë të formatuara në formën e vektorëve të lidhur që mund të krahasohen bazuar në Euklidiane (L2) ose kosinusi distancat Pyetja e kërkimit kthen vektorë distanca e të cilëve midis tyre dhe vektorit origjinal është minimale. SPTAG ofron dy metoda për organizimin e hapësirës vektoriale: SPTAG-KDT (pema K-dimensionale (kd-pemë) Dhe grafiku i lagjes relative) dhe SPTAG-BKT (k-do të thotë pemë (k-do të thotë pemë dhe grafiku i fqinjësisë relative). Metoda e parë kërkon më pak burime kur punon me indeksin, dhe e dyta demonstron saktësi më të lartë të rezultateve të kërkimit për koleksione shumë të mëdha vektorësh.

Në të njëjtën kohë, kërkimi vektor nuk është i kufizuar në tekst dhe mund të aplikohet në informacione dhe imazhe multimediale, si dhe në sisteme për gjenerimin automatik të rekomandimeve. Për shembull, një nga prototipet e bazuar në kornizën PyTorch zbatoi një sistem vektori për kërkimin bazuar në ngjashmërinë e objekteve në imazhe, i ndërtuar duke përdorur të dhëna nga disa koleksione referimi me imazhe të kafshëve, maceve dhe qenve, të cilat u shndërruan në grupe vektorësh. . Kur një imazh në hyrje merret për kërkim, ai konvertohet duke përdorur një model të mësimit të makinës në një vektor, në bazë të të cilit zgjidhen vektorët më të ngjashëm nga indeksi duke përdorur algoritmin SPTAG dhe imazhet e lidhura kthehen si rezultat.

Burimi: opennet.ru

Shto një koment