Fungsi Cloud SQL

Halaman ini menjelaskan fungsi Cloud SQL.

Fungsi konversi vektor

Tabel berikut mencantumkan fungsi yang dapat Anda gunakan untuk memanipulasi informasi vektor dalam pernyataan SELECT.

Fungsi Deskripsi
vector_to_string Input: VECTOR

Output: STRING

Mengonversi argumen menjadi string dalam format vektor yang dapat dibaca manusia.

Input: satu argumen berjenis VECTOR

Output: string

Sintaksis:

vector_to_string(some_embedding)

string_to_vector Input: STRING

Output: VECTOR

Mengonversi string ke format vektor yang dapat dibaca manusia. Dengan cara ini, Anda dapat menulis nilai yang ingin direpresentasikan dalam vektor.

Input: string

Sintaksis:

string_to_vector('some_embedding')

Output: satu nilai jenis vektor.

Fungsi penelusuran

Bagian ini menjelaskan fungsi penelusuran Cloud SQL.

Fungsi KNN

Tabel berikut mencantumkan fungsi yang dapat Anda gunakan untuk menghitung jarak vektor KNN.

Fungsi Data type Deskripsi
vector_distance Input: VECTOR

Output: REAL

Menghitung jarak vektor antara dua VECTOR. Kedua VECTORs harus memiliki dimensi yang sama.

Input: wajib diisi. Mengambil dua nilai vektor, Argumen string ketiga opsional menunjukkan ukuran jarak. Default-nya adalah `l2_squared_distance. Opsi lainnya mencakup `cosine_distance` dan `dot_product`.

Output: jarak antara dua vektor.

Contoh:

SELECT vector_distance(string_to_vector('[1,-2,3]'), string_to_vector('[1,2,3]'), 'Distance_Measure=dot_product');

cosine_distance Input: VECTOR

Output: REAL

Algoritma untuk menghitung kosinus sudut antara dua vektor. Nilai yang lebih kecil menunjukkan kesamaan yang lebih besar antara vektor.

Input: mengambil dua nilai vektor. Nilai ini dapat berupa nama kolom atau konstanta.

Output: jarak kosinus antara dua vektor.

Contoh:

SELECT cosine_distance(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));

SELECT id FROM t1 ORDER BY cosine_distance(string_to_vector('[1,2,3]'), embedding_column_name) LIMIT 10;

dot_product Input: VECTOR

Output: REAL

Algoritma yang melakukan operasi produk titik antara dua vektor input untuk menghitung dan menghasilkan satu nilai skalar.

Input: mengambil dua nilai vektor. Nilai ini dapat berupa nama kolom atau konstanta.

Output: produk dot dari dua vektor.

Contoh:

SELECT dot_product(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));

SELECT id FROM t1 ORDER BY dot_product(string_to_vector('[1,2,3]'), embbeding_column_name) LIMIT 10;

l2_squared_distance Input: VECTOR

Output: REAL

Algoritma yang menambahkan jarak kuadrat pada setiap dimensi antara dua vektor input untuk mengukur jarak Euclidean di antara keduanya.

Input: mengambil dua nilai vektor. Nilai ini dapat berupa nama kolom atau konstanta.

Output: jarak kuadrat L2 antara dua vektor.

Contoh:

SELECT l2_squared_distance(string_to_vector('[1,2,3]'), string_to_vector('[1,1,1]'));

SELECT id FROM t1 ORDER BY l2_squared_distance(string_to_vector('[1,2,3]'), embbeding_column_name) LIMIT 10;

Fungsi ANN

Tabel berikut mencantumkan fungsi yang dapat Anda gunakan untuk menghitung jarak vektor.

Fungsi Jenis Data Deskripsi
approx_distance Input: VECTOR

Output: REAL

Menemukan K baris terdekat teratas yang memenuhi ukuran jarak menggunakan algoritma yang dipilih. Fungsi ini mengkueri tetangga terdekat perkiraan dari kolom vektor ke nilai konstanta. Jenis VECTOR dari dua kolom penyematan dan konstanta VECTOR harus memiliki dimensi yang sama. Ada beberapa kasus ketika fungsi ini kembali ke penelusuran KNN (penelusuran persis) dan bukan penelusuran ANN. Anda harus menyertakan batas dengan kueri yang menggunakan fungsi ini.

Sintaksis:

approx_distance(embedding_name,
query_vector,
'distance_measure=algorithm_name
[, num_leaves_to_search=value]'

Input:

  1. embedding_name: Nama kolom embedding vektor dari tabel dasar.
  2. query_vector: Konstanta berjenis `VECTOR` yang dapat (tetapi tidak harus) berupa output dari string_to_vector.
  3. Opsi string penelusuran yang dipisahkan koma meliputi:
    • distance_measure: wajib. Menggunakan algoritma untuk mengukur jarak antar-vektor. Kode ini menggunakan literal string berikut:
      • L2_SQUARED
      • COSINE
      • DOT_PRODUCT

      Contoh: distance_measure=cosine

    • num_leaves_to_search: optional. Menentukan jumlah daun yang akan diselidiki untuk penelusuran kemiripan vektor ANN. Jika Anda tidak menentukan jumlah daun, CloudSQL untuk MySQL akan memilih nilai yang dihitung untuk num_leaves_to_search yang dapat dilihat di information_schema.innodb_vector_indexes. Jumlah yang dihitung biasanya merupakan titik awal yang baik dengan kualitas dan performa penelusuran yang baik. Sebaiknya Anda menyesuaikan num_leaves_to_search berdasarkan beban kerja dan performa atau kualitas yang Anda inginkan.

    Contoh:

    'distance_measure=dot_product,
    num_leaves_to_search=100'

    Nilai LIMIT yang diperlukan: Batas yang ditentukan digunakan sebagai jumlah tetangga yang akan ditampilkan (juga dikenal sebagai K teratas).

    Output: Perkiraan jarak K baris teratas yang paling dekat dalam tabel dasar.

    Fungsi ini hanya dapat digunakan dalam daftar ORDER BY atau SELECT.

    Contoh:

    SELECT id, approx_distance(embedding_column_name
    string_to_vector('[1,1,1]'),
    'distance_measure=cosine') dist from t1
    ORDER BY dist LIMIT 10;

    SELECT id
    FROM t1
    ORDER BY
    approx_distance(
    embedding_column_name
    string_to_vector('[1,1,1]'),
    'distance_measure=dot_product,num_leaves_to_search=100) LIMIT 4;

Langkah berikutnya