Membuat kueri indeks PSA atau PSC untuk mendapatkan tetangga terdekat

Setelah membuat indeks PSA atau PSC, Anda dapat menjalankan kueri untuk mendapatkan tetangga terdekatnya.

Tentang membuat kueri indeks PSC

Alamat komputasi yang dibuat dari indeks PSC dapat digunakan untuk mengirim kueri ke alamat tersebut. Pada contoh berikut, ganti TARGET_IP dengan alamat compute yang dibuat.

Tentang membuat kueri indeks PSA

Setiap DeployedIndex memiliki TARGET_IP, yang dapat Anda ambil dengan mencantumkan IndexEndpoints.

Membuat kueri indeks

Untuk membuat kueri DeployedIndex, hubungkan ke TARGET_IP di port 10000 dan panggil metode Match atau BatchMatch. Selain itu, Anda dapat membuat kueri menggunakan DOC_ID.

Contoh berikut menggunakan alat open source grpc_cli untuk mengirim permintaan grpc ke server indeks yang di-deploy.

gRPC

Pada contoh pertama, Anda mengirim satu kueri menggunakan metode Match.

./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]'

Pada contoh kedua, Anda menggabungkan dua kueri terpisah ke dalam permintaan BatchMatch yang sama.

./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.BatchMatch 'requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", requests: [{deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.1,..]}, {deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [-0.2,..]}]}]'

Anda harus melakukan panggilan ke API ini dari klien yang berjalan di [VPC yang sama dengan yang di-peering dengan layanan](#vpc-network-peering-setup).

Untuk menjalankan kueri menggunakan DOC_ID, gunakan contoh berikut.

./grpc_cli call ${TARGET_IP}:10000  google.cloud.aiplatform.container.v1.MatchService.Match "deployed_index_id:'"test_index1"',embedding_id: '"606431"'"

Dalam contoh ini, Anda mengirim kueri menggunakan token dan batasan numerik.

./grpc_cli call ${TARGET_IP}:10000 google.cloud.aiplatform.container.v1.MatchService.Match 'deployed_index_id: "${DEPLOYED_INDEX_ID}", float_val: [1, 1], "sparse_embedding": {"values": [111.0,111.1,111.2], "dimensions": [10,20,30]}, numeric_restricts: [{name: "double-ns", value_double: 0.3, op: LESS_EQUAL}, {name: "double-ns", value_double: -1.2, op: GREATER}, {name: "double-ns", value_double: 0., op: NOT_EQUAL}], restricts: [{name: "color", allow_tokens: ["red"]}]'

Untuk mempelajari lebih lanjut, lihat Penjelasan library klien.

Konsol

Gunakan petunjuk ini untuk membuat kueri indeks VPC dari konsol.

  1. Di bagian Vertex AI pada Konsol Google Cloud, buka bagian Deploy and Use. Pilih Cari Vektor

    Buka Vector Search

  2. Pilih indeks VPC yang ingin Anda buat kueri. Halaman Info indeks akan terbuka.
  3. Scroll ke bawah ke bagian Indeks yang di-deploy, lalu pilih indeks yang di-deploy yang ingin Anda buat kuerinya. Halaman Info indeks yang di-deploy akan terbuka.
  4. Dari bagian Indeks kueri, pilih parameter kueri Anda. Anda dapat memilih untuk membuat kueri berdasarkan vektor, atau titik data tertentu.
  5. Jalankan kueri menggunakan alat open source grpc_cli, atau dengan menggunakan Vertex AI SDK untuk Python.

Setelan waktu kueri yang memengaruhi performa

Parameter waktu kueri berikut dapat memengaruhi latensi, ketersediaan, dan biaya saat menggunakan Penelusuran Vektor. Panduan ini berlaku untuk sebagian besar kasus. Namun, selalu bereksperimen dengan konfigurasi untuk memastikan konfigurasi tersebut berfungsi untuk kasus penggunaan Anda.

Untuk definisi parameter, lihat Parameter konfigurasi indeks.

Parameter Tentang Dampak performa
approximateNeighborsCount

Memberi tahu algoritma jumlah perkiraan hasil yang akan diambil dari setiap shard.

Nilai approximateNeighborsCount harus selalu lebih besar dari nilai setNeighborsCount. Jika nilai setNeighborsCount kecil, 10 kali nilai tersebut direkomendasikan untuk approximateNeighborsCount. Untuk nilai setNeighborsCount yang lebih besar, pengganda yang lebih kecil dapat digunakan.

Meningkatkan nilai approximateNeighborsCount dapat memengaruhi performa dengan cara berikut:

  • Recall: Meningkat
  • Latensi: Berpotensi meningkat
  • Ketersediaan: Tidak ada dampak
  • Biaya: Dapat meningkat karena lebih banyak data yang diproses selama penelusuran

Menurunkan nilai approximateNeighborsCount dapat memengaruhi performa dengan cara berikut:

  • Recall: Menurun
  • Latensi: Berpotensi menurun
  • Ketersediaan: Tidak ada dampak
  • Biaya: Dapat mengurangi biaya karena lebih sedikit data yang diproses selama penelusuran
setNeighborCount Menentukan jumlah hasil yang ingin ditampilkan oleh kueri.

Nilai kurang dari atau sama dengan 300 tetap berperforma baik dalam sebagian besar kasus penggunaan. Untuk nilai yang lebih besar, uji kasus penggunaan tertentu Anda.

fractionLeafNodesToSearch Mengontrol persentase node daun yang akan dikunjungi saat menelusuri tetangga terdekat. Hal ini terkait dengan leafNodeEmbeddingCount karena semakin banyak penyematan per node daun, semakin banyak data yang diperiksa per daun.

Meningkatkan nilai fractionLeafNodesToSearch dapat memengaruhi performa dengan cara berikut:

  • Recall: Meningkat
  • Latensi: Meningkat
  • Ketersediaan: Tidak ada dampak
  • Biaya: Dapat meningkat karena latensi yang lebih tinggi menggunakan lebih banyak resource mesin

Menurunkan nilai fractionLeafNodesToSearch dapat memengaruhi performa dengan cara berikut:

  • Recall: Menurun
  • Latensi: Menurun
  • Ketersediaan: Tidak ada dampak
  • Biaya: Dapat menurun karena latensi yang lebih rendah menggunakan lebih sedikit resource mesin

Langkah selanjutnya