Microsoft atvērtā pirmkoda vektoru meklēšanas bibliotēku izmantoja Bing

Microsoft опубликовала mašīnmācīšanās bibliotēkas pirmkodi SPTAG (Space Partition Tree And Graph) ar aptuvenā algoritma ieviešanu tuvākā kaimiņa meklēšana. Bibliotēka izstrādāta Microsoft Research pētniecības nodaļā un meklēšanas tehnoloģiju attīstības centrā (Microsoft Search Technology Center). Praksē Bing meklētājprogramma izmanto SPTAG, lai noteiktu atbilstošākos rezultātus, pamatojoties uz meklēšanas vaicājumu kontekstu. Kods ir rakstīts C++ un izplata saskaņā ar MIT licenci. Build operētājsistēmai Linux un Windows tiek atbalstīta. Python valodai ir saistošs.

Neskatoties uz to, ka ideja par vektoru krātuvju izmantošanu meklētājprogrammās virmojusi jau diezgan ilgu laiku, praksē to ieviešanu apgrūtina operāciju ar vektoriem augstā resursu intensitāte un mērogojamības ierobežojumi. Dziļās mašīnmācīšanās metožu apvienošana ar aptuveniem tuvāko kaimiņu meklēšanas algoritmiem ir ļāvusi panākt vektoru sistēmu veiktspēju un mērogojamību līdz līmenim, kas ir pieņemams lielām meklētājprogrammām. Piemēram, programmā Bing vektoru indeksam, kurā ir vairāk nekā 150 miljardi vektoru, atbilstošāko rezultātu iegūšanas laiks ir 8 ms.

Bibliotēkā ir iekļauti rīki indeksa veidošanai un vektoru meklēšanas organizēšanai, kā arī rīku komplekts izplatītas tiešsaistes meklēšanas sistēmas uzturēšanai, kas aptver ļoti lielas vektoru kolekcijas. Piedāvāja šādus moduļus: indeksu veidotājs indeksēšanai, meklētājs meklēšanai, izmantojot indeksu, kas sadalīts vairāku mezglu klasterī, serveris apstrādātāju darbināšanai mezglos, apkopotājs vairāku serveru apvienošanai vienā un klients vaicājumu nosūtīšanai. Tiek atbalstīta jaunu vektoru iekļaušana indeksā un vektoru dzēšana lidojuma laikā.

Bibliotēka nozīmē, ka kolekcijā apstrādātie un uzrādītie dati ir formatēti saistītu vektoru veidā, kurus var salīdzināt, pamatojoties uz Eiklīda (L2) vai kosinuss attālumos Meklēšanas vaicājums atgriež vektorus, kuru attālums starp tiem un sākotnējo vektoru ir minimāls. SPTAG nodrošina divas metodes vektoru telpas organizēšanai: SPTAG-KDT (K-dimensiju koks (kd-koks) Un relatīvās apkārtnes grafiks) un SPTAG-BKT (k-nozīmē koks (k-nozīmē koks un relatīvās apkārtnes grafiks). Pirmā metode prasa mazāk resursu, strādājot ar indeksu, bet otrā parāda augstāku meklēšanas rezultātu precizitāti ļoti lielām vektoru kolekcijām.

Tajā pašā laikā vektoru meklēšana neaprobežojas tikai ar tekstu, un to var attiecināt uz multivides informāciju un attēliem, kā arī sistēmās automātiskai ieteikumu ģenerēšanai. Piemēram, viens no prototipiem, kas balstīts uz PyTorch ietvaru, ieviesa vektoru sistēmu meklēšanai, pamatojoties uz objektu līdzību attēlos, kas izveidota, izmantojot datus no vairākām atsauces kolekcijām ar dzīvnieku, kaķu un suņu attēliem, kas tika pārvērsti vektoru kopās. . Kad meklēšanai tiek saņemts ienākošais attēls, tas, izmantojot mašīnmācīšanās modeli, tiek pārveidots par vektoru, uz kura pamata, izmantojot SPTAG algoritmu, no indeksa tiek atlasīti līdzīgākie vektori un rezultātā tiek atgriezti saistītie attēli.

Avots: opennet.ru

Pievieno komentāru