Ettevõte Microsoft masinõppe raamatukogu lähtekood (Space Partition Tree And Graph) koos ligikaudse otsingu algoritmi rakendusega . Raamatukogu Microsoft Research'i teadusosakonnas ja Microsoft Search Technology Center'i otsingutehnoloogia arenduskeskuses. Praktikas kasutatakse SPTAG-i otsingumootoris Bing, et määrata kõige asjakohasemad tulemused, arvestades otsingupäringute konteksti. Kood on kirjutatud C++ keeles ja on MIT litsentsi all. Toetatud on koostamine Linuxile ja Windowsile. On olemas Python keelele mõeldud mähis.
Kuigi ideed vektorhoidlate kasutamisest otsingusüsteemides on juba pikka aega ringelnud, takistab nende rakendamist praktikas operatsioonide suur ressursimahukus ja skaleeritavuse piirangud. Süvaõppe meetodite ja lähima naabri ligikaudse otsingu algoritmide ühendamine on võimaldanud viia vektorsüsteemide jõudluse ja skaleeritavuse tasemele, mis on suures osas vastuvõetav suurtele otsingusüsteemidele. Näiteks Bingis jõuab vektoriindeksi, mille suurus ületab 150 miljardit vektorit, kõige asjakohasemate tulemuste valimise aeg 8 ms.
Raamatukogusse on kaasatud vahendid indeksi loomiseks ja vektorite otsimise korraldamiseks ning tööriistade komplekt jaotatud online-otsingusüsteemi toetamiseks, mis katab väga suurte vektorikogude otsimise. järgnevad moodulid: indeksi loojamoodul indekseerimiseks, otsija indeksi põhjal otsimiseks, mida haldab klaster mitmest sõlmest, server töötlusprotsessorite käivitamiseks sõlmedel, Agregaator mitme serveri ühendamiseks üheks ning klient päringute edastamiseks. Toetatakse uute vektorite lisamist indeksisse ja vektorite eemaldamist reaalajas.
Raamatukogu eeldab, et kogutud ja esitatud andmed on vormindatud seotud vektoritena, mida saab võrrelda põhjal (L2) või vahedega. Otsingupäringu korral tagastatakse vektorid, mille vahe allika vektoriga on minimaalne. SPTAG pakub kahte meetodit vektoriruumi korraldamiseks: SPTAG-KDT (K-mõõtmelise puu () ja ja SPTAG-BKT (k-esimese puu ( ja relatiivsete naabruste graaf). Esimene meetod nõuab indeksi töötlemisel vähem ressursse, samas kui teine näitab väga suurte vektorikogude puhul kõrgemat otsingutäpsust.
Vektorsüstem ei piirdumurda vaid tekstiga, vaid seda saab rakendada ka multimeedia teabele ja piltidele, samuti automaatsete soovituste süsteemides. Näiteks oli PyTorchi raamistikul põhinevas prototüübis rakendatud vektorsüsteem, mis võimaldab otsida objektide sarnasust piltidel, luues vektorkogumeid mitmest standardkogumist, kus olid loomapildid, kassid ja koerad. Kui otsinguks esitatakse sisendpilt, muudetakse see masinõppemudeli abil vektoriks, mille alusel valitakse SPTAG-algoritmi abil indeksist kõige sarnasemad vektorid ning tulemuseks tagastatakse nendega seotud pildid.
Allikas: opennet.ru
