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

milvus-logo
LFAI
  • Home
  • Blog
  • Kisah SmartNews - dari Pengguna Milvus menjadi Kontributor Aktif

Kisah SmartNews - dari Pengguna Milvus menjadi Kontributor Aktif

  • Scenarios
January 20, 2022
Milvus

Artikel ini diterjemahkan oleh Angela Ni.

Informasi ada di mana-mana dalam kehidupan kita. Meta (sebelumnya dikenal sebagai Facebook), Instagram, Twitter, dan platform media sosial lainnya membuat aliran informasi menjadi semakin banyak. Oleh karena itu, mesin yang menangani aliran informasi seperti itu telah menjadi hal yang wajib ada di sebagian besar arsitektur sistem. Namun, sebagai pengguna platform media sosial dan aplikasi yang relevan, saya yakin Anda pasti pernah merasa terganggu dengan duplikasi artikel, berita, meme, dan lainnya. Paparan terhadap konten duplikat menghambat proses pencarian informasi dan menyebabkan pengalaman pengguna yang buruk.

Untuk produk yang berurusan dengan aliran informasi, merupakan prioritas tinggi bagi para pengembang untuk menemukan pemroses data yang fleksibel yang dapat diintegrasikan dengan mulus ke dalam arsitektur sistem untuk menduplikasi berita atau iklan yang sama.

SmartNews, yang bernilai 2 miliar dolar AS, adalah perusahaan aplikasi berita yang paling bernilai tinggi di AS. Secara nyata, perusahaan ini dulunya adalah pengguna Milvus, sebuah basis data vektor sumber terbuka, tetapi kemudian berubah menjadi kontributor aktif untuk proyek Milvus.

Artikel ini berbagi cerita tentang SmartNews dan menjelaskan mengapa mereka memutuskan untuk memberikan kontribusi pada proyek Milvus.

Gambaran umum tentang SmartNews

SmartNews, yang didirikan pada tahun 2012, berkantor pusat di Tokyo, Jepang. Aplikasi berita yang dikembangkan oleh SmartNews selalu menduduki peringkat teratas di pasar Jepang. SmartNews adalah aplikasi berita dengan pertumbuhan tercepat dan juga memiliki viskositas pengguna yang tinggi di pasar Amerika Serikat. Menurut statistik dari APP Annie, durasi sesi rata-rata bulanan SmartNews menduduki peringkat pertama di antara semua aplikasi berita pada akhir Juli 2021, lebih besar dari akumulasi durasi sesi AppleNews dan Google News.

Dengan pertumbuhan basis pengguna dan viskositas yang cepat, SmartNews harus menghadapi lebih banyak tantangan dalam hal mekanisme rekomendasi dan algoritme AI. Tantangan tersebut termasuk memanfaatkan fitur diskrit yang masif dalam machine learning (ML) berskala besar, mempercepat kueri data tak terstruktur dengan pencarian kemiripan vektor, dan masih banyak lagi.

Pada awal tahun 2021, tim algoritma iklan dinamis di SmartNews mengirimkan permintaan kepada tim infrastruktur AI bahwa fungsi penarikan dan kueri iklan perlu dioptimalkan. Setelah dua bulan penelitian, insinyur infrastruktur AI, Shu, memutuskan untuk menggunakan Milvus, database vektor sumber terbuka yang mendukung banyak indeks dan metrik kesamaan serta pembaruan data online. Milvus dipercaya oleh lebih dari seribu organisasi di seluruh dunia.

Basis data vektor sumber terbuka Milvus diadopsi dalam sistem Iklan SmartNews untuk mencocokkan dan merekomendasikan iklan dinamis dari kumpulan data berskala 10 juta kepada para penggunanya. Dengan demikian, SmartNews dapat membuat hubungan pemetaan antara dua dataset yang sebelumnya tidak dapat dicocokkan - data pengguna dan data iklan. Pada kuartal kedua 2021, Shu berhasil menerapkan Milvus 1.0 di Kubernetes. Pelajari lebih lanjut tentang cara menggunakan Milvus.

img img

Setelah penerapan Milvus 1.0 berhasil, proyek pertama yang menggunakan Milvus adalah proyek penarikan iklan yang diprakarsai oleh tim Iklan di SmartNews. Pada tahap awal, dataset iklan berada pada skala jutaan. Sementara itu, latensi P99 dikontrol secara ketat dalam waktu kurang dari 10 milidetik.

Pada bulan Juni 2021, Shu dan rekan-rekannya di tim algoritme menerapkan Milvus ke lebih banyak skenario bisnis dan mencoba agregasi data serta pembaruan data/indeks online secara real time.

Saat ini, Milvus, basis data vektor sumber terbuka telah digunakan dalam berbagai skenario bisnis di SmartNews, termasuk rekomendasi iklan.

Dari pengguna menjadi kontributor aktif

Ketika mengintegrasikan Milvus ke dalam arsitektur produk Smartnews, Shu dan pengembang lainnya mengajukan permintaan fungsi-fungsi seperti memuat ulang, TTL (time-to-live) item, pembaruan/penggantian item, dan banyak lagi. Fungsi-fungsi ini juga diinginkan oleh banyak pengguna di komunitas Milvus. Oleh karena itu, Dennis Zhao, kepala tim infrastruktur AI di SmartNews memutuskan untuk mengembangkan dan menyumbangkan fungsi hot reload ke komunitas. Dennis percaya bahwa "Tim SmartNews telah mendapatkan manfaat dari komunitas Milvus, oleh karena itu, kami lebih dari bersedia untuk berkontribusi jika kami memiliki sesuatu untuk dibagikan kepada komunitas."

Pemuatan ulang data mendukung pengeditan kode saat menjalankan kode. Dengan bantuan data reload, para pengembang tidak perlu lagi berhenti di breakpoint atau memulai ulang aplikasi. Sebaliknya, mereka dapat mengedit kode secara langsung dan melihat hasilnya secara real time.

Pada akhir Juli lalu, Yusup, engineer di SmartNews mengusulkan sebuah ide untuk menggunakan collection alias untuk melakukan hot reload.

Membuat alias koleksi mengacu pada menentukan nama alias untuk sebuah koleksi. Sebuah koleksi dapat memiliki beberapa alias. Namun, sebuah alias berhubungan dengan maksimal satu koleksi. Secara sederhana, analogikan sebuah koleksi dengan sebuah loker. Loker, seperti halnya koleksi, memiliki nomor dan posisinya sendiri, yang tidak akan berubah. Namun demikian, Anda selalu dapat memasukkan dan mengeluarkan benda yang berbeda dari loker. Demikian pula, nama koleksi adalah tetap, tetapi data dalam koleksi bersifat dinamis. Anda selalu dapat menyisipkan atau menghapus vektor dalam koleksi, karena penghapusan data didukung dalam versi Milvus pra-GA.

Dalam kasus bisnis iklan SmartNews, hampir 100 juta vektor disisipkan atau diperbarui saat vektor iklan dinamis baru dihasilkan. Ada beberapa solusi untuk hal ini:

  • Solusi 1: hapus data lama terlebih dahulu dan masukkan data baru.
  • Solusi 2: membuat koleksi baru untuk data baru.
  • Solusi 3: gunakan alias koleksi.

Untuk solusi 1, salah satu kekurangan yang paling jelas adalah bahwa hal ini sangat memakan waktu, terutama ketika kumpulan data yang akan diperbarui sangat besar. Biasanya diperlukan waktu berjam-jam untuk memperbarui dataset dalam skala 100 juta.

Sedangkan untuk solusi 2, masalahnya adalah bahwa koleksi baru tidak segera tersedia untuk pencarian. Dengan kata lain, koleksi tidak dapat dicari saat dimuat. Ditambah lagi, Milvus tidak mengizinkan dua koleksi menggunakan nama koleksi yang sama. Beralih ke koleksi baru akan selalu mengharuskan pengguna untuk mengubah kode sisi klien secara manual. Dengan kata lain, pengguna harus merevisi nilai parameter collection_name setiap kali mereka perlu berpindah antar koleksi.

Solusi 3 adalah solusi terbaik. Anda hanya perlu memasukkan data baru ke dalam koleksi baru dan menggunakan alias koleksi. Dengan demikian, Anda hanya perlu menukar alias koleksi setiap kali Anda perlu berpindah koleksi untuk melakukan pencarian. Anda tidak perlu upaya ekstra untuk merevisi kode. Solusi ini menyelamatkan Anda dari masalah yang disebutkan dalam dua solusi sebelumnya.

Yusup memulai dari permintaan ini dan membantu seluruh tim SmartNews memahami arsitektur Milvus. Setelah satu setengah bulan, proyek Milvus menerima PR tentang hot reload dari Yusup. Dan kemudian, fungsi ini secara resmi tersedia bersamaan dengan rilis Milvus 2.0.0-RC7.

Saat ini, tim infrastruktur AI sedang memimpin untuk menerapkan Milvus 2.0 dan memigrasi semua data secara bertahap dari Milvus 1.0 ke 2.0.

img_collection alias img_collection alias

Dukungan untuk collection alias dapat sangat meningkatkan pengalaman pengguna, terutama bagi perusahaan-perusahaan Internet besar dengan volume permintaan pengguna yang besar. Chenglong Li, insinyur data dari komunitas Milvus, yang membantu membangun jembatan antara Milvus dan Smartnews, mengatakan, "Fungsi collection alias muncul dari permintaan bisnis nyata dari SmartNews, pengguna Milvus. Dan SmartNews menyumbangkan kodenya kepada komunitas Milvus. Tindakan timbal balik ini merupakan contoh yang bagus dari semangat open-source: dari komunitas dan untuk komunitas. Kami berharap dapat melihat lebih banyak lagi kontributor seperti SmartNews dan bersama-sama membangun komunitas Milvus yang lebih makmur."

"Saat ini, sebagian dari bisnis periklanan telah mengadopsi Milvus sebagai basis data vektor offline. Perilisan resmi Mivus 2.0 semakin dekat, dan kami berharap dapat menggunakan Milvus untuk membangun sistem yang lebih handal dan menyediakan layanan real-time untuk lebih banyak skenario bisnis." kata Dennis.

Pembaruan: Milvus 2.0 kini telah tersedia untuk umum! Pelajari lebih lanjut

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started

Like the article? Spread the word

Terus Baca