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

milvus-logo
LFAI
Beranda
  • Konsep
  • Home
  • Docs
  • Konsep

  • Indeks Vektor

  • Indeks Pada Disk

Indeks Pada Disk

Artikel ini memperkenalkan algoritme pengindeksan dalam disk yang dinamai DiskANN. Berdasarkan grafik Vamana, DiskANN mendukung pencarian yang efisien dalam kumpulan data yang besar.

Untuk meningkatkan performa kueri, Anda dapat menentukan jenis indeks untuk setiap bidang vektor.

Saat ini, bidang vektor hanya mendukung satu jenis indeks. Milvus secara otomatis menghapus indeks lama ketika mengganti jenis indeks.

Prasyarat

Untuk menggunakan DiskANN, perhatikan bahwa

  • DiskANN dinonaktifkan secara default. Jika Anda lebih memilih indeks dalam memori daripada indeks pada disk, Anda disarankan untuk menonaktifkan fitur ini untuk kinerja yang lebih baik.
    • Untuk menonaktifkannya, Anda dapat mengubah queryNode.enableDisk menjadi false pada berkas konfigurasi milvus Anda.
    • Untuk mengaktifkannya kembali, Anda dapat mengatur queryNode.enableDisk ke true.
  • Instance Milvus berjalan pada Ubuntu 18.04.6 atau rilis yang lebih baru.
  • Jalur data Milvus harus dipasang ke SSD NVMe untuk performa penuh:
    • Untuk instans Milvus Standalone, jalur data harus berada di /var/lib/milvus/data di dalam kontainer tempat instans berjalan.
    • Untuk instans Milvus Cluster, jalur data harus /var/lib/milvus/data di wadah tempat QueryNodes dan IndexNodes berjalan.

Batasan

Untuk menggunakan DiskANN, pastikan Anda

  • Gunakan hanya vektor float dengan setidaknya 1 dimensi dalam data Anda.
  • Gunakan hanya Euclidean Distance (L2), Inner Product (IP), atau COSINE untuk mengukur jarak antar vektor.

Pengaturan indeks dan pencarian

  • Parameter pembuatan indeks

    Saat membuat indeks DiskANN, gunakan DISKANN sebagai jenis indeks. Tidak ada parameter indeks yang diperlukan.

  • Parameter pencarian

    ParameterDeskripsiRentangNilai Default
    search_listUkuran daftar kandidat, ukuran yang lebih besar menawarkan tingkat penarikan yang lebih tinggi dengan kinerja yang menurun.[topk, int32_max]16

DiskANN dapat disetel. Anda dapat memodifikasi parameter terkait DiskANN di ${MILVUS_ROOT_PATH}/configs/milvus.yaml untuk meningkatkan kinerjanya.

...
DiskIndex:
  MaxDegree: 56
  SearchListSize: 100
  PQCodeBugetGBRatio: 0.125
  SearchCacheBudgetGBRatio: 0.125
  BeamWidthRatio: 4.0
...
ParameterDeskripsiRentang NilaiNilai Default
MaxDegreeDerajat maksimum grafik Vamana.
Nilai yang lebih besar menawarkan tingkat penarikan yang lebih tinggi tetapi meningkatkan ukuran dan waktu untuk membangun indeks.
[1, 512]56
SearchListSizeUkuran daftar kandidat.
Nilai yang lebih besar meningkatkan waktu yang dihabiskan untuk membangun indeks tetapi menawarkan tingkat penarikan yang lebih tinggi.
Tetapkan ke nilai yang lebih kecil dari MaxDegree kecuali jika Anda perlu mengurangi waktu pembuatan indeks.
[1, int32_max]100
PQCodeBugetGBRatioBatas ukuran pada kode PQ.
Nilai yang lebih besar menawarkan tingkat pemanggilan yang lebih tinggi tetapi meningkatkan penggunaan memori.
(0.0, 0.25]0.125
SearchCacheBudgetGBRatioRasio nomor simpul yang di-cache terhadap data mentah.
Nilai yang lebih besar meningkatkan kinerja pembuatan indeks dengan peningkatan penggunaan memori.
[0.0, 0.3)0.10
BeamWidthRatioRasio antara jumlah maksimum permintaan IO per iterasi pencarian dan nomor CPU.[1, max(128 / nomor CPU, 16)]4.0

Pemecahan masalah

  • Bagaimana cara mengatasi kesalahan io_setup() failed; returned -11, errno=11:Resource temporarily unavailable?

    Kernel Linux menyediakan fitur Asynchronous non-blocking I/O (AIO) yang memungkinkan sebuah proses memulai beberapa operasi I/O secara bersamaan tanpa harus menunggu sampai operasi tersebut selesai. Hal ini membantu meningkatkan kinerja untuk aplikasi yang dapat tumpang tindih antara pemrosesan dan I/O.

    Performa dapat disetel menggunakan file virtual /proc/sys/fs/aio-max-nr dalam sistem file proc. Parameter aio-max-nr menentukan jumlah maksimum permintaan bersamaan yang diijinkan.

    aio-max-nr defaultnya adalah 65535, Anda dapat mengaturnya ke 10485760.

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?