Pembuatan embedding otonom
Dokumen ini menjelaskan cara menggunakan pembuatan sematan otonom untuk data Anda, yang memungkinkan BigQuery mempertahankan kolom sematan pada tabel berdasarkan kolom sumber. Kolom sumber harus memiliki jenis data STRING atau ObjectRef. Saat Anda menambahkan atau mengubah data di kolom sumber,
BigQuery akan otomatis membuat atau memperbarui kolom penyematan
untuk data tersebut dengan menggunakan model penyematan Agent Platform.
Hal ini berguna jika Anda ingin BigQuery mempertahankan sematan saat data sumber Anda diperbarui secara rutin.
Embedding berguna untuk aplikasi AI generatif modern seperti Retrieval Augmented Generation (RAG), tetapi embedding bisa rumit untuk dibuat, dikelola, dan dikueri. Anda dapat menggunakan pembuatan embedding otonom untuk menyederhanakan proses pembuatan, pemeliharaan, dan kueri embedding untuk digunakan dalam penelusuran kemiripan dan aplikasi AI generatif lainnya.
Misalnya, Anda dapat menggunakan kueri yang mirip dengan berikut untuk membuat tabel dengan pengaktifan pembuatan embedding otonom, memasukkan data, lalu melakukan penelusuran semantik:
CREATE TABLE mydataset.products (
name STRING,
description STRING,
description_embedding STRUCT<result ARRAY<FLOAT64>, status STRING>
GENERATED ALWAYS AS (
AI.EMBED(description, connection_id => 'us.example_connection',
endpoint => 'text-embedding-005')
# Alternatively, you can use the syntax for a built-in model.
# AI.EMBED(description, model => 'embeddinggemma-300m')
) STORED OPTIONS( asynchronous = TRUE ));
# Values in the description_embedding column are automatically generated.
INSERT INTO mydataset.products (name, description) VALUES
('Super slingers', 'An exciting board game for the whole family'), ...;
SELECT * FROM AI.SEARCH(TABLE mydataset.products, 'description', 'A really fun toy');
Sebelum memulai
Untuk mengaktifkan pembuatan sematan mandiri pada tabel, Anda harus memiliki izin dan koneksi yang diperlukan, serta mengaktifkan Vertex AI API untuk project Anda.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengaktifkan pembuatan sematan mandiri, minta administrator untuk memberi Anda peran IAM berikut:
-
Untuk menggunakan resource koneksi:
BigQuery Connections User (
roles/bigquery.connectionUser) pada koneksi -
Untuk membuat atau mengubah tabel:
BigQuery Data Editor (
roles/bigquery.dataEditor) pada tabel -
Berikan peran berikut kepada akun layanan koneksi agar dapat mengakses model yang dihosting di endpoint Agent Platform:
Pengguna Agent Platform (
roles/aiplatform.user) di project yang memiliki koneksi
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat koneksi dan memberikan izin ke akun layanan
Untuk mengaktifkan pembuatan sematan mandiri pada tabel, Anda harus
membuat koneksi resource Cloud.
Kemudian, berikan
peran Agent Platform User
(roles/aiplatform.user) ke akun layanan yang dibuat saat Anda
membuat koneksi.
Membuat kolom penyematan yang dibuat secara otomatis
Anda dapat membuat kolom penyematan yang dibuat secara otomatis dalam tabel baru atau menambahkannya ke tabel yang ada.
Membuat tabel dengan kolom penyematan yang dibuat secara otomatis
Anda dapat menggunakan pembuatan embedding otonom untuk membuat embedding menggunakan
fungsi AI.EMBED
dalam
pernyataan CREATE TABLE.
SQL
Gunakan pernyataan CREATE TABLE untuk membuat tabel dengan kolom penyematan yang dibuat secara otomatis. Untuk membuat tabel, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE TABLE DATASET_ID.TABLE ( [COLUMN, ...] SOURCE_COL { STRING | ObjectRef }, EMBEDDING_COL_NAME STRUCT<result ARRAY<FLOAT64>, status STRING> GENERATED ALWAYS AS ( AI.EMBED( SOURCE_COL, { connection_id => CONNECTION_ID, endpoint => ENDPOINT | model => MODEL }) ) STORED OPTIONS (asynchronous = TRUE) );
Ganti kode berikut:
DATASET_ID: nama set data tempat Anda ingin membuat tabel.TABLE: nama tabel tempat pembuatan pembuatan penyematan otonom akan dilakukan.COLUMN, ...: kolom apa pun yang harus ada dalam tabel Anda selain kolom yang ingin Anda sematkan secara otomatis.SOURCE_COL: nama kolomSTRINGatauObjectRefyang ingin Anda sematkan secara otomatis.EMBEDDING_COL_NAME: nama kolom penyematan yang dibuat secara otomatis.CONNECTION_ID: nilaiSTRINGyang berisi nama koneksi yang akan digunakan, sepertimy_project.us.example_connection. Anda harus memberikan peran Pengguna Agent Platform ke akun layanan koneksi di project tempat Anda membuat tabel.ENDPOINT: nilaiSTRINGyang menentukan endpoint model embedding teks Agent Platform yang didukung untuk digunakan bagi model embedding teks. Nilai endpoint yang Anda tentukan harus menyertakan versi model, misalnya,text-embedding-005. Jika Anda menentukan nama model, bukan URL, BigQuery ML akan otomatis mengidentifikasi model dan menggunakan endpoint lengkap model.MODEL(Pratinjau): nilaiSTRINGyang menentukan model embedding teks bawaan. Satu-satunya nilai yang didukung adalah modelembeddinggemma-300m. Jika menentukan parameter ini, Anda tidak dapat menentukan parameterendpointatauconnection_id. Saat Anda menentukan parameterMODEL, data Anda tetap berada di BigQuery dan slot Anda digunakan untuk membuat embeddings; tidak ada data yang dikirim ke Agent Platform dan tidak ada biaya yang dikenakan di Agent Platform.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Untuk membuat tabel dengan kolom penyematan yang dibuat secara otomatis menggunakan
alat command line bq, gunakan perintah bq mk dengan file skema JSON yang
menentukan skema tabel:
Buat file skema JSON. Contoh berikut menunjukkan skema yang membuat kolom penyematan berdasarkan kolom sumber. Contoh ini menggunakan endpoint Agent Platform untuk pembuatan embedding.
[ { "name": "SOURCE_COL", "type": "STRING" }, { "fields": [ { "mode": "REPEATED", "name": "result", "type": "FLOAT" }, { "name": "status", "type": "STRING" } ], "generatedColumn": { "generationExpressionInfo": { "asynchronous": true, "generationExpression": "AI.EMBED(SOURCE_COL, connection_id => 'CONNECTION_ID', endpoint => 'ENDPOINT')", "stored": true }, "generatedMode": "GENERATED_ALWAYS" }, "name": "EMBEDDING_COL_NAME", "type": "RECORD" } ]Jika Anda menggunakan model bawaan, bukan endpoint Agent Platform, gunakan sintaksis yang mirip dengan berikut untuk
generationExpression:"AI.EMBED(SOURCE_COL, model => 'MODEL')"Untuk mengetahui informasi tentang nilai yang akan digunakan, lihat deskripsi untuk
SOURCE_COL,EMBEDDING_COL_NAME,CONNECTION_ID,ENDPOINT, danMODELdi tab SQL.Simpan skema ke file seperti
schema.json.Buat tabel menggunakan perintah
bq mk --table:bq mk --table DATASET_ID.TABLE schema.json
Ganti kode berikut:
DATASET_ID: Nama set data tempat Anda ingin membuat tabel.TABLE: Nama tabel tempat pembuatan embedding otonom akan dilakukan.COLUMN, ...: Kolom apa pun yang harus ada dalam tabel Anda selain kolom yang ingin Anda sematkan secara otomatis.STRING_COL: Nama kolomSTRINGyang ingin Anda sematkan secara otomatis.EMBEDDING_COL_NAME: Nama kolom embedding yang dibuat secara otomatis.CONNECTION_ID: NilaiSTRINGyang berisi nama koneksi yang akan digunakan, sepertimy_project.us.example_connection. Anda harus memberikan peran Pengguna Agent Platform ke akun layanan koneksi di project tempat Anda membuat tabel.ENDPOINT: nilaiSTRINGyang menentukan endpoint model embedding teks Agent Platform yang didukung untuk digunakan bagi model embedding teks. Nilai endpoint yang Anda tentukan harus menyertakan versi model, misalnyatext-embedding-005. Jika Anda menentukan nama model, bukan URL, BigQuery ML akan otomatis mengidentifikasi model dan menggunakan endpoint lengkap model.MODEL(Pratinjau): nilaiSTRINGyang menentukan model embedding teks bawaan. Satu-satunya nilai yang didukung adalah modelembeddinggemma-300m. Jika menentukan parameter ini, Anda tidak dapat menentukan parameterendpointatauconnection_id.Saat Anda menentukan parameter
MODEL, data Anda tetap berada di BigQuery dan slot Anda digunakan untuk membuat sematan; tidak ada data yang dikirim ke Agent Platform dan tidak ada biaya yang dikenakan di Agent Platform.
Menambahkan kolom embedding yang dibuat otomatis ke tabel yang ada
Anda juga dapat menambahkan kolom penyematan yang dibuat secara otomatis ke tabel yang ada dengan
menggunakan pernyataan ALTER TABLE ADD COLUMN.
SQL
Gunakan pernyataan ALTER TABLE ADD COLUMN untuk menambahkan kolom penyematan yang dibuat secara otomatis ke tabel yang ada. Untuk menambahkan
kolom, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
ALTER TABLE DATASET_ID.TABLE ADD COLUMN EMBEDDING_COL_NAME STRUCT<result ARRAY<FLOAT64>, status STRING> GENERATED ALWAYS AS ( AI.EMBED( SOURCE_COL, { connection_id => CONNECTION_ID, endpoint => ENDPOINT | model => MODEL }) ) STORED OPTIONS (asynchronous = TRUE) ;
Ganti kode berikut:
DATASET_ID: nama set data yang berisi tabel.TABLE: nama tabel yang ingin Anda tambahi kolom penyematan yang dibuat secara otomatis.EMBEDDING_COL_NAME: nama kolom penyematan yang dibuat secara otomatis.SOURCE_COL: nama kolomSTRINGatauObjectRefyang ingin Anda sematkan secara otomatis.CONNECTION_ID: nilaiSTRINGyang berisi nama koneksi yang akan digunakan, sepertimy_project.us.example_connection.ENDPOINT: nilaiSTRINGyang menentukan endpoint model embedding teks Agent Platform yang didukung untuk digunakan bagi model embedding teks.MODEL(Pratinjau): nilaiSTRINGyang menentukan model embedding teks bawaan. Satu-satunya nilai yang didukung adalah modelembeddinggemma-300m. Jika menentukan parameter ini, Anda tidak dapat menentukan parameterendpointatauconnection_id. Saat Anda menentukan parameterMODEL, data Anda tetap berada di BigQuery dan slot Anda digunakan untuk membuat embeddings; tidak ada data yang dikirim ke Agent Platform dan tidak ada biaya yang dikenakan di Agent Platform.
Klik Run.
Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat artikel Menjalankan kueri interaktif.
bq
Untuk menambahkan kolom penyematan yang dibuat secara otomatis ke tabel yang sudah ada menggunakan
alat command line bq, gunakan perintah bq update dengan file skema JSON yang
menentukan skema tabel yang diperbarui:
- Dapatkan skema tabel saat ini dan simpan ke file seperti
schema.json:bq show --schema --format=prettyjson DATASET_ID.TABLE > schema.json
Edit
schema.jsonuntuk menambahkan definisi kolom penyematan baru yang dibuat secara otomatis. Contoh berikut menunjukkan definisi untuk kolom penyematan berdasarkan kolom sumber. Contoh ini menggunakan endpoint Agent Platform untuk pembuatan embedding.[ { "name": "SOURCE_COL", "type": "STRING" }, { "fields": [ { "mode": "REPEATED", "name": "result", "type": "FLOAT" }, { "name": "status", "type": "STRING" } ], "generatedColumn": { "generationExpressionInfo": { "asynchronous": true, "generationExpression": "AI.EMBED(SOURCE_COL, connection_id => 'CONNECTION_ID', endpoint => 'ENDPOINT')", "stored": true }, "generatedMode": "GENERATED_ALWAYS" }, "name": "EMBEDDING_COL_NAME", "type": "RECORD" } ]Jika Anda menggunakan model bawaan, bukan endpoint Agent Platform, gunakan sintaksis yang mirip dengan berikut untuk
generationExpression:"AI.EMBED(SOURCE_COL, model => 'MODEL')"Untuk mengetahui informasi tentang nilai yang akan digunakan, lihat deskripsi untuk
SOURCE_COL,EMBEDDING_COL_NAME,CONNECTION_ID,ENDPOINT, danMODELdi tab SQL.Perbarui tabel menggunakan perintah
bq update --table:bq update --table DATASET_ID.TABLE schema.json
Ganti kode berikut:
DATASET_ID: nama set data yang berisi tabel.TABLE: nama tabel yang ingin Anda tambahi kolom penyematan yang dibuat secara otomatis.
Tugas pembuatan embedding di latar belakang akan dimulai segera setelah tabel Anda dibuat atau diubah, atau setelah Anda memperbarui data di kolom sumber.
Untuk melacak progres pembuatan sematan, Anda dapat menggunakan kueri yang mirip dengan berikut ini:
SELECT
COUNT(*) AS total_num_rows,
COUNTIF(description_embedding IS NOT NULL
AND description_embedding.status = '') AS total_num_generated_embeddings
FROM
PROJECT_ID.DATASET_ID.TABLE;
Setelah memiliki tabel dengan penyematan, Anda dapat membuat indeks vektor pada kolom STRUCT yang berisi penyematan yang dibuat secara otomatis.
Contoh
Misalnya, Anda adalah retailer besar yang menjual banyak produk berbeda. Anda memiliki tabel nama dan deskripsi produk dan ingin membantu pelanggan menemukan produk yang mereka cari. Kueri berikut menunjukkan cara menyiapkan pembuatan embedding otonom untuk membantu penelusuran semantik deskripsi produk Anda.
Pertama, buat set data:
CREATE SCHEMA mydataset;
Selanjutnya, buat tabel dengan pengaktifan pembuatan embedding mandiri untuk menyimpan
informasi produk Anda. Kolom yang dibuat secara otomatis disebut
description_embedding dan didasarkan pada kolom description.
# Create a table of products and descriptions with a generated embedding column.
CREATE TABLE mydataset.products (
name STRING,
description STRING,
description_embedding STRUCT<result ARRAY<FLOAT64>, status STRING>
GENERATED ALWAYS AS (
AI.EMBED(description, connection_id => 'us.example_connection',
endpoint => 'text-embedding-005')
# Alternatively, you can use the syntax for a built-in model.
# AI.EMBED(description, model => 'embeddinggemma-300m')
) STORED OPTIONS( asynchronous = TRUE )
);
Kueri berikut akan menyisipkan beberapa nama dan deskripsi produk ke dalam tabel.
Anda tidak menentukan nilai untuk description_embedding karena nilai tersebut dibuat
secara otomatis.
# Insert product descriptions into the table.
# The description_embedding column is automatically updated.
INSERT INTO mydataset.products (name, description) VALUES
("Lounger chair", "A comfortable chair for relaxing in."),
("Super slingers", "An exciting board game for the whole family."),
("Encyclopedia set", "A collection of informational books.");
Anda dapat secara opsional membuat indeks vektor pada tabel untuk mempercepat penelusuran.
Indeks vektor memerlukan lebih dari tiga baris, sehingga kueri berikut mengasumsikan
bahwa Anda telah memasukkan data tambahan. Setiap kali Anda menyisipkan data, kolom
description_embedding akan otomatis diperbarui.
CREATE VECTOR INDEX my_index
ON mydataset.products(description_embedding)
OPTIONS(index_type = 'IVF');
Terakhir, Anda dapat menggunakan
fungsi AI.SEARCH
untuk melakukan penelusuran semantik pada produk Anda untuk mencari mainan yang menyenangkan:
# Search for products that are fun to play with.
SELECT base.name, base.description, distance
FROM AI.SEARCH(TABLE mydataset.products, 'description', "A really fun toy");
/*------------------+----------------------------------------------+----------------------+
| name | description | distance |
+------------------+----------------------------------------------+----------------------+
| Super slingers | An exciting board game for the whole family. | 0.80954913893618929 |
| Lounger chair | A comfortable chair for relaxing in. | 0.938933930620146 |
| Encyclopedia set | A collection of informational books. | 1.1119297739353384 |
+------------------+----------------------------------------------+----------------------*/
Embedding yang dihasilkan dari ObjectRef kolom
Anda dapat menambahkan kolom embedding yang dihasilkan untuk kolom ObjectRef dalam tabel.
Contoh berikut menunjukkan cara membuat tabel dengan kolom ObjectRef, lalu menambahkan kolom penyematan yang dihasilkan untuk kolom tersebut:
# Create a table with ObjectRef columns.
CREATE TABLE mydataset.images AS
SELECT
REGEXP_EXTRACT(ref.uri, r'.*/(.*).jpg$') AS name,
ref
FROM mydataset.object_table;
# Add a generated embedding column for the ObjectRef column.
ALTER TABLE mydataset.images
ADD COLUMN image_embedding STRUCT<result ARRAY<FLOAT64>, status STRING>
GENERATED ALWAYS AS (
AI.EMBED(
ref,
connection_id => "us.my_connection",
endpoint => "multimodalembedding@001")
)
STORED OPTIONS (asynchronous = true);
Mendapatkan informasi tentang kolom embedding yang dibuat secara otomatis
Untuk memverifikasi bahwa kolom adalah kolom penyematan yang dibuat secara otomatis, kueri
tampilan
INFORMATION_SCHEMA.COLUMNS.
Kueri berikut menampilkan informasi tentang semua kolom sematan yang dibuat secara otomatis:
SELECT *
FROM PROJECT_ID.DATASET_ID.INFORMATION_SCHEMA.COLUMNS
WHERE is_generated = 'ALWAYS';
Kolom generation_expression menunjukkan panggilan ke fungsi AI.EMBED
yang digunakan untuk membuat embedding di kolom.
Menggunakan pemesanan Anda sendiri
Secara default, BigQuery menggunakan slot on-demand untuk menangani pemrosesan yang diperlukan untuk mempertahankan kolom embedding yang dihasilkan. Untuk memastikan performa yang dapat diprediksi dan konsisten, Anda dapat membuat reservasi secara opsional dan menetapkan job_type ke BACKGROUND. Jika ada reservasi latar belakang, BigQuery akan menggunakannya untuk mempertahankan kolom sematan yang dihasilkan.
Kuota
Saat Anda menggunakan endpoint Agent Platform untuk pembuatan embedding dengan
menentukan parameter endpoint dalam fungsi AI.EMBED,
BigQuery akan mengirimkan permintaan ke Agent Platform untuk membuat
embedding. Permintaan ini tunduk pada kuota untuk
Agent Platform. Kuota untuk
permintaan per menit untuk model penyematan Anda secara langsung memengaruhi throughput
tugas pembuatan penyematan di latar belakang. Jika pembuatan sematan lambat, minta batas kuota yang lebih tinggi untuk Platform Agen dengan mengikuti petunjuk di Meminta kuota yang lebih tinggi. Jika
Anda menentukan parameter model dalam fungsi AI.EMBED, sematan akan
dibuat dalam BigQuery dan tidak ada permintaan yang dikirim ke
Agent Platform, sehingga kuota Agent Platform tidak berlaku.
Pemecahan masalah
Kolom sematan yang dihasilkan berisi dua kolom: result dan status.
Jika terjadi error saat BigQuery mencoba membuat penyematan untuk baris tertentu dalam tabel Anda, kolom result akan menjadi NULL dan kolom status akan menjelaskan error tersebut. Misalnya, jika kolom sumber adalah NULL, maka sematan result juga NULL dan statusnya adalah NULL value is not supported for embedding generation.
Error yang lebih parah dapat menghentikan pembuatan sematan. Dalam hal ini, Anda dapat
mengirim kueri ke kolom async_generation_status di
tampilan INFORMATION_SCHEMA.COLUMNS
untuk mengidentifikasi error pemblokiran.
Error pemblokiran dapat mencakup hal berikut:
- Error izin ditolak
- Error tidak ditemukan
- Error endpoint model penyematan yang tidak didukung
- Error Vertex AI API tidak diaktifkan
Setelah tugas pembuatan sematan berikutnya berhasil, kolom async_generation_status
akan dihapus.
Kueri berikut menunjukkan cara memeriksa error pemblokiran:
SELECT
column_name,
async_generation_status
FROM
mydataset.INFORMATION_SCHEMA.COLUMNS
WHERE
table_name = 'images';
Jika kolom image_embedding memiliki error pemblokiran, hasilnya akan mirip dengan
berikut ini:
[
{
"column_name": "image_embedding",
"async_generation_status": {
"blocking_error": {
"message": "<service_account> does not have the permission to access resources used by AI.EMBED. Please follow https://cloud.google.com/bigquery/docs/permissions-for-ai-functions to set up permissions.",
...
}
}
}
]
Anda juga dapat membuat kueri
tampilan INFORMATION_SCHEMA.JOBS
untuk tugas latar belakang dan melihat informasi di kolom error_result.
ID tugas dari tugas penyematan latar belakang diawali dengan gc_. Misalnya,
kueri berikut mengekstrak semua tugas latar belakang yang hasil errornya bukan
NULL:
SELECT * FROM `region-REGION.INFORMATION_SCHEMA.JOBS` j
WHERE EXISTS (
SELECT 1
FROM unnest(j.referenced_tables) t
WHERE
j.project_id = 'PROJECT_ID'
AND t.dataset_id = 'DATASET_ID'
AND t.table_id = 'TABLE'
)
AND starts_with(job_id, 'gc')
AND error_result IS NOT NULL
ORDER BY j.creation_time DESC;
Melacak biaya
Biaya pembuatan embedding otonom termasuk dalam kategori berikut.
Biaya DML latar belakang BigQuery
Embedding yang dihasilkan ditulis ke tabel Anda menggunakan tugas DML latar belakang. Secara default, BigQuery menggunakan slot on-demand untuk menangani tugas ini. Project tabel ditagih sesuai dengan model penagihan sesuai permintaan DML.
Atau, untuk memastikan performa yang dapat diprediksi dan konsisten, Anda dapat
membuat reservasi
dan menyetel job_type ke BACKGROUND. Jika ada reservasi latar belakang, BigQuery akan menggunakannya untuk menjalankan tugas DML latar belakang. Selain itu, reservasi latar belakang akan ditagih untuk penggunaan waktu slot dari tugas DML latar belakang.
Biaya Gemini Enterprise Agent Platform
Pembuatan sematan otonom mengirimkan permintaan ke Gemini Enterprise Agent Platform, yang dapat menimbulkan biaya. Untuk melacak biaya Agent Platform yang dikeluarkan oleh tugas embedding latar belakang, ikuti langkah-langkah berikut:
- Lihat laporan penagihan Anda di Penagihan Cloud.
Gunakan filter untuk menyaring hasil.
Untuk layanan, pilih Vertex AI.
Untuk melihat biaya tugas tertentu, filter menurut label.
Tetapkan kunci ke
bigquery_ml_jobdan nilai ke ID tugas tugas penyematan. Semua tugas penyematan latar belakang memiliki awalangc_.
Diperlukan waktu hingga 24 jam agar beberapa biaya muncul di Penagihan Cloud.
Batasan
- Setiap tabel mendukung paling banyak satu kolom sematan yang dibuat secara otomatis.
- Operasi DML serentak dapat menyebabkan penundaan dan kegagalan sementara dalam pembuatan sematan. Untuk performa yang lebih baik dan mengurangi biaya, sebaiknya masukkan data dalam batch dan hindari pembaruan DML yang sering.
- Jika Anda menggunakan API streaming lama untuk menyerap data, mungkin ada beberapa penundaan sebelum pembuatan embedding dimulai.
- Saat menggunakan BigQuery Storage Write API (gRPC), tugas pembuatan sematan di latar belakang dapat gagal jika tugas penulisan streaming berjalan secara bersamaan. Jika hal ini terjadi, kuota Agent Platform dan biaya DML latar belakang akan terbuang. Penggunaan Storage Write API (gRPC) juga menyebabkan tugas pembuatan embedding serentak pada tabel, tetapi hal ini ditangani oleh BigQuery dan tidak ada kuota Agent Platform atau biaya DML latar belakang yang terbuang.
- Untuk throughput yang lebih tinggi di endpoint jarak jauh Agent Platform, sebaiknya gunakan model embedding teks daripada model Gemini. Untuk mengetahui informasi selengkapnya, lihat Kuota.
- Tidak ada indikasi bahwa kolom dibuat secara otomatis saat Anda
melihat skema tabel menggunakan konsol Google Cloud
atau kolom
ddldari tampilanINFORMATION_SCHEMA.TABLES. - Jika Anda membuat salinan, clone, atau snapshot tabel yang memiliki kolom sematan yang dihasilkan, hanya data yang disalin. Konfigurasi pembuatan tidak berlaku untuk tabel baru, dan pembaruan pada kolom sumber tabel baru tidak akan menghasilkan sematan baru.
- Jika Anda memulihkan tabel yang mengaktifkan pembuatan sematan mandiri dari snapshot, konfigurasi pembuatan sematan tidak akan dipulihkan.
- Saat menggunakan BigQuery API, Anda hanya dapat menentukan properti
generatedColumnsaat membuat kolom baru. Anda tidak dapat menambahkan, memperbarui, atau menghapus propertigeneratedColumnpada kolom yang ada. Setelah Anda membuat kolom embedding yang dihasilkan, batasan berikut berlaku:
- Anda tidak dapat menghapus atau mengganti nama kolom sumber, tetapi Anda tetap dapat menghapus atau mengganti nama kolom sematan yang dihasilkan. Jika Anda menghapus kolom penyematan, Anda dapat menghapus atau mengganti nama kolom sumber.
- Anda tidak dapat mengubah jenis data kolom sumber atau kolom sematan yang dihasilkan.
Anda tidak dapat menentukan nilai default untuk kolom penyematan yang dibuat secara otomatis.
Anda tidak dapat menulis langsung ke kolom embedding yang dihasilkan menggunakan metode berikut:
- DML
- Penulisan streaming
bq insertbq loadbq copy -a
Tabel dengan kolom sematan yang dibuat tidak mendukung kebijakan keamanan tingkat kolom apa pun, seperti tag kebijakan.
Saat Anda memanggil fungsi penelusuran, seperti
VECTOR_SEARCHatauAI.SEARCH, baris dengan embedding yang tidak ada dalam tabel dasar akan dilewati selama penelusuran.Anda tidak dapat membuat indeks vektor berpartisi pada tabel yang mengaktifkan pembuatan sematan otonom.
Jika Anda membuat indeks vektor pada kolom embedding yang dibuat secara otomatis, pelatihan indeks akan dimulai setelah setidaknya 80% baris membuat embedding. Anda dapat memeriksa progres pembuatan sematan dengan mengikuti langkah-langkah berikut:
Buat kueri persentase embedding di tabel Anda yang telah dibuat:
SELECT COUNTIF(description_embedding IS NOT NULL AND description_embedding.status = '') * 100.0 / COUNT(*) AS percent FROM PROJECT_ID.DATASET_ID.TABLE;
Langkah berikutnya
- Pelajari lebih lanjut cara membuat dan mengelola indeks vektor.
- Lihat Pengantar penelusuran vektor.