Menggunakan penyesuaian dan evaluasi untuk meningkatkan performa model
Dokumen ini menunjukkan cara membuat model jarak jauh BigQuery ML yang merujuk pada
model gemini-2.0-flash-001 Gemini Enterprise Agent Platform.
Kemudian, Anda menggunakan
penyesuaian yang diawasi
untuk menyesuaikan model dengan data pelatihan baru, lalu mengevaluasi model
dengan
fungsi ML.EVALUATE.
Penyesuaian dapat membantu Anda mengatasi skenario saat Anda perlu menyesuaikan model Platform Agen yang dihosting, seperti saat perilaku model yang diharapkan sulit didefinisikan secara ringkas dalam perintah, atau saat perintah tidak menghasilkan hasil yang diharapkan secara cukup konsisten. Penyesuaian yang diawasi juga memengaruhi model dengan cara berikut:
- Mengarahkan model untuk menampilkan gaya respons tertentu—misalnya, lebih ringkas atau lebih panjang.
- Mengajarkan perilaku baru kepada model—misalnya, merespons perintah sebagai persona tertentu.
- Menyebabkan model memperbarui dirinya sendiri dengan informasi baru.
Dalam tutorial ini, tujuannya adalah membuat model menghasilkan teks yang gaya dan kontennya sedekat mungkin dengan konten kebenaran nyata yang diberikan.
Peran 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 tabel:
bigquery.tables.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.
Sebelum memulai
-
Di konsol Google Cloud , pada halaman pemilih project, pilih atau buat project Google Cloud .
Peran yang diperlukan untuk memilih atau membuat project
- Pilih 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.
-
Verifikasi bahwa penagihan diaktifkan untuk project Google Cloud Anda.
-
Aktifkan BigQuery, BigQuery Connection, Agent Platform API, dan Compute Engine API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
- BigQuery: You incur costs for the queries that you run in BigQuery.
- BigQuery ML: You incur costs for the model that you create and the processing that you perform in BigQuery ML.
- Gemini Enterprise Agent Platform: You incur costs for calls to and
supervised tuning of the
gemini-2.0-flash-001model.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Untuk informasi selengkapnya, lihat referensi berikut:
Membuat set data
Untuk membuat set data BigQuery, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman BigQuery.
Di panel kiri, klik Explorer:

Jika Anda tidak melihat panel kiri, klik Luaskan panel kiri untuk membuka panel.
Di Explorer, luaskan project Anda, lalu klik Set data.
Di halaman Set Data, klik Buat set data.
Di panel Create dataset, lakukan hal berikut:
Untuk Dataset ID, masukkan
bqml_tutorial.Untuk Lokasi data, pilih Amerika Serikat.
Biarkan setelan default yang tersisa seperti apa adanya.
Klik Create dataset.
bq
Untuk membuat set data baru, gunakan
perintah bq mk --dataset.
Buat set data bernama
bqml_tutorialdengan lokasi data yang ditetapkan keUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Pastikan set data telah dibuat:
bq ls
API
Panggil metode datasets.insert
dengan resource set data yang ditentukan:
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Membuat tabel pengujian
Buat tabel data pelatihan dan evaluasi berdasarkan set data task955_wiki_auto_style_transfer publik dari Hugging Face.
Buka Cloud Shell.
Di Cloud Shell, jalankan perintah berikut untuk membuat tabel data pengujian dan evaluasi:
python3 -m pip install pandas pyarrow fsspec huggingface_hub python3 -c "import pandas as pd; df_train = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/train-00000-of-00001.parquet').drop('id', axis=1); df_train['output'] = [x[0] for x in df_train['output']]; df_train.to_json('wiki_auto_style_transfer_train.jsonl', orient='records', lines=True);" python3 -c "import pandas as pd; df_valid = pd.read_parquet('hf://datasets/Lots-of-LoRAs/task955_wiki_auto_style_transfer/data/valid-00000-of-00001.parquet').drop('id', axis=1); df_valid['output'] = [x[0] for x in df_valid['output']]; df_valid.to_json('wiki_auto_style_transfer_valid.jsonl', orient='records', lines=True);" bq rm -t bqml_tutorial.wiki_auto_style_transfer_train bq rm -t bqml_tutorial.wiki_auto_style_transfer_valid bq load --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_train wiki_auto_style_transfer_train.jsonl input:STRING,output:STRING bq load --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_valid wiki_auto_style_transfer_valid.jsonl input:STRING,output:STRING
Membuat model dasar
Buat
model jarak jauh
melalui model gemini-2.0-flash-001 Gemini Enterprise Agent Platform.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut untuk membuat model jarak jauh:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_baseline` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT ='gemini-2.0-flash-001');
Kueri memerlukan waktu beberapa detik untuk diselesaikan, setelah itu model
gemini_baselineakan muncul di set databqml_tutorialdi panel Explorer. Karena kueri menggunakan pernyataanCREATE MODELuntuk membuat model, tidak akan ada hasil kueri.
Memeriksa performa model dasar pengukuran
Jalankan
fungsi AI.GENERATE_TEXT
dengan model jarak jauh untuk melihat performanya pada data evaluasi tanpa penyesuaian apa pun.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
Jika Anda memeriksa data output dan membandingkan nilai
resultdanground_truth, Anda akan melihat bahwa meskipun model dasar menghasilkan teks yang secara akurat mencerminkan fakta yang diberikan dalam konten kebenaran faktual, gaya teksnya cukup berbeda.
Mengevaluasi model dasar
Untuk melakukan evaluasi performa model yang lebih mendetail, gunakan
fungsi ML.EVALUATE.
Fungsi ini menghitung metrik model yang mengukur akurasi dan kualitas
teks yang dihasilkan, untuk melihat perbandingan respons model dengan respons
yang ideal.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_baseline`, ( SELECT input AS input_text, output AS output_text FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
Outputnya akan terlihat mirip seperti berikut:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+
| bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status |
+---------------------+---------------------+---------------------+---------------------+--------------------------------------------+
| 0.23317359667074181 | 0.37809145226740043 | 0.45902937167791508 | 0.40956844061733139 | { |
| | | | | "num_successful_rows": 176, |
| | | | | "num_total_rows": 176 |
| | | | | } |
+---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Anda dapat melihat bahwa performa model dasar pengukuran tidak buruk, tetapi kesamaan teks yang dihasilkan dengan kebenaran nyata rendah, berdasarkan metrik evaluasi. Hal ini menunjukkan bahwa penyesuaian yang diawasi perlu dilakukan untuk melihat apakah Anda dapat meningkatkan performa model untuk kasus penggunaan ini.
Membuat model yang disesuaikan
Buat model jarak jauh yang sangat mirip dengan model yang Anda buat di
Membuat model, tetapi kali ini tentukan
klausa AS SELECT
untuk memberikan data pelatihan guna menyesuaikan model.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut untuk membuat model jarak jauh:
CREATE OR REPLACE MODEL `bqml_tutorial.gemini_tuned` REMOTE WITH CONNECTION DEFAULT OPTIONS ( endpoint = 'gemini-2.0-flash-001', max_iterations = 500, data_split_method = 'no_split') AS SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_train`;
Kueri memerlukan waktu beberapa menit untuk diselesaikan, setelah itu model
gemini_tunedakan muncul di set databqml_tutorialdi panel Explorer. Karena kueri menggunakan pernyataanCREATE MODELuntuk membuat model, tidak akan ada hasil kueri.
Memeriksa performa model yang di-tune
Jalankan fungsi AI.GENERATE_TEXT untuk melihat performa model yang disesuaikan pada data evaluasi.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
SELECT result, ground_truth FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS ground_truth FROM `bqml_tutorial.wiki_auto_style_transfer_valid` LIMIT 10 ));
Jika Anda memeriksa data output, Anda akan melihat bahwa model yang di-tuning menghasilkan teks yang gaya penulisannya jauh lebih mirip dengan konten kebenaran nyata.
Mengevaluasi model yang telah di-tune
Gunakan fungsi ML.EVALUATE untuk melihat perbandingan respons model yang di-tuning dengan respons ideal.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
SELECT * FROM ML.EVALUATE( MODEL `bqml_tutorial.gemini_tuned`, ( SELECT input AS prompt, output AS label FROM `bqml_tutorial.wiki_auto_style_transfer_valid` ), STRUCT('text_generation' AS task_type));
Outputnya akan terlihat mirip seperti berikut:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+
| bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status |
+---------------------+---------------------+---------------------+---------------------+--------------------------------------------+
| 0.416868792119966 | 0.642001000843349 | 0.55910008048151372 | 0.5907226262084847 | { |
| | | | | "num_successful_rows": 176, |
| | | | | "num_total_rows": 176 |
| | | | | } |
+---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Anda dapat melihat bahwa meskipun set data pelatihan hanya menggunakan 1.408 contoh, ada peningkatan performa yang signifikan seperti yang ditunjukkan oleh metrik evaluasi yang lebih tinggi.
Pembersihan
- Di konsol Google Cloud , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.