Peluncuran Milvus 2.3: Rilis Penting yang Menawarkan Dukungan untuk GPU, Arm64, CDC, dan Banyak Fitur Lain yang Sangat Diantisipasi
Berita yang menggembirakan! Setelah delapan bulan bekerja keras, kami dengan senang hati mengumumkan perilisan Milvus 2.3, sebuah versi penting yang membawa banyak fitur yang sangat dinanti, termasuk dukungan untuk GPU, Arm64, upsert, perubahan pengambilan data, indeks ScaNN, dan teknologi MMap. Milvus 2.3 juga memperkenalkan peningkatan performa kueri, penyeimbangan dan penjadwalan beban yang lebih kuat, serta pengamatan dan pengoperasian yang lebih baik.
Bergabunglah dengan saya untuk melihat fitur-fitur baru dan peningkatan ini dan pelajari bagaimana Anda dapat mengambil manfaat dari rilis ini.
Dukungan untuk indeks GPU yang menghasilkan 3-10 kali lebih cepat dalam QPS
Indeks GPU adalah fitur yang sangat dinanti-nantikan di komunitas Milvus. Berkat kolaborasi yang hebat dengan para insinyur Nvidia, Milvus 2.3 telah mendukung pengindeksan GPU dengan algoritma RAFT yang kuat yang ditambahkan ke Knowhere, mesin indeks Milvus. Dengan dukungan GPU, Milvus 2.3 lebih dari tiga kali lebih cepat dalam QPS dibandingkan versi sebelumnya yang menggunakan indeks CPU HNSW dan hampir sepuluh kali lebih cepat untuk set data tertentu yang membutuhkan komputasi berat.
Dukungan Arm64 untuk mengakomodasi permintaan pengguna yang terus meningkat
CPU Arm menjadi semakin populer di kalangan penyedia dan pengembang cloud. Untuk memenuhi permintaan yang terus meningkat ini, Milvus kini menyediakan image Docker untuk arsitektur ARM64. Dengan dukungan CPU baru ini, pengguna MacOS dapat membangun aplikasi mereka dengan Milvus dengan lebih mulus.
Peningkatan dukungan untuk pengalaman pengguna yang lebih baik
Milvus 2.3 memperkenalkan peningkatan penting dengan mendukung operasi upsert. Fungsionalitas baru ini memungkinkan pengguna untuk memperbarui atau menyisipkan data dengan lancar dan memberdayakan mereka untuk melakukan kedua operasi tersebut dalam satu permintaan melalui antarmuka Upsert. Fitur ini menyederhanakan manajemen data dan menghadirkan efisiensi.
Catatan:
- Fitur upsert tidak berlaku untuk ID kenaikan otomatis.
- Upsert diimplementasikan sebagai kombinasi dari
delete
daninsert
, yang dapat mengakibatkan beberapa penurunan kinerja. Kami menyarankan untuk menggunakaninsert
jika Anda menggunakan Milvus dalam skenario penulisan yang berat.
Pencarian rentang untuk hasil yang lebih akurat
Milvus 2.3 memungkinkan pengguna untuk menentukan jarak antara vektor input dan vektor yang disimpan dalam Milvus selama kueri. Milvus kemudian mengembalikan semua hasil yang cocok dalam jarak yang ditentukan. Di bawah ini adalah contoh menentukan jarak pencarian menggunakan fitur pencarian jarak.
// add radius and range_filter to params in search_params
search_params = {"params": {"nprobe": 10, "radius": 10, "range_filter" : 20}, "metric_type": "L2"}
res = collection.search(
vectors, "float_vector", search_params, topK,
"int64 > 100", output_fields=["int64", "float"]
)
Dalam contoh ini, pengguna meminta Milvus untuk mengembalikan vektor dalam jarak 10 hingga 20 unit dari vektor input.
Catatan: Metrik jarak yang berbeda memiliki cara yang berbeda dalam menghitung jarak, sehingga menghasilkan rentang nilai dan strategi pengurutan yang berbeda. Oleh karena itu, penting untuk memahami karakteristiknya sebelum menggunakan fitur pencarian jarak.
Indeks ScaNN untuk kecepatan kueri yang lebih cepat
Milvus 2.3 sekarang mendukung indeks ScaNN, sebuah indeks perkiraan tetangga terdekat (ANN) sumber terbuka yang dikembangkan oleh Google. Indeks ScaNN telah menunjukkan kinerja yang unggul dalam berbagai benchmark, mengungguli HNSW sekitar 20% dan sekitar tujuh kali lebih cepat dari IVFFlat. Dengan dukungan untuk indeks ScaNN, Milvus mencapai kecepatan kueri yang jauh lebih cepat dibandingkan dengan versi sebelumnya.
Indeks yang terus berkembang untuk kinerja kueri yang stabil dan lebih baik
Milvus mencakup dua kategori data: data yang diindeks dan data streaming. Milvus dapat menggunakan indeks untuk mencari data yang diindeks dengan cepat, tetapi hanya dapat mencari data streaming baris per baris, yang dapat memengaruhi kinerja. Milvus 2.3 memperkenalkan Growing Index, yang secara otomatis membuat indeks real-time untuk data streaming untuk meningkatkan kinerja kueri.
Iterator untuk pengambilan data dalam batch
Dalam Milvus 2.3, Pymilvus telah memperkenalkan antarmuka iterator yang memungkinkan pengguna untuk mengambil lebih dari 16.384 entitas dalam pencarian atau pencarian rentang. Fitur ini sangat berguna ketika pengguna perlu mengekspor puluhan ribu atau bahkan lebih banyak vektor secara berkelompok.
Dukungan untuk MMap untuk meningkatkan kapasitas
MMap adalah sebuah system call UNIX yang digunakan untuk memetakan file dan objek lain ke dalam memori. Milvus 2.3 mendukung MMap, yang memungkinkan pengguna untuk memuat data ke dalam disk lokal dan memetakannya ke dalam memori, sehingga meningkatkan kapasitas mesin tunggal.
Hasil pengujian kami menunjukkan bahwa dengan menggunakan teknologi MMap, Milvus dapat menggandakan kapasitas datanya sekaligus membatasi penurunan performa hingga 20%. Pendekatan ini secara signifikan mengurangi biaya keseluruhan, sehingga sangat bermanfaat bagi pengguna dengan anggaran terbatas yang tidak keberatan mengorbankan kinerja.
Dukungan CDC untuk ketersediaan sistem yang lebih tinggi
Change Data Capture (CDC) adalah fitur yang umum digunakan dalam sistem basis data yang menangkap dan mereplikasi perubahan data ke tujuan yang telah ditentukan. Dengan fitur CDC, Milvus 2.3 memungkinkan pengguna untuk melakukan sinkronisasi data di seluruh pusat data, mencadangkan data tambahan, dan memigrasi data dengan lancar, sehingga sistem lebih tersedia.
Selain fitur-fitur di atas, Milvus 2.3 memperkenalkan antarmuka penghitungan untuk menghitung jumlah baris data yang tersimpan dalam koleksi secara akurat dalam waktu nyata, mendukung metrik Cosinus untuk mengukur jarak vektor, dan lebih banyak operasi pada array JSON. Untuk fitur-fitur lainnya dan informasi lebih lanjut, lihat catatan rilis Milvus 2.3.
Peningkatan dan perbaikan bug
Selain fitur-fitur baru, Milvus 2.3 mencakup banyak peningkatan dan perbaikan bug untuk versi sebelumnya.
Peningkatan kinerja untuk pemfilteran data
Milvus melakukan pemfilteran skalar sebelum pencarian vektor dalam kueri data hibrida skalar dan vektor untuk mencapai hasil yang lebih akurat. Namun, performa pengindeksan dapat menurun jika pengguna menyaring terlalu banyak data setelah pemfilteran skalar. Di Milvus 2.3, kami mengoptimalkan strategi pemfilteran HNSW untuk mengatasi masalah ini, sehingga menghasilkan kinerja kueri yang lebih baik.
Peningkatan penggunaan CPU multi-core
Perkiraan pencarian terdekat (ANN) adalah tugas intensif secara komputasi yang membutuhkan sumber daya CPU yang sangat besar. Pada rilis sebelumnya, Milvus hanya dapat menggunakan sekitar 70% dari sumber daya CPU multi-core yang tersedia. Namun, dengan rilis terbaru, Milvus telah mengatasi keterbatasan ini dan dapat sepenuhnya memanfaatkan semua sumber daya CPU multi-core yang tersedia, sehingga menghasilkan peningkatan kinerja kueri dan mengurangi pemborosan sumber daya.
QueryNode yang telah direfaktor
QueryNode adalah komponen penting dalam Milvus yang bertanggung jawab untuk pencarian vektor. Namun, pada versi yang lebih lama, QueryNode memiliki status yang kompleks, antrian pesan yang duplikat, struktur kode yang tidak terorganisir, dan pesan kesalahan yang tidak intuitif.
Di Milvus 2.3, kami telah meningkatkan QueryNode dengan memperkenalkan struktur kode tanpa status dan menghapus antrean pesan untuk menghapus data. Pembaruan ini menghasilkan lebih sedikit pemborosan sumber daya dan pencarian vektor yang lebih cepat dan lebih stabil.
Antrian pesan yang disempurnakan berdasarkan NATS
Kami membangun Milvus dengan arsitektur berbasis log, dan pada versi sebelumnya, kami menggunakan Pulsar dan Kafka sebagai perantara log inti. Namun, kombinasi ini menghadapi tiga tantangan utama:
- Tidak stabil dalam situasi multi-topik.
- Kombinasi ini menghabiskan sumber daya saat tidak digunakan dan kesulitan untuk menduplikasi pesan.
- Pulsar dan Kafka sangat terkait dengan ekosistem Java, sehingga komunitas mereka jarang memelihara dan memperbarui Go SDK mereka.
Untuk mengatasi masalah ini, kami telah menggabungkan NATS dan Bookeeper sebagai broker log baru kami untuk Milvus, yang lebih sesuai dengan kebutuhan pengguna.
Penyeimbang beban yang dioptimalkan
Milvus 2.3 telah mengadopsi algoritme penyeimbang beban yang lebih fleksibel berdasarkan beban nyata sistem. Algoritma yang dioptimalkan ini memungkinkan pengguna dengan cepat mendeteksi kegagalan node dan beban yang tidak seimbang dan menyesuaikan penjadwalan yang sesuai. Menurut hasil pengujian kami, Milvus 2.3 dapat mendeteksi kesalahan, beban yang tidak seimbang, status node yang tidak normal, dan kejadian lainnya dalam hitungan detik dan melakukan penyesuaian dengan segera.
Untuk informasi lebih lanjut tentang Milvus 2.3, lihat catatan rilis Milvus 2.3.
Peningkatan alat
Kami juga telah meningkatkan Birdwatcher dan Attu, dua alat yang sangat berharga untuk mengoperasikan dan memelihara Milvus, bersama dengan Milvus 2.3.
Pembaruan Birdwatcher
Kami telah meningkatkan Birdwatcher, alat debug dari Milvus, dengan memperkenalkan berbagai fitur dan peningkatan, termasuk:
- RESTful API untuk integrasi tanpa batas dengan sistem diagnostik lainnya.
- Dukungan perintah PProf untuk memfasilitasi integrasi dengan alat Go pprof.
- Kemampuan analisis penggunaan penyimpanan.
- Fungsionalitas analisis log yang efisien.
- Dukungan untuk melihat dan memodifikasi konfigurasi di etcd.
Pembaruan Attu
Kami telah meluncurkan antarmuka baru untuk Attu, alat administrasi basis data vektor yang lengkap. Antarmuka baru ini memiliki desain yang lebih sederhana dan lebih mudah dipahami.
Untuk lebih jelasnya, lihat catatan rilis Milvus 2.3.
Mari tetap terhubung!
Jika Anda memiliki pertanyaan atau masukan mengenai Milvus, jangan ragu untuk menghubungi kami melalui Twitter atau LinkedIn. Anda juga dapat bergabung dengan saluran Slack kami untuk mengobrol dengan para insinyur dan komunitas kami secara langsung atau lihat jam kerja kami di hari Selasa!
- Dukungan untuk indeks GPU yang menghasilkan 3-10 kali lebih cepat dalam QPS
- Dukungan Arm64 untuk mengakomodasi permintaan pengguna yang terus meningkat
- Peningkatan dukungan untuk pengalaman pengguna yang lebih baik
- Pencarian rentang untuk hasil yang lebih akurat
- Indeks ScaNN untuk kecepatan kueri yang lebih cepat
- Indeks yang terus berkembang untuk kinerja kueri yang stabil dan lebih baik
- Iterator untuk pengambilan data dalam batch
- Dukungan untuk MMap untuk meningkatkan kapasitas
- Dukungan CDC untuk ketersediaan sistem yang lebih tinggi
- Peningkatan dan perbaikan bug
- Peningkatan alat
- Mari tetap terhubung!
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word