Menangani error kuota dengan memanggil ML.GENERATE_TEXT secara berulang
Tutorial ini menunjukkan cara menggunakan prosedur tersimpan publik
bqutil.procedure.bqml_generate_text BigQuery untuk melakukan iterasi
melalui panggilan ke
fungsi ML.GENERATE_TEXT.
Memanggil fungsi secara berulang memungkinkan Anda mengatasi error yang dapat dicoba ulang yang terjadi karena melampaui kuota dan batas yang berlaku untuk fungsi tersebut.
Untuk meninjau kode sumber bqutil.procedure.bqml_generate_text
prosedur tersimpan di GitHub, lihat
bqml_generate_text.sqlx.
Untuk mengetahui informasi selengkapnya tentang parameter dan penggunaan prosedur tersimpan, lihat
file README.
Tutorial ini memandu Anda melakukan tugas-tugas berikut:
- Membuat
model jarak jauh melalui model
gemini-2.0-flash. - Melakukan iterasi melalui panggilan ke fungsi
ML.GENERATE_TEXT, menggunakan model jarak jauh dan tabel data publikbigquery-public-data.bbc_news.fulltextdengan prosedur tersimpanbqutil.procedure.bqml_generate_text.
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:
Admin BigQuery (
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
- Buat set data:
bigquery.datasets.create - Membuat, mendelegasikan, dan menggunakan koneksi:
bigquery.connections.* - Menetapkan koneksi default:
bigquery.config.* - Tetapkan izin akun layanan:
resourcemanager.projects.getIamPolicydanresourcemanager.projects.setIamPolicy - Buat model dan jalankan 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 Cloud de Confiance by S3NSyang dapat ditagih berikut:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Vertex AI: You incur costs for calls to the Vertex AI model.
Untuk mengetahui informasi selengkapnya tentang harga BigQuery, lihat harga BigQuery.
Untuk mengetahui informasi selengkapnya tentang harga Vertex AI, lihat Harga Vertex AI.
Sebelum memulai
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Membuat set data
Buat set data BigQuery untuk menyimpan model dan data sampel Anda:
Di konsol Cloud de Confiance , 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
sample.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 teks
Buat model jarak jauh yang merepresentasikan model gemini-2.0-flash Vertex AI yang dihosting:
Di konsol Cloud de Confiance , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE MODEL `sample.generate_text` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.0-flash');
Kueri memerlukan waktu beberapa detik untuk diselesaikan, setelah itu model
generate_textakan muncul di set datasampledi panel Explorer. Karena kueri tersebut menggunakan pernyataanCREATE MODELuntuk membuat model, tidak akan ada hasil kueri.
Jalankan prosedur tersimpan
Jalankan prosedur tersimpan bqutil.procedure.bqml_generate_text,
yang melakukan iterasi melalui panggilan ke fungsi ML.GENERATE_TEXT
menggunakan model sample.generate_text dan tabel data publik
bigquery-public-data.bbc_news.fulltext:
Di konsol Cloud de Confiance , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CALL `bqutil.procedure.bqml_generate_text`( "bigquery-public-data.bbc_news.fulltext", -- source table "PROJECT_ID.sample.news_generated_text", -- destination table "PROJECT_ID.sample.generate_text", -- model "body", -- content column ["filename"], -- key columns '{}' -- optional arguments );
Ganti
PROJECT_IDdengan project ID project yang Anda gunakan untuk tutorial ini.Prosedur tersimpan membuat tabel
sample.news_generated_textuntuk berisi output fungsiML.GENERATE_TEXT.Setelah kueri selesai berjalan, konfirmasi bahwa tidak ada baris dalam tabel
sample.news_generated_textyang berisi error yang dapat dicoba lagi. Di editor kueri, jalankan pernyataan berikut:SELECT * FROM `sample.news_generated_text` WHERE ml_generate_text_status LIKE '%A retryable error occurred%';
Kueri menampilkan pesan
No data to display.
Pembersihan
- In the Cloud de Confiance console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.