🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
  • Home
  • Blog
  • Pencarian Kemiripan Vektor yang Efisien dalam Alur Kerja Rekomendasi Menggunakan Milvus dengan NVIDIA Merlin

Pencarian Kemiripan Vektor yang Efisien dalam Alur Kerja Rekomendasi Menggunakan Milvus dengan NVIDIA Merlin

  • Engineering
December 15, 2023
Burcin Bozkaya

Artikel ini pertama kali dipublikasikan di kanal Medium NVIDIA Merlin dan disunting serta dimuat ulang di sini dengan izin. Artikel ini ditulis bersama oleh Burcin Bozkaya dan William Hicks dari NVIDIA serta Filip Haltmayer dan Li Liu dari Zilliz.

Pendahuluan

Sistem pemberi rekomendasi modern (Recsys) terdiri dari jalur pelatihan/inferensi yang melibatkan beberapa tahap konsumsi data, prapemrosesan data, pelatihan model, dan penyetelan hiperparameter untuk pengambilan, penyaringan, pemeringkatan, dan pemberian skor pada item yang relevan. Komponen penting dari pipeline sistem pemberi rekomendasi adalah pengambilan atau penemuan hal-hal yang paling relevan bagi pengguna, terutama dengan adanya katalog barang yang besar. Langkah ini biasanya melibatkan pencarian perkiraan tetangga terdekat (ANN ) melalui basis data yang diindeks dari representasi vektor berdimensi rendah (yaitu, penyematan) dari atribut produk dan pengguna yang dibuat dari model pembelajaran mendalam yang dilatih berdasarkan interaksi antara pengguna dan produk/layanan.

NVIDIA Merlin, sebuah kerangka kerja sumber terbuka yang dikembangkan untuk melatih model end-to-end untuk membuat rekomendasi dalam skala apa pun, terintegrasi dengan indeks basis data vektor yang efisien dan kerangka kerja pencarian. Salah satu kerangka kerja yang mendapatkan banyak perhatian baru-baru ini adalah Milvus, sebuah basis data vektor sumber terbuka yang dibuat oleh Zilliz. Ini menawarkan kemampuan indeks dan kueri yang cepat. Milvus baru-baru ini menambahkan dukungan akselerasi GPU yang menggunakan GPU NVIDIA untuk menopang alur kerja AI. Dukungan akselerasi GPU adalah berita bagus karena pustaka pencarian vektor yang dipercepat memungkinkan kueri konkuren yang cepat, yang berdampak positif pada persyaratan latensi dalam sistem pemberi rekomendasi saat ini, di mana pengembang mengharapkan banyak permintaan konkuren. Milvus memiliki lebih dari 5 juta tarikan docker, ~23 ribu bintang di GitHub (per September 2023), lebih dari 5.000 pelanggan Enterprise, dan merupakan komponen inti dari banyak aplikasi (lihat contoh kasus).

Blog ini mendemonstrasikan bagaimana Milvus bekerja dengan kerangka kerja Merlin Recsys pada saat pelatihan dan penarikan kesimpulan. Kami menunjukkan bagaimana Milvus melengkapi Merlin pada tahap pengambilan item dengan pencarian penyematan vektor top-k yang sangat efisien dan bagaimana Milvus dapat digunakan dengan NVIDIA Triton Inference Server (TIS) pada waktu inferensi (lihat Gambar 1). Hasil benchmark kami menunjukkan peningkatan kecepatan 37x hingga 91x dengan Milvus yang diakselerasi GPU yang menggunakan NVIDIA RAFT dengan penyematan vektor yang dihasilkan oleh Merlin Models. Kode yang kami gunakan untuk menunjukkan integrasi Merlin-Milvus dan hasil benchmark yang terperinci, bersama dengan library yang memfasilitasi studi benchmark kami, tersedia di sini.

Gambar 1. Sistem rekomendasi multistage dengan kerangka kerja Milvus yang berkontribusi pada tahap pengambilan. Sumber untuk gambar multistage asli: posting blog ini.

Tantangan yang dihadapi pemberi rekomendasi

Mengingat sifat multistage dari recomendator dan ketersediaan berbagai komponen dan library yang mereka integrasikan, tantangan yang signifikan adalah mengintegrasikan semua komponen dengan mulus dalam sebuah pipeline end-to-end. Kami bertujuan untuk menunjukkan bahwa integrasi dapat dilakukan dengan sedikit usaha dalam buku catatan contoh kami.

Tantangan lain dari alur kerja rekomendasi adalah mempercepat bagian pipeline tertentu. Meskipun diketahui memainkan peran besar dalam melatih jaringan saraf yang besar, GPU hanya merupakan tambahan terbaru untuk database vektor dan pencarian ANN. Dengan meningkatnya ukuran inventaris produk e-commerce atau basis data media streaming dan jumlah pengguna yang menggunakan layanan ini, CPU harus memberikan kinerja yang diperlukan untuk melayani jutaan pengguna dalam alur kerja Recsys yang berkinerja tinggi. Akselerasi GPU di bagian pipeline lainnya menjadi penting untuk mengatasi tantangan ini. Solusi dalam blog ini menjawab tantangan ini dengan menunjukkan bahwa pencarian ANN efisien ketika menggunakan GPU.

Tumpukan teknologi untuk solusi

Mari kita mulai dengan meninjau beberapa hal mendasar yang diperlukan untuk melakukan pekerjaan kita.

  • NVIDIA Merlin: pustaka sumber terbuka dengan API tingkat tinggi yang mempercepat rekomendasi pada GPU NVIDIA.

  • NVTabular: untuk pra-pemrosesan data tabular input dan rekayasa fitur.

  • Merlin Models: untuk melatih model pembelajaran mendalam, dan untuk mempelajari, dalam hal ini, vektor penyematan pengguna dan item dari data interaksi pengguna.

  • Sistem Merlin: untuk menggabungkan model rekomendasi berbasis TensorFlow dengan elemen-elemen lain (mis. penyimpanan fitur, pencarian ANN dengan Milvus) untuk disajikan dengan TIS.

  • Triton Inference Server: untuk tahap inferensi di mana vektor fitur pengguna dilewatkan, dan rekomendasi produk dihasilkan.

  • Kontainerisasi: semua hal di atas tersedia melalui kontainer yang disediakan NVIDIA di katalog NGC. Kami menggunakan kontainer Merlin TensorFlow 23.06 yang tersedia di sini.

  • Milvus 2.3: untuk melakukan pengindeksan dan query vektor yang diakselerasi oleh GPU.

  • Milvus 2.2.11: sama seperti di atas, tetapi untuk melakukannya di CPU.

  • Pymilvus SDK: untuk menghubungkan ke server Milvus, membuat indeks basis data vektor, dan menjalankan kueri melalui antarmuka Python.

  • Feast: untuk menyimpan dan mengambil atribut pengguna dan item dalam penyimpanan fitur (open source) sebagai bagian dari pipeline RecSys end-to-end.

Beberapa pustaka dan kerangka kerja yang mendasari juga digunakan di bawah kap mesin. Sebagai contoh, Merlin bergantung pada pustaka NVIDIA lainnya, seperti cuDF dan Dask, keduanya tersedia di bawah RAPIDS cuDF. Demikian juga, Milvus bergantung pada NVIDIA RAFT untuk primitif pada akselerasi GPU dan pustaka yang dimodifikasi seperti HNSW dan FAISS untuk pencarian.

Memahami basis data vektor dan Milvus

Perkiraan tetangga terdekat (ANN ) adalah fungsionalitas yang tidak dapat ditangani oleh basis data relasional. Database relasional dirancang untuk menangani data tabular dengan struktur yang telah ditentukan dan nilai yang dapat dibandingkan secara langsung. Indeks basis data relasional mengandalkan hal ini untuk membandingkan data dan membuat struktur yang memanfaatkan pengetahuan tentang apakah setiap nilai kurang dari atau lebih besar dari nilai lainnya. Vektor yang disematkan tidak dapat secara langsung dibandingkan satu sama lain dengan cara ini, karena kita perlu mengetahui apa yang diwakili oleh setiap nilai dalam vektor. Mereka tidak dapat mengatakan apakah satu vektor harus lebih kecil dari vektor lainnya. Satu-satunya hal yang dapat kita lakukan adalah menghitung jarak antara dua vektor. Jika jarak antara dua vektor kecil, kita dapat mengasumsikan bahwa fitur yang mereka wakili serupa, dan jika besar, kita dapat mengasumsikan bahwa data yang mereka wakili lebih berbeda. Namun, indeks yang efisien ini memiliki kekurangan; menghitung jarak antara dua vektor secara komputasi sangat mahal, dan indeks vektor tidak mudah beradaptasi dan terkadang tidak dapat dimodifikasi. Karena dua keterbatasan ini, mengintegrasikan indeks-indeks ini menjadi lebih kompleks dalam basis data relasional, dan karena itulah diperlukan basis data vektor yang dibangun khusus.

Milvus diciptakan untuk memecahkan masalah yang dihadapi database relasional dengan vektor dan dirancang dari awal untuk menangani vektor penyematan dan indeksnya dalam skala besar. Untuk memenuhi lencana cloud-native, Milvus memisahkan komputasi dan penyimpanan serta tugas-tugas komputasi yang berbeda - kueri, penguraian data, dan pengindeksan. Pengguna dapat menskalakan setiap bagian basis data untuk menangani kasus penggunaan lain, baik yang berat untuk memasukkan data atau berat untuk pencarian. Jika ada banyak permintaan penyisipan, pengguna dapat menskalakan node indeks secara horizontal dan vertikal untuk menangani pemasukan data. Demikian juga, jika tidak ada data yang dimasukkan, tetapi ada banyak pencarian, pengguna dapat mengurangi node indeks dan sebagai gantinya meningkatkan node kueri untuk mendapatkan hasil yang lebih banyak. Desain sistem ini (lihat Gambar 2) mengharuskan kami untuk berpikir dengan pola pikir komputasi paralel, sehingga menghasilkan sistem yang dioptimalkan untuk komputasi dengan banyak pintu yang terbuka untuk pengoptimalan lebih lanjut.

Gambar 2. Desain sistem Milvus

Milvus juga menggunakan banyak pustaka pengindeksan yang canggih untuk memberi pengguna sebanyak mungkin penyesuaian untuk sistem mereka. Ini meningkatkannya dengan menambahkan kemampuan untuk menangani operasi CRUD, streaming data, dan pemfilteran. Selanjutnya, kita akan membahas bagaimana indeks ini berbeda dan apa pro dan kontra dari masing-masing indeks tersebut.

Contoh solusi: integrasi Milvus dan Merlin

Contoh solusi yang kami sajikan di sini menunjukkan integrasi Milvus dengan Merlin pada tahap pengambilan item (ketika k item yang paling relevan diambil melalui pencarian ANN). Kami menggunakan dataset kehidupan nyata dari tantangan RecSys, yang dijelaskan di bawah ini. Kami melatih model pembelajaran mendalam Two-Tower yang mempelajari penyematan vektor untuk pengguna dan item. Bagian ini juga menyediakan cetak biru dari pekerjaan pembandingan kami, termasuk metrik yang kami kumpulkan dan rentang parameter yang kami gunakan.

Pendekatan kami meliputi:

  • Konsumsi dan prapemrosesan data

  • Pelatihan model pembelajaran mendalam Dua Menara

  • Pembuatan indeks Milvus

  • Pencarian kesamaan Milvus

Kami menjelaskan secara singkat setiap langkah dan merujuk pembaca ke buku catatan kami untuk detailnya.

Dataset

YOOCHOOSE GmbH menyediakan dataset yang kami gunakan dalam studi integrasi dan tolok ukur ini untuk tantangan RecSys 2015 dan tersedia di Kaggle. Dataset ini berisi peristiwa klik/pembelian pengguna dari peritel online Eropa dengan atribut seperti ID sesi, stempel waktu, ID item yang terkait dengan klik/pembelian, dan kategori item, yang tersedia di file yoochoose-clicks.dat. Sesi-sesi tersebut bersifat independen, dan tidak ada petunjuk tentang pengguna yang kembali, jadi kami memperlakukan setiap sesi sebagai milik pengguna yang berbeda. Dataset ini memiliki 9.249.729 sesi (pengguna) unik dan 52.739 item unik.

Pemasukan dan prapemrosesan data

Alat yang kami gunakan untuk prapemrosesan data adalah NVTabular, sebuah komponen rekayasa fitur dan prapemrosesan yang dipercepat dengan GPU dan sangat skalabel dari Merlin. Kami menggunakan NVTabular untuk membaca data ke dalam memori GPU, mengatur ulang fitur seperlunya, mengekspor ke file parket, dan membuat pembagian validasi pelatihan untuk pelatihan. Hal ini menghasilkan 7.305.761 pengguna unik dan 49.008 item unik untuk dilatih. Kami juga mengkategorikan setiap kolom dan nilainya ke dalam nilai bilangan bulat. Dataset sekarang siap untuk dilatih dengan model Dua Menara.

Pelatihan model

Kami menggunakan model pembelajaran mendalam Two-Tower untuk melatih dan menghasilkan penyematan pengguna dan item, yang kemudian digunakan dalam pengindeksan vektor dan kueri. Setelah melatih model, kita dapat mengekstrak sematan pengguna dan item yang telah dipelajari.

Dua langkah berikut ini bersifat opsional: model DLRM yang dilatih untuk memberi peringkat pada item yang diambil untuk rekomendasi dan penyimpanan fitur yang digunakan (dalam kasus ini, Feast) untuk menyimpan dan mengambil fitur pengguna dan item. Kami menyertakannya untuk kelengkapan alur kerja multi-tahap.

Terakhir, kami mengekspor penyematan pengguna dan item ke file parket, yang nantinya dapat dimuat ulang untuk membuat indeks vektor Milvus.

Membangun dan menanyakan indeks Milvus

Milvus memfasilitasi pengindeksan vektor dan pencarian kemiripan melalui sebuah "server" yang dijalankan pada mesin inferensi. Pada buku catatan #2, kami menyiapkannya dengan melakukan pip-instalasi server Milvus dan Pymilvus, lalu memulai server dengan port pendengar default. Selanjutnya, kami mendemonstrasikan pembuatan indeks sederhana (IVF_FLAT) dan melakukan kueri terhadap indeks tersebut dengan menggunakan fungsi setup_milvus dan query_milvus.

Pembandingan

Kami telah merancang dua benchmark untuk mendemonstrasikan kasus penggunaan pustaka pengindeksan/pencarian vektor yang cepat dan efisien seperti Milvus.

  1. Menggunakan Milvus untuk membangun indeks vektor dengan dua set sematan yang kami hasilkan: 1) penyematan pengguna untuk 7,3 juta pengguna unik, dibagi menjadi 85% set latihan (untuk pengindeksan) dan 15% set uji (untuk penelusuran), dan 2) penyematan item untuk 49 ribu produk (dengan pembagian 50-50 latihan-pengujian). Tolok ukur ini dilakukan secara independen untuk setiap set data vektor, dan hasilnya dilaporkan secara terpisah.

  2. Menggunakan Milvus untuk membangun indeks vektor untuk 49 ribu dataset penyematan item dan menanyakan 7,3 juta pengguna unik terhadap indeks ini untuk pencarian kemiripan.

Dalam benchmark ini, kami menggunakan algoritme pengindeksan IVFPQ dan HNSW yang dijalankan di GPU dan CPU, serta berbagai kombinasi parameter. Detailnya tersedia di sini.

Pertukaran kualitas pencarian dan throughput merupakan pertimbangan kinerja yang penting, terutama dalam lingkungan produksi. Milvus memungkinkan kontrol penuh atas parameter pengindeksan untuk mengeksplorasi tradeoff ini untuk kasus penggunaan tertentu untuk mencapai hasil pencarian yang lebih baik dengan ground truth. Hal ini dapat berarti peningkatan biaya komputasi dalam bentuk penurunan tingkat throughput atau kueri per detik (QPS). Kami mengukur kualitas pencarian ANN dengan metrik recall dan memberikan kurva QPS-recall yang menunjukkan tradeoff. Seseorang kemudian dapat memutuskan tingkat kualitas pencarian yang dapat diterima mengingat sumber daya komputasi atau persyaratan latensi/throughput dari kasus bisnis.

Selain itu, perhatikan juga ukuran batch kueri (nq) yang digunakan dalam tolok ukur kami. Ini berguna dalam alur kerja di mana beberapa permintaan simultan dikirim ke inferensi (misalnya, rekomendasi offline yang diminta dan dikirim ke daftar penerima email atau rekomendasi online yang dibuat dengan menggabungkan permintaan bersamaan yang masuk dan memprosesnya sekaligus). Tergantung dari kasus penggunaannya, TIS juga bisa membantu memproses permintaan-permintaan ini secara berkelompok.

Hasil

Kami sekarang melaporkan hasil untuk tiga set tolok ukur di CPU dan GPU, dengan menggunakan tipe indeks HNSW (hanya CPU) dan IVF_PQ (CPU dan GPU) yang diimplementasikan oleh Milvus.

Dengan dataset terkecil ini, setiap proses untuk kombinasi parameter tertentu mengambil 50% vektor item sebagai vektor kueri dan mencari 100 vektor yang paling mirip dari yang lainnya. HNSW dan IVF_PQ menghasilkan recall yang tinggi dengan pengaturan parameter yang diuji, masing-masing dalam kisaran 0.958-1.0 dan 0.665-0.997. Hasil ini menunjukkan bahwa HNSW memiliki kinerja yang lebih baik dalam hal recall, tetapi IVF_PQ dengan pengaturan nlist yang kecil menghasilkan recall yang sangat sebanding. Kami juga harus mencatat bahwa nilai recall dapat sangat bervariasi tergantung pada parameter pengindeksan dan kueri. Nilai-nilai yang kami laporkan telah diperoleh setelah percobaan awal dengan rentang parameter umum dan memperbesar lebih jauh ke dalam subset tertentu.

Total waktu untuk mengeksekusi semua kueri pada CPU dengan HNSW untuk kombinasi parameter yang diberikan berkisar antara 5,22 dan 5,33 detik (lebih cepat dengan semakin besarnya m, relatif tidak berubah dengan ef) dan dengan IVF_PQ antara 13,67 dan 14,67 detik (lebih lambat dengan semakin besarnya nlist dan nprobe). Akselerasi GPU memang memiliki efek yang nyata, seperti yang terlihat pada Gambar 3.

Gambar 3 menunjukkan trade-off recall-throughput pada semua proses yang diselesaikan pada CPU dan GPU dengan dataset kecil menggunakan IVF_PQ. Kami menemukan bahwa GPU memberikan peningkatan kecepatan sebesar 4x hingga 15x pada semua kombinasi parameter yang diuji (peningkatan kecepatan yang lebih besar seiring dengan bertambahnya nprobe). Hal ini dihitung dengan mengambil rasio QPS dari GPU dibandingkan QPS dari CPU yang dijalankan untuk setiap kombinasi parameter. Secara keseluruhan, set ini memberikan sedikit tantangan bagi CPU atau GPU dan menunjukkan prospek untuk peningkatan kecepatan lebih lanjut dengan set data yang lebih besar, seperti yang akan dibahas di bawah ini.

Gambar 3. Kecepatan GPU dengan algoritma Milvus IVF_PQ yang berjalan pada GPU NVIDIA A100 (pencarian kemiripan item-item)

Dengan dataset kedua yang jauh lebih besar (7,3 juta pengguna), kami menyisihkan 85% (~6,2 juta) vektor sebagai "latih" (kumpulan vektor yang akan diindeks), dan sisanya 15% (~1,1 juta) sebagai "uji" atau kumpulan vektor kueri. HNSW dan IVF_PQ berkinerja sangat baik dalam hal ini, dengan nilai recall masing-masing 0.884-1.0 dan 0.922-0.999. Akan tetapi, kedua metode ini secara komputasi jauh lebih berat, terutama dengan IVF_PQ pada CPU. Total waktu untuk mengeksekusi semua kueri pada CPU dengan HNSW berkisar antara 279,89 hingga 295,56 detik dan dengan IVF_PQ dari 3082,67 hingga 10932,33 detik. Perhatikan bahwa waktu kueri ini bersifat kumulatif untuk 1,1 juta vektor yang di-query, sehingga dapat dikatakan bahwa kueri tunggal terhadap indeks masih sangat cepat.

Namun, kueri berbasis CPU mungkin tidak dapat digunakan jika server inferensi mengharapkan ribuan permintaan bersamaan untuk menjalankan kueri terhadap inventaris jutaan item.

GPU A100 memberikan kecepatan yang luar biasa sebesar 37x hingga 91x (rata-rata 76,1x) di semua kombinasi parameter dengan IVF_PQ dalam hal throughput (QPS), seperti yang ditunjukkan pada Gambar 4. Hal ini konsisten dengan apa yang kami amati dengan dataset kecil, yang menunjukkan bahwa performa GPU berskala cukup baik dengan menggunakan Milvus dengan jutaan vektor penyisipan.

Gambar 4. Kecepatan GPU dengan algoritma Milvus IVF_PQ yang berjalan pada GPU NVIDIA A100 (pencarian kemiripan antar-pengguna)

Gambar 5 berikut ini menunjukkan tradeoff recall-QPS untuk semua kombinasi parameter yang diuji pada CPU dan GPU dengan IVF_PQ. Setiap titik yang ditetapkan (atas untuk GPU, bawah untuk CPU) pada grafik ini menggambarkan pengorbanan yang dihadapi ketika mengubah parameter pengindeksan vektor/query untuk mencapai recall yang lebih tinggi dengan mengorbankan throughput yang lebih rendah. Perhatikan hilangnya QPS yang cukup besar dalam kasus GPU saat seseorang mencoba mencapai tingkat recall yang lebih tinggi.

Gambar 5. Tradeoff Recall-Throughput untuk semua kombinasi parameter yang diuji pada CPU dan GPU dengan IVF_PQ (pengguna vs. pengguna)

Terakhir, kami mempertimbangkan kasus penggunaan realistis lainnya di mana vektor pengguna ditanyakan terhadap vektor item (seperti yang ditunjukkan pada Notebook 01 di atas). Dalam kasus ini, 49 ribu vektor item diindeks, dan 7,3 juta vektor pengguna masing-masing ditanyakan untuk 100 item yang paling mirip.

Di sinilah hal yang menarik karena melakukan query 7,3 juta dalam kelompok 1000 terhadap indeks 49 ribu item akan memakan waktu CPU baik untuk HNSW maupun IVF_PQ. GPU tampaknya menangani kasus ini dengan lebih baik (lihat Gambar 6). Tingkat akurasi tertinggi oleh IVF_PQ pada CPU saat nlist = 100 dihitung dalam waktu rata-rata sekitar 86 menit, tetapi bervariasi secara signifikan seiring dengan meningkatnya nilai nprobe (51 menit saat nprobe = 5 vs 128 menit saat nprobe = 20). GPU NVIDIA A100 mempercepat kinerja secara signifikan dengan faktor 4x hingga 17x (peningkatan yang lebih tinggi saat nprobe semakin besar). Ingatlah bahwa algoritma IVF_PQ, melalui teknik kuantisasi, juga mengurangi jejak memori dan memberikan solusi pencarian ANN yang layak secara komputasi yang dikombinasikan dengan akselerasi GPU.

Gambar 6. Percepatan GPU dengan algoritma Milvus IVF_PQ yang berjalan pada GPU NVIDIA A100 (pencarian kemiripan item pengguna)

Serupa dengan Gambar 5, trade-off recall-throughput ditunjukkan pada Gambar 7 untuk semua kombinasi parameter yang diuji dengan IVF_PQ. Di sini, kita masih dapat melihat bagaimana kita mungkin perlu sedikit mengorbankan beberapa akurasi pada pencarian ANN demi meningkatkan throughput, meskipun perbedaannya tidak terlalu mencolok, terutama dalam kasus GPU. Hal ini menunjukkan bahwa kita dapat mengharapkan tingkat kinerja komputasi yang relatif tinggi secara konsisten dengan GPU sambil tetap mencapai recall yang tinggi.

Gambar 7. Tradeoff Recall-Throughput untuk semua kombinasi parameter yang diuji pada CPU dan GPU dengan IVF_PQ (pengguna vs item)

Kesimpulan

Kami dengan senang hati akan membagikan beberapa kesimpulan jika Anda sudah sampai sejauh ini. Kami ingin mengingatkan Anda bahwa kompleksitas dan sifat multi-tahap Recsys modern membutuhkan kinerja dan efisiensi di setiap langkah. Semoga blog ini telah memberikan Anda alasan kuat untuk mempertimbangkan penggunaan dua fitur penting dalam pipeline RecSys Anda:

  • Perpustakaan Sistem Merlin NVIDIA Merlin memungkinkan Anda untuk dengan mudah menyambungkan Milvus, mesin pencari vektor yang diakselerasi oleh GPU yang efisien.

  • Gunakan GPU untuk mempercepat komputasi pengindeksan basis data vektor, dan pencarian ANN dengan teknologi seperti RAPIDS RAFT.

Temuan ini menunjukkan bahwa integrasi Merlin-Milvus yang disajikan memiliki kinerja yang tinggi dan jauh lebih tidak rumit daripada opsi lain untuk pelatihan dan inferensi. Selain itu, kedua kerangka kerja ini secara aktif dikembangkan, dan banyak fitur baru (misalnya, indeks basis data vektor yang diakselerasi dengan GPU oleh Milvus) ditambahkan dalam setiap rilis. Fakta bahwa pencarian kemiripan vektor adalah komponen penting dalam berbagai alur kerja, seperti visi komputer, pemodelan bahasa yang besar, dan sistem pemberi rekomendasi, membuat upaya ini menjadi semakin berharga.

Sebagai penutup, kami ingin mengucapkan terima kasih kepada semua pihak dari Zilliz/Milvus dan Merlin serta tim RAFT yang telah berkontribusi dalam upaya menghasilkan karya ini dan posting blog. Kami menantikan masukan dari Anda, jika Anda memiliki kesempatan untuk mengimplementasikan Merlin dan Milvus di recsys Anda atau alur kerja lainnya.

Like the article? Spread the word

Terus Baca