Microsoft Bing-da ishlatiladigan vektor qidiruv kutubxonasini ochiq manbali

Microsoft kompaniyasi e'lon qilindi mashina o'rganish kutubxonasi manba kodlari SPTAG (Space Partition Tree And Graph) taxminiy algoritmni amalga oshirish bilan eng yaqin qo'shni qidirish. Kutubxona rivojlangan Microsoft Research tadqiqot bo'limida va qidiruv texnologiyalarini rivojlantirish markazida (Microsoft Search Technology Center). Amalda, SPTAG qidiruv so'rovlari kontekstiga asoslangan eng mos natijalarni aniqlash uchun Bing qidiruv tizimi tomonidan qo'llaniladi. Kod C++ da yozilgan va tarqaladi MIT litsenziyasi ostida. Linux va Windows uchun Build qo'llab-quvvatlanadi. Python tili uchun majburiy shart mavjud.

Qidiruv tizimlarida vektorli saqlashdan foydalanish g'oyasi ancha vaqtdan beri mavjud bo'lishiga qaramay, amalda ularni amalga oshirish vektorlar bilan operatsiyalarning yuqori resurs intensivligi va miqyoslilik cheklovlari bilan to'sqinlik qilmoqda. Chuqur mashinani o'rganish usullarini taxminan eng yaqin qo'shni qidirish algoritmlari bilan birlashtirish vektor tizimlarining ishlashi va miqyoslanishini yirik qidiruv tizimlari uchun maqbul darajaga etkazish imkonini berdi. Misol uchun, Bing-da 150 milliard vektordan ortiq vektor indeksi uchun eng mos natijalarni olish vaqti 8 ms ichida.

Kutubxona indeks yaratish va vektor qidiruvlarini tashkil qilish vositalarini, shuningdek, juda katta vektorlar to'plamini qamrab oluvchi taqsimlangan onlayn qidiruv tizimini saqlash uchun vositalar to'plamini o'z ichiga oladi. Taklif qilingan quyidagi modullar: indekslash uchun indeks yaratuvchisi, bir nechta tugunlar klasterida taqsimlangan indeks yordamida qidirish uchun qidiruvchi, tugunlarda ishlov beruvchilarni ishga tushirish uchun server, bir nechta serverlarni bittaga birlashtirish uchun agregator va so'rovlarni yuborish uchun mijoz. Indeksga yangi vektorlarni kiritish va vektorlarni tezda o'chirish qo'llab-quvvatlanadi.

Kutubxona shuni anglatadiki, to'plamda qayta ishlangan va taqdim etilgan ma'lumotlar tegishli vektorlar shaklida formatlangan bo'lib, ular asosida taqqoslash mumkin. Evklid (L2) yoki kosinus masofalar Qidiruv so'rovi ular va asl vektor orasidagi masofa minimal bo'lgan vektorlarni qaytaradi. SPTAG vektor maydonini tashkil qilishning ikkita usulini taqdim etadi: SPTAG-KDT (K o'lchamli daraxt ()kd-daraxt) va nisbiy mahalla grafigi) va SPTAG-BKT (k-daraxtni bildiradi (k-daraxtni bildiradi va nisbiy mahalla grafigi). Birinchi usul indeks bilan ishlashda kamroq resurslarni talab qiladi, ikkinchisi esa vektorlarning juda katta to'plamlari uchun qidiruv natijalarining yuqori aniqligini namoyish etadi.

Shu bilan birga, vektor qidiruvi matn bilan cheklanmaydi va multimedia ma'lumotlari va rasmlariga, shuningdek tavsiyalarni avtomatik ravishda yaratish tizimlarida qo'llanilishi mumkin. Masalan, PyTorch ramkasi asosidagi prototiplardan biri vektorlar to'plamiga aylantirilgan hayvonlar, mushuklar va itlar tasvirlari bilan bir nechta ma'lumot to'plamlari ma'lumotlaridan foydalangan holda yaratilgan tasvirlardagi ob'ektlarning o'xshashligi asosida qidirish uchun vektor tizimini amalga oshirdi. . Qidiruv uchun kiruvchi tasvir qabul qilinganda, u mashinani o'rganish modeli yordamida vektorga aylantiriladi, buning asosida SPTAG algoritmi yordamida indeksdan eng o'xshash vektorlar tanlanadi va natijada tegishli tasvirlar qaytariladi.

Manba: opennet.ru

a Izoh qo'shish