Microsoft on avatud lähtekoodiga Bingis kasutatud vektorotsingu raamatukogu

Microsoft опубликовала masinõppe raamatukogu lähtekoodid SPTAG (Space Partition Tree And Graph) koos ligikaudse algoritmi rakendamisega lähima naabri otsing. Raamatukogu arenenud Microsoft Researchi uurimisosakonnas ja otsingutehnoloogia arenduskeskuses (Microsoft Search Technology Center). Praktikas kasutab Bingi otsingumootor SPTAG-i, et määrata otsingupäringute konteksti põhjal kõige asjakohasemad tulemused. Kood on kirjutatud C++ ja jaotatud MIT litsentsi alusel. Build Linuxi ja Windowsi jaoks on toetatud. Pythoni keele jaoks on olemas sidumine.

Hoolimata asjaolust, et idee kasutada otsingumootorites vektormälu on hõljunud üsna pikka aega, takistab praktikas nende elluviimist vektoritega tehtavate toimingute suur ressursimahukus ja skaleeritavuse piirangud. Sügavate masinõppemeetodite kombineerimine ligikaudsete lähima naabri otsingualgoritmidega on võimaldanud viia vektorsüsteemide jõudluse ja skaleeritavuse suurte otsingumootorite jaoks vastuvõetavale tasemele. Näiteks Bingis on üle 150 miljardi vektoriga vektorindeksi puhul kõige asjakohasemate tulemuste toomise aeg 8 ms.

Raamatukogu sisaldab tööriistu indeksi koostamiseks ja vektorotsingu korraldamiseks, samuti tööriistade komplekti väga suuri vektorite kogusid hõlmava hajutatud veebiotsingusüsteemi haldamiseks. Pakutakse järgmised moodulid: indeksi koostaja indekseerimiseks, otsija mitme sõlme klastris jaotatud indeksi abil otsimiseks, server sõlmedel töötlejate käitamiseks, agregaator mitme serveri üheks ühendamiseks ja klient päringute saatmiseks. Toetatakse uute vektorite lisamist indeksisse ja vektorite kustutamist käigu pealt.

Raamatukogu eeldab, et kogus töödeldavad ja esitatud andmed vormistatakse seotud vektorite kujul, mida saab võrrelda eukleidiline (L2) või koosinus vahemaad Otsingupäring tagastab vektorid, mille kaugus nende ja algse vektori vahel on minimaalne. SPTAG pakub vektorruumi korraldamiseks kahte meetodit: SPTAG-KDT (K-mõõtmeline puu (kd-puu) Ja suhtelise naabruskonna graafik) ja SPTAG-BKT (k-tähendab puu (k-tähendab puud ja suhtelise naabruskonna graafik). Esimene meetod nõuab indeksiga töötamisel vähem ressursse ja teine ​​näitab otsingutulemuste suuremat täpsust väga suurte vektorite kogude puhul.

Samal ajal ei piirdu vektorotsing ainult tekstiga ja seda saab rakendada nii multimeedia teabe ja piltide kui ka soovituste automaatse genereerimise süsteemides. Näiteks üks PyTorchi raamistikul põhinevatest prototüüpidest rakendas piltidel olevate objektide sarnasuse alusel otsimiseks vektorsüsteemi, mis on ehitatud mitme võrdluskogu andmete põhjal koos loomade, kasside ja koerte kujutistega, mis teisendati vektorite komplektideks. . Kui sissetulev pilt on otsinguks vastu võetud, teisendatakse see masinõppemudeli abil vektoriks, mille põhjal valitakse SPTAG algoritmi abil indeksist välja kõige sarnasemad vektorid ja selle tulemusena tagastatakse seotud pildid.

Allikas: opennet.ru

Lisa kommentaar