Menangani error kuota dengan memanggil ML.GENERATE_EMBEDDING secara berulang
Tutorial ini menunjukkan cara menggunakan prosedur tersimpan publik BigQuery
bqutil.procedure.bqml_generate_embeddings untuk melakukan iterasi
panggilan ke
ML.GENERATE_EMBEDDING fungsi.
Dengan memanggil fungsi secara berulang, Anda dapat mengatasi error yang dapat dicoba ulang yang
terjadi karena melebihi
kuota dan batas yang berlaku untuk
fungsi tersebut.
Untuk meninjau kode sumber untuk bqutil.procedure.bqml_generate_embeddings
prosedur tersimpan di GitHub, lihat
bqml_generate_embeddings.sqlx.
Untuk mengetahui informasi selengkapnya tentang parameter dan penggunaan prosedur tersimpan, lihat file
README.
Tutorial ini memandu Anda melalui tugas-tugas berikut:
- Membuat
model jarak jauh di atas model
text-embedding-005model. - Melakukan iterasi panggilan ke fungsi
ML.GENERATE_EMBEDDING, menggunakan model jarak jauh dan tabel data publikbigquery-public-data.bbc_news.fulltextdengan prosedur tersimpanbqutil.procedure.bqml_generate_embeddings.
Izin yang diperlukan
Untuk menjalankan tutorial ini, Anda memerlukan peran Identity and Access Management (IAM) berikut:
- Membuat dan menggunakan set data, koneksi, dan model BigQuery: BigQuery Admin (
roles/bigquery.admin). - Memberikan izin ke akun layanan koneksi: Project IAM Admin (
roles/resourcemanager.projectIamAdmin).
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk melakukan tugas dalam dokumen ini. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
- Membuat set data:
bigquery.datasets.create - Membuat, mendelegasikan, dan menggunakan koneksi:
bigquery.connections.* - Menetapkan koneksi default:
bigquery.config.* - Menetapkan izin akun layanan:
resourcemanager.projects.getIamPolicydanresourcemanager.projects.setIamPolicy - Membuat model dan menjalankan inferensi:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen yang dapat ditagih berikut Cloud de Confiance by S3NS:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.
Untuk mengetahui informasi selengkapnya tentang harga BigQuery, lihat Harga BigQuery.
Untuk mengetahui informasi selengkapnya tentang harga Platform Agen, lihat Harga Platform Agen.
Sebelum memulai
-
Di Cloud de Confiance konsol, pada halaman pemilih project, pilih atau buat Cloud de Confiance project.
Peran yang diperlukan untuk memilih atau membuat project
- Memilih project: Memilih project tidak memerlukan peran IAM tertentu Anda dapat memilih project mana pun yang telah diberi peran.
-
Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator
(
roles/resourcemanager.projectCreator), yang berisi izinresourcemanager.projects.create. Pelajari cara memberikan peran.
-
Pastikan penagihan diaktifkan untuk Cloud de Confiance project Anda.
-
Aktifkan BigQuery, BigQuery Connection, dan Agent Platform API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.
Membuat set data
Buat set data BigQuery untuk menyimpan model dan data contoh Anda:
Di Cloud de Confiance konsol, buka halaman BigQuery.
Di panel Explorer, klik nama project Anda.
Klik View actions > Create dataset.
Di halaman Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
target_dataset.Untuk Location type, pilih Multi-region, lalu pilih US (multiple regions in United States).
Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
Membuat model pembuatan embedding teks
Buat model jarak jauh yang merepresentasikan model text-embedding-005 Platform Agen yang dihosting:
Di Cloud de Confiance konsol, buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE MODEL `target_dataset.embedding_model` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'text-embedding-005');
Kueri memerlukan waktu beberapa detik untuk diselesaikan, setelah itu model
embeddingakan muncul di set datasampledi panel Explorer. Karena kueri menggunakan pernyataanCREATE MODELuntuk membuat model, tidak akan ada hasil kueri.
Menjalankan prosedur tersimpan
Jalankan prosedur tersimpan bqutil.procedure.bqml_generate_embeddings, yang melakukan iterasi panggilan ke fungsi ML.GENERATE_EMBEDDING menggunakan model target_dataset.embedding_model dan tabel data publik bigquery-public-data.bbc_news.fulltext:
Di Cloud de Confiance konsol, buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CALL `bqutil.procedure.bqml_generate_embeddings`( "bigquery-public-data.bbc_news.fulltext", -- source table "PROJECT_ID.target_dataset.news_body_embeddings", -- destination table "PROJECT_ID.target_dataset.embedding_model", -- model "body", -- content column ["filename"], -- key columns '{}' -- optional arguments encoded as a JSON string );
Ganti
PROJECT_IDdengan project ID project yang Anda gunakan untuk tutorial ini.Prosedur tersimpan membuat tabel
target_dataset.news_body_embeddingsuntuk berisi output fungsiML.GENERATE_EMBEDDING.Setelah kueri selesai berjalan, pastikan tidak ada baris dalam tabel
target_dataset.news_body_embeddingsyang berisi error yang dapat dicoba ulang. Di editor kueri, jalankan pernyataan berikut:SELECT * FROM `target_dataset.news_body_embeddings` WHERE ml_generate_embedding_status LIKE '%A retryable error occurred%';
Kueri menampilkan pesan
No data to display.
Pembersihan
- Di Cloud de Confiance konsol, buka halaman Manage resources.
- Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.