• Tentang Milvus
  • Memulai
  • Konsep
  • Panduan Pengguna
    • Koleksi
    • Bidang Skema & Data
    • Menyisipkan & Menghapus
    • Indeks
    • Pencarian
    • Penyematan & Pemeringkatan Ulang
    • Optimalisasi Penyimpanan
  • Impor Data
  • Alat AI
  • Panduan Administrasi
  • Peralatan
  • Integrasi
  • Tutorial
  • Pertanyaan Umum
  • API Reference

BIN_IVF_FLAT

Indeks BIN_IVF_FLAT adalah varian dari indeks IVF_FLAT yang khusus untuk penyematan biner. Indeks ini meningkatkan efisiensi kueri dengan mempartisi data vektor terlebih dahulu ke dalam beberapa cluster (unit nlist) dan kemudian membandingkan vektor input target ke pusat setiap cluster. BIN_IVF_FLAT secara signifikan mengurangi waktu kueri sekaligus memungkinkan pengguna untuk menyempurnakan keseimbangan antara akurasi dan kecepatan. Untuk informasi lebih lanjut, lihat IVF_FLAT.

Membangun indeks

Untuk membangun indeks BIN_IVF_FLAT pada bidang vektor di Milvus, gunakan metode add_index(), tentukan index_type, metric_type, dan parameter tambahan untuk indeks.

from pymilvus import MilvusClient

# Prepare index building params
index_params = MilvusClient.prepare_index_params()

index_params.add_index(
    field_name="your_binary_vector_field_name", # Name of the vector field to be indexed
    index_type="BIN_IVF_FLAT", # Type of the index to create
    index_name="vector_index", # Name of the index to create
    metric_type="HAMMING", # Metric type used to measure similarity
    params={
        "nlist": 64, # Number of clusters for the index
    } # Index building params
)

Dalam konfigurasi ini:

  • index_type: Jenis indeks yang akan dibangun. Dalam contoh ini, tetapkan nilainya ke BIN_IVF_FLAT.

  • metric_type: Metode yang digunakan untuk menghitung jarak antara vektor. Nilai yang didukung untuk penyematan biner termasuk HAMMING (default) dan JACCARD. Untuk detailnya, lihat Jenis Metrik.

  • params: Opsi konfigurasi tambahan untuk membangun indeks.

    • nlist: Jumlah kluster untuk membagi set data.

    Untuk mempelajari lebih lanjut parameter pembuatan yang tersedia untuk indeks BIN_IVF_FLAT, lihat Parameter pembuatan indeks.

Setelah parameter indeks dikonfigurasi, Anda dapat membuat indeks dengan menggunakan metode create_index() secara langsung atau mengoper parameter indeks dalam metode create_collection. Untuk detailnya, lihat Membuat Koleksi.

Mencari di indeks

Setelah indeks dibuat dan entitas dimasukkan, Anda dapat melakukan pencarian kemiripan pada indeks.

search_params = {
    "params": {
        "nprobe": 10, # Number of clusters to search
    }
}

res = MilvusClient.search(
    collection_name="your_collection_name", # Collection name
    anns_field="binary_vector_field",  # Binary vector field
    data=[query_binary_vector],  # Query binary vector
    limit=3,  # TopK results to return
    search_params=search_params
)

Dalam konfigurasi ini:

  • params: Opsi konfigurasi tambahan untuk pencarian pada indeks.

    • nprobe: Jumlah kluster yang akan dicari.

    Untuk mempelajari lebih lanjut parameter pencarian yang tersedia untuk indeks BIN_IVF_FLAT, lihat Parameter pencarian khusus indeks.

Parameter indeks

Bagian ini memberikan gambaran umum tentang parameter yang digunakan untuk membangun indeks dan melakukan pencarian pada indeks.

Parameter pembangunan indeks

Tabel berikut mencantumkan parameter yang dapat dikonfigurasi di params saat membangun indeks.

Parameter

Deskripsi

Rentang Nilai

Saran Penyetelan

nlist

Jumlah kluster yang akan dibuat menggunakan algoritme k-means selama pembuatan indeks. Setiap kluster, yang diwakili oleh centroid, menyimpan daftar vektor. Meningkatkan parameter ini akan mengurangi jumlah vektor di setiap klaster, menciptakan partisi yang lebih kecil dan lebih terfokus.

Jenis: Rentang Bilangan Bulat: [1, 65536]

Nilai default: 128

Nilai nlist yang lebih besar meningkatkan daya ingat dengan membuat klaster yang lebih halus, tetapi meningkatkan waktu pembuatan indeks. Optimalkan berdasarkan ukuran set data dan sumber daya yang tersedia. Dalam kebanyakan kasus, kami sarankan Anda menetapkan nilai dalam kisaran ini: [32, 4096].

Parameter pencarian khusus indeks

Tabel berikut mencantumkan parameter yang dapat dikonfigurasi di search_params.params saat melakukan pencarian di indeks.

Parameter

Deskripsi

Rentang Nilai

Saran Penyetelan

nprobe

Jumlah klaster untuk mencari kandidat. Nilai yang lebih tinggi memungkinkan lebih banyak klaster untuk dicari, meningkatkan daya ingat dengan memperluas cakupan pencarian, tetapi dengan biaya peningkatan latensi kueri.

Jenis: Bilangan bulat Rentang: [1, nlist]

Nilai default: 8

Meningkatkan nilai ini akan meningkatkan daya ingat tetapi dapat memperlambat pencarian. Tetapkan nprobe secara proporsional dengan nlist untuk menyeimbangkan kecepatan dan akurasi.

Pada kebanyakan kasus, kami sarankan Anda menetapkan nilai dalam kisaran ini: [1, nlist].

Coba Milvus yang Dikelola secara Gratis

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

Mulai
Umpan balik

Apakah halaman ini bermanfaat?