Menggunakan bantuan vektor

Gunakan bantuan vektor untuk men-deploy dan mengelola beban kerja vektor di instance AlloyDB untuk PostgreSQL Anda.

Untuk mempelajari lebih lanjut apa itu bantuan vektor dan cara kerjanya, lihat Ringkasan bantuan vektor.

Sebelum memulai

  • Pastikan instance Anda menggunakan versi pemeliharaan yang benar. Bantuan vektor memerlukan nomor versi pemeliharaan minimum POSTGRES_17.20260128.03_06. Untuk mengetahui informasi selengkapnya tentang melakukan pemeliharaan mandiri, lihat Melakukan pemeliharaan mandiri.
  • Aktifkan ekstensi bantuan vektor menggunakan perintah berikut di database yang ingin Anda gunakan:

    CREATE EXTENSION vector_assist CASCADE;
    

    Tindakan ini akan menghasilkan skema vector_assist, yang digunakan oleh bantuan vektor.

Menggunakan bantuan vektor untuk men-deploy workload vektor

Untuk menggunakan bantuan vektor guna men-deploy dan mengelola workload vektor, Anda harus melakukan hal berikut:

Menentukan spesifikasi vektor Anda

Menentukan spesifikasi vektor, atau spesifikasi vektor, adalah langkah pertama dalam menggunakan bantuan vektor. Bergantung pada jenis workload vektor, kolom yang Anda gunakan untuk menentukan spesifikasi vektor mungkin berbeda.

Misalnya, jika Anda ingin mengaktifkan penelusuran semantik pada kolom tertentu dalam tabel, jalankan fungsi vector_assist.define_spec untuk menentukan spesifikasi vektor:

SELECT
  recommendation_id,
  REGEXP_REPLACE(query, 'SET hnsw.ef_search TO \d+', 'SET hnsw.ef_search TO') AS query_1,
  recommendation,
  vector_spec_id,
  table_name,
  applied,
  modified
FROM vector_assist.define_spec(
  table_name => 'TABLE_NAME',
  vector_column_name => 'VECTOR_COLUMN_NAME',
  target_recall => TARGET_RECALL,
  tune_vector_index => TUNE_INDEX
);

Ganti parameter berikut:

  • TABLE_NAME: nama tabel yang ingin Anda gunakan dalam beban kerja vektor.
  • (Opsional) VECTOR_COLUMN_NAME: kolom yang ingin Anda lakukan penelusuran semantik. Jika Anda hanya memiliki satu kolom dengan vektor dalam tabel, vector_assist dapat menyetelnya secara otomatis. Jika ada lebih dari satu tabel dengan vektor, Anda harus menentukan kolom yang akan digunakan.
  • (Opsional) TARGET_RECALL: target perolehan yang Anda inginkan untuk dipenuhi oleh bantuan vektor. Jika ditentukan, vector_assist melakukan eksperimen dengan nilai ef_search yang berbeda, membandingkan recall dalam penelusuran tetangga terdekat yang tepat. vector_assist menetapkan ef_search ke nilai yang memberikan target perolehan terdekat. Nilai defaultnya adalah 0.95.
  • (Opsional) TUNE_INDEX: boolean yang menentukan apakah bantuan vektor menyesuaikan indeks vektor dalam beban kerja Anda. Nilai defaultnya adalah false, yang berarti hanya parameter terkait penelusuran (ef_search) yang disesuaikan. Parameter waktu pembuatan (m, ef_construction) tidak disesuaikan.

Untuk melihat daftar lengkap semua parameter yang tersedia untuk spesifikasi vektor, lihat Referensi fungsi bantuan vektor.

Setelah Anda menjalankan kueri untuk membuat spesifikasi vektor, bantuan vektor akan otomatis membuat langkah-langkah, yang disebut rekomendasi, yang harus Anda jalankan untuk men-deploy beban kerja vektor.

Melihat rekomendasi bantuan vektor

Untuk melihat rekomendasi yang dihasilkan oleh bantuan vektor menggunakan spesifikasi vektor Anda, jalankan fungsi vector_assist.get_recommendations:

SELECT vector_assist.get_recommendations(
  spec_id => 'SPEC_ID'
);

Ganti SPEC_ID dengan ID spesifikasi vektor yang ingin Anda lihat rekomendasinya. Untuk mendapatkan daftar spesifikasi vektor yang tersedia, lihat Mencantumkan spesifikasi vektor.

vector_assist.get_recommendations menampilkan tabel bernama vector_assist.RECOMMENDATIONS yang berisi semua rekomendasi. Setiap rekomendasi disimpan dalam tabel dengan spec_id terkait. Setiap rekomendasi umumnya berisi informasi berikut:

  • Kueri SQL yang perlu Anda jalankan
  • Penjelasan mendetail untuk rekomendasi
  • Informasi relevan lainnya yang menjelaskan rekomendasi

Menerapkan rekomendasi bantuan vektor

Anda dapat menerapkan rekomendasi yang dihasilkan satu per satu atau secara keseluruhan.

Untuk menerapkan rekomendasi tertentu, jalankan fungsi vector_assist.apply_recommendation:

SELECT vector_assist.apply_recommendation(
  recommendation_id => 'RECOMMENDATION_ID'
);

Ganti RECOMMENDATION_ID dengan ID rekomendasi bantuan vektor yang ingin Anda terapkan dari tabel vector_assist.RECOMMENDATIONS.

Untuk menerapkan semua rekomendasi secara bersamaan, jalankan fungsi vector_assist.apply_spec dengan parameter spec_id atau table_name:

SELECT vector_assist.apply_spec(
  spec_id => 'SPEC_ID'
);

Ganti SPEC_ID dengan ID spesifikasi vektor yang ingin Anda gunakan.

Secara opsional, Anda juga dapat memasukkan parameter schema_name atau column_name. Untuk mengetahui informasi tentang semua parameter kueri yang tersedia, lihat Referensi fungsi bantuan vektor.

Setelah Anda menerapkan rekomendasi yang dihasilkan oleh bantuan vektor, indeks vektor siap digunakan.

Membuat kueri penelusuran

Anda dapat menggunakan bantuan vektor untuk membantu Anda membuat kueri penelusuran yang dioptimalkan untuk beban kerja vektor yang di-deploy menggunakan spesifikasi vektor beban kerja dan indeks vektor yang dihasilkan. Untuk membuat kueri penelusuran yang dioptimalkan, jalankan fungsi vector_assist.generate_query:

SELECT vector_assist.generate_query(
  spec_id => 'SPEC_ID',
  search_vector => 'SEARCH_VECTOR',
  top_k => 'TOP_K',
  target_recall => TARGET_RECALL,
  filter_expression => 'FILTER_EXPRESSION'
);

Ganti parameter berikut:

  • SPEC_ID: ID spesifikasi yang ingin Anda gunakan.
  • SEARCH_VECTOR: vektor untuk kueri penelusuran Anda. Contoh, [1, 2, 3].
  • (Opsional) TOP_K: jumlah tetangga terdekat yang akan ditampilkan. Jika tidak ditentukan, nilai defaultnya adalah 10.
  • (Opsional) TARGET_RECALL: target perolehan yang Anda inginkan untuk dipenuhi oleh bantuan vektor. Jika ditentukan, vector_assist melakukan eksperimen dengan nilai ef_search yang berbeda, membandingkan recall dalam penelusuran tetangga terdekat yang tepat. vector_assist menetapkan ef_search ke nilai yang memberikan target perolehan terdekat.
  • (Opsional) FILTER_EXPRESSION: filter apa pun untuk kueri penelusuran. Misalnya, memfilter berdasarkan kolom lainnya.

Untuk melihat daftar lengkap semua parameter yang tersedia untuk membuat kueri penelusuran, lihat Referensi fungsi bantuan vektor.

Output fungsi ini menampilkan teks yang berisi kueri SQL. Anda dapat menjalankan atau menyimpan kueri SQL ini sesuai kebutuhan.

Mencantumkan spesifikasi vektor Anda

Jika Anda perlu mencantumkan satu orang, atau semua spesifikasi vektor yang ada, jalankan fungsi vector_assist.list_specs:

SELECT vector_assist.list_specs(
  spec_id => 'SPEC_ID',
  table_name => 'TABLE_NAME'
);

Ganti parameter berikut:

  • (Opsional) SPEC_ID: ID spesifikasi vektor yang ingin Anda gunakan.
  • TABLE_NAME: nama tabel yang Anda gunakan untuk menentukan spesifikasi vektor.

Langkah berikutnya