Microsoft telah membuka kode untuk perpustakaan pencarian vektor yang digunakan oleh Bing

Microsoft ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° kode sumber perpustakaan pembelajaran mesin SPTAG (Space Partition Tree And Graph) dengan implementasi algoritma perkiraan pencarian tetangga terdekat. Perpustakaan dikembangkan di divisi penelitian Microsoft Research dan pusat pengembangan teknologi pencarian (Microsoft Search Technology Center). Dalam praktiknya, SPTAG digunakan oleh mesin pencari Bing untuk menentukan hasil yang paling relevan berdasarkan konteks permintaan pencarian. Kode ini ditulis dalam C++ dan didistribusikan oleh di bawah lisensi MIT. Build untuk Linux dan Windows didukung. Ada pengikatan untuk bahasa Python.

Terlepas dari kenyataan bahwa gagasan penggunaan penyimpanan vektor di mesin pencari telah beredar cukup lama, dalam praktiknya, implementasinya terhambat oleh tingginya intensitas sumber daya operasi dengan vektor dan keterbatasan skalabilitas. Menggabungkan metode pembelajaran mesin yang mendalam dengan algoritma pencarian tetangga terdekat telah memungkinkan untuk membawa kinerja dan skalabilitas sistem vektor ke tingkat yang dapat diterima untuk mesin pencari besar. Misalnya, di Bing, untuk indeks vektor yang berisi lebih dari 150 miliar vektor, waktu untuk mengambil hasil yang paling relevan adalah dalam waktu 8 ms.

Perpustakaan ini mencakup alat untuk membangun indeks dan mengatur pencarian vektor, serta seperangkat alat untuk memelihara sistem pencarian online terdistribusi yang mencakup koleksi vektor yang sangat besar. Ditawarkan modul berikut: pembuat indeks untuk pengindeksan, pencari untuk mencari menggunakan indeks yang didistribusikan dalam cluster beberapa node, server untuk menjalankan penangan pada node, Agregator untuk menggabungkan beberapa server menjadi satu, dan klien untuk mengirimkan kueri. Didukung penyertaan vektor baru ke dalam indeks dan penghapusan vektor dengan cepat.

Pustaka menyiratkan bahwa data yang diolah dan disajikan dalam koleksi diformat dalam bentuk vektor terkait yang dapat dibandingkan berdasarkan Euclidean (L2) atau kosinus jarak Kueri penelusuran mengembalikan vektor yang jarak antara vektor tersebut dan vektor aslinya minimal. SPTAG menyediakan dua metode untuk mengatur ruang vektor: SPTAG-KDT (pohon dimensi K (kd-pohon) Dan grafik lingkungan relatif) dan SPTAG-BKT (k-means tree (k-berarti pohon dan grafik lingkungan relatif). Metode pertama membutuhkan lebih sedikit sumber daya saat bekerja dengan indeks, dan metode kedua menunjukkan akurasi hasil pencarian yang lebih tinggi untuk kumpulan vektor yang sangat besar.

Pada saat yang sama, pencarian vektor tidak terbatas pada teks dan dapat diterapkan pada informasi multimedia dan gambar, serta dalam sistem untuk menghasilkan rekomendasi secara otomatis. Misalnya, salah satu prototipe berdasarkan kerangka PyTorch menerapkan sistem pencarian vektor berdasarkan kesamaan objek dalam gambar, dibangun menggunakan data dari beberapa koleksi referensi dengan gambar hewan, kucing, dan anjing, yang diubah menjadi kumpulan vektor . Ketika gambar yang masuk diterima untuk dicari, gambar tersebut diubah menggunakan model pembelajaran mesin menjadi vektor, berdasarkan vektor yang paling mirip dipilih dari indeks menggunakan algoritma SPTAG dan gambar terkait dikembalikan sebagai hasilnya.

Sumber: opennet.ru

Tambah komentar