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

milvus-logo
LFAI
  • Home
  • Blog
  • Apa yang Ada di Dalam Milvus 1.0?

Apa yang Ada di Dalam Milvus 1.0?

  • Engineering
April 29, 2021
milvus

Milvus.jpeg Milvus.jpeg

Milvus adalah basis data vektor sumber terbuka yang dirancang untuk mengelola jutaan, miliaran, atau bahkan triliunan set data vektor. Milvus memiliki aplikasi yang luas yang mencakup penemuan obat baru, visi komputer, pengemudian otonom, mesin rekomendasi, chatbot, dan banyak lagi.

Pada bulan Maret 2021, Zilliz, perusahaan di balik Milvus, merilis versi dukungan jangka panjang pertama platform ini - Milvus v1.0. Setelah berbulan-bulan pengujian ekstensif, versi stabil dan siap produksi dari basis data vektor paling populer di dunia ini siap untuk digunakan. Artikel blog ini membahas beberapa dasar-dasar Milvus serta fitur-fitur utama v1.0.


Distribusi Milvus

Milvus tersedia dalam distribusi khusus CPU dan distribusi yang mendukung GPU. Distribusi yang pertama hanya mengandalkan CPU untuk pembuatan indeks dan pencarian; distribusi yang kedua memungkinkan pencarian hibrida CPU dan GPU serta pembuatan indeks yang semakin mempercepat Milvus. Sebagai contoh, dengan menggunakan distribusi hibrida, CPU dapat digunakan untuk pencarian dan GPU untuk pembuatan indeks, yang selanjutnya meningkatkan efisiensi kueri.

Kedua distribusi Milvus tersedia di Docker. Anda dapat mengkompilasi Milvus dari Docker (jika sistem operasi Anda mendukungnya) atau mengkompilasi Milvus dari kode sumber di Linux (sistem operasi lain tidak didukung).


Menyematkan vektor

Vektor disimpan dalam Milvus sebagai entitas. Setiap entitas memiliki satu bidang ID vektor dan satu bidang vektor. Milvus v1.0 hanya mendukung ID vektor bilangan bulat. Ketika membuat koleksi di dalam Milvus, ID vektor dapat dibuat secara otomatis atau ditentukan secara manual. Milvus memastikan ID vektor yang dibuat secara otomatis adalah unik, namun ID yang dibuat secara manual dapat diduplikasi di dalam Milvus. Jika mendefinisikan ID secara manual, pengguna bertanggung jawab untuk memastikan bahwa semua ID adalah unik.


Partisi

Milvus mendukung pembuatan partisi dalam sebuah koleksi. Dalam situasi di mana data dimasukkan secara teratur dan data historis tidak signifikan (misalnya, data streaming), partisi dapat digunakan untuk mempercepat pencarian kemiripan vektor. Satu koleksi dapat memiliki hingga 4.096 partisi. Menentukan pencarian vektor dalam partisi tertentu mempersempit pencarian dan dapat secara signifikan mengurangi waktu kueri, terutama untuk koleksi yang berisi lebih dari satu triliun vektor.


Pengoptimalan algoritme indeks

Milvus dibangun di atas beberapa pustaka indeks yang diadopsi secara luas, termasuk Faiss, NMSLIB, dan Annoy. Milvus lebih dari sekadar pembungkus dasar untuk pustaka-pustaka indeks ini. Berikut ini adalah beberapa peningkatan utama yang telah dilakukan pada pustaka-pustaka yang mendasarinya:

  • Pengoptimalan kinerja indeks IVF menggunakan algoritma k-means Elkan.
  • Pengoptimalan pencarian FLAT.
  • Dukungan indeks hibrida IVF_SQ8H, yang dapat mengurangi ukuran file indeks hingga 75% tanpa mengorbankan akurasi data. IVF_SQ8H dibangun di atas IVF_SQ8, dengan daya ingat yang sama namun dengan kecepatan kueri yang jauh lebih cepat. Ini dirancang khusus untuk Milvus untuk memanfaatkan kapasitas pemrosesan paralel GPU, dan potensi sinergi antara pemrosesan bersama CPU/GPU.
  • Kompatibilitas set instruksi dinamis.


Pencarian, pembuatan indeks, dan pengoptimalan Milvus lainnya

Pengoptimalan berikut ini telah dilakukan pada Milvus untuk meningkatkan kinerja pencarian dan pembuatan indeks.

  • Performa pencarian dioptimalkan dalam situasi ketika jumlah kueri (nq) kurang dari jumlah thread CPU.
  • Milvus menggabungkan permintaan pencarian dari klien yang mengambil topK dan parameter pencarian yang sama.
  • Pembuatan indeks dihentikan ketika permintaan pencarian masuk.
  • Milvus secara otomatis memuat koleksi ke memori pada saat start.
  • Beberapa perangkat GPU dapat ditugaskan untuk mempercepat pencarian kemiripan vektor.


Metrik jarak

Milvus adalah basis data vektor yang dibangun untuk mendukung pencarian kemiripan vektor. Platform ini dibangun dengan mempertimbangkan MLOps dan aplikasi AI tingkat produksi. Milvus mendukung berbagai metrik jarak untuk menghitung kemiripan, seperti jarak Euclidean (L2), inner product (IP), jarak Jaccard, Tanimoto, jarak Hamming, superstruktur, dan substruktur. Dua metrik terakhir biasanya digunakan dalam pencarian molekuler dan penemuan obat baru yang didukung oleh AI.


Penebangan

Milvus mendukung rotasi log. Dalam file konfigurasi sistem, milvus.yaml, Anda dapat mengatur ukuran file log tunggal, jumlah file log, dan output log ke stdout.


Solusi terdistribusi

Mishards, middleware sharding Milvus, adalah solusi terdistribusi untuk Milvus Dengan satu simpul tulis dan simpul baca dalam jumlah yang tidak terbatas, Mishards melepaskan potensi komputasi cluster server. Fitur-fiturnya meliputi penerusan permintaan, pemisahan baca/tulis, penskalaan dinamis/horizontal, dan banyak lagi.


Pemantauan

Milvus kompatibel dengan Prometheus, sebuah perangkat pemantauan dan peringatan sistem sumber terbuka. Milvus menambahkan dukungan untuk Pushgateway di Prometheus, sehingga memungkinkan Prometheus untuk memperoleh metrik batch yang berumur pendek. Sistem pemantauan dan peringatan bekerja sebagai berikut:

  • Server Milvus mendorong data metrik yang disesuaikan ke Pushgateway.
  • Pushgateway memastikan data metrik yang bersifat sementara dikirim dengan aman ke Prometheus.
  • Prometheus terus menarik data dari Pushgateway.
  • Alertmanager digunakan untuk mengatur ambang batas peringatan untuk berbagai indikator dan mengirim peringatan melalui email atau pesan.


Manajemen metadata

Milvus menggunakan SQLite untuk manajemen metadata secara default. SQLite diimplementasikan di Milvus dan tidak memerlukan konfigurasi. Dalam lingkungan produksi, Anda disarankan untuk menggunakan MySQL untuk manajemen metadata.


Bergabunglah dengan komunitas sumber terbuka kami:

  • Temukan atau berkontribusi ke Milvus di GitHub.
  • Berinteraksi dengan komunitas melalui Slack.
  • Terhubung dengan kami di Twitter.

    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