Tutorial ini menunjukkan cara menyesuaikan model yang memperkaya kalimat tertentu dengan memberikan kata-kata yang lebih tepat atau menambahkan kualifikasi tanpa mengubah makna keseluruhan. Anda membuat
model jarak jauh
yang mereferensikan
model Gemini Enterprise Agent Platform,
menggunakan
penyesuaian yang diawasi,
lalu mengevaluasi model yang disesuaikan dengan
fungsi ML.EVALUATE.
Penyesuaian membantu Anda menyesuaikan model Agent Platform yang dihosting, seperti saat perilaku yang diharapkan sulit ditentukan dalam perintah, atau saat perintah tidak secara konsisten menghasilkan hasil yang diharapkan. 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 dasar yang diberikan.
Tujuan
- Membuat set data.
- Impor data pelatihan dan evaluasi ke dalam tabel.
- Buat model dasar.
- Mengevaluasi performa model dasar.
- Buat model yang di-tuning.
- Mengevaluasi performa model yang di-tune.
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 model.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Untuk informasi selengkapnya, lihat referensi berikut:
Sebelum memulai
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 bawaan 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.
-
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.
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 Datasets.
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 publik
task955_wiki_auto_style_transfer
dari Hugging Face.
Buka Cloud Shell.
Di Cloud Shell, buat 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 load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_train wiki_auto_style_transfer_train.jsonl input:STRING,output:STRING bq load --replace=true --source_format=NEWLINE_DELIMITED_JSON bqml_tutorial.wiki_auto_style_transfer_valid wiki_auto_style_transfer_valid.jsonl input:STRING,output:STRING
Melihat data pelatihan
Data pelatihan input adalah perintah yang meminta model untuk menguraikan kalimat tanpa mengubah makna umumnya. Setiap perintah menyertakan set yang sama dari dua contoh positif dan dua contoh negatif, beserta kalimat yang akan ditulis ulang. Outputnya adalah kalimat yang lebih detail yang dihasilkan oleh model.
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut untuk melihat contoh data input dan output:
SELECT * FROM bqml_tutorial.wiki_auto_style_transfer_train LIMIT 1;
Hasilnya mirip dengan berikut ini:
+-----------------------------------------------+-------------------------------------------------+ | input | output | +-----------------------------------------------+-------------------------------------------------+ | Definition: In this task, we ask you to | Merton College ( in full : The House or College | | elaborate the sentence without changing its | of Scholars of Merton in the University of | | general meaning. You can do so by explaining | Oxford ) is one of the constituent colleges of | | further the input sentence, using more | the University of Oxford in England . | | precise wording, adding qualifiers and | | | auxiliary information etc. | | | | | | Positive Example 1 - | | | Input: The Inheritance Cycle is a series of | | | fantasy books written by Christopher Paolini. | | | Output: The Inheritance Cycle is a tetralogy | | | of young adult high fantasy novels written by | | | American author Christopher Paolini. | | | | | | Positive Example 2 - | | | Input: The Greco-Roman or Graeco-Roman world, | | | refers to geographical regions and countries | | | who had the language , culture , government | | | or religion of the ancient Greeks and Romans. | | | Output: The Greco-Roman world , Greco-Roman | | | culture , or the term Greco-Roman (spelled | | | Graeco-Roman in the United Kingdom and the | | | Commonwealth), when used as an adjective , as | | | understood by modern scholars and writers , | | | refers to those geographical regions and | | | countries that culturally ( and so | | | historically ) were directly , long-term , | | | and intimately influenced by the language , | | | culture , government and religion of the | | | ancient Greeks and Romans. | | | | | | Negative Example 1 - | | | Input: Boryla, an American football | | | quarterback, did not participate in the 1952 | | | playoffs. | | | Output: Boryla was not in the 1952 playoffs. | | | | | | Negative Example 2 - | | | Input: The wild population in China decreased | | | to around 2,000 in 2005. | | | Output: By 2005, the wild population | | | decreased to about 2,000. | | | | | | Now complete the following example - | | | Input: Merton College is one of the colleges | | | of the University of Oxford . | | | Output: | | +-----------------------------------------------+-------------------------------------------------+
Membuat model dasar
Membuat model jarak jauh melalui model Gemini:
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.5-pro');
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
Untuk melihat performa model jarak jauh pada data evaluasi tanpa penyesuaian apa pun, jalankan
fungsi AI.GENERATE_TEXT:
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 ));
Hasilnya mirip dengan berikut ini:
+-------------------------------------------------+-------------------------------------------------+ | result | ground_truth | +-------------------------------------------------+-------------------------------------------------+ | In mathematics, and more specifically in graph | In mathematics , and more specifically in graph | | theory, a graph is an abstract structure that | theory , a graph is a structure amounting to a | | is used to model pairwise relationships between | set of objects in which some pairs of the | | objects. A graph in this context is made up of | objects are in some sense " related " . | | vertices (also called nodes or points) and | | | edges (also called links or lines) that connect | | | pairs of vertices. | | | ... | ... | +-------------------------------------------------+-------------------------------------------------+
Meskipun model dasar menghasilkan teks yang secara akurat mencerminkan fakta yang diberikan dalam konten kebenaran dasar, gaya teks terkadang berbeda. Model dasar cenderung menghasilkan elaborasi yang lebih panjang daripada kebenaran nyata yang diinginkan.
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
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));
Hasilnya mirip dengan berikut ini:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.32571814014498979 | 0.45752569962901607 | 0.557224161991254 | 0.49205029983307907 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Skor ini memberikan cara kuantitatif untuk mengukur performa. Bagian berikutnya menunjukkan cara membuat model yang di-tune dan membandingkan performa model tersebut dengan model dasar.
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.5-pro', 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-tuning
Untuk melihat performa model yang disesuaikan pada data evaluasi, jalankan fungsi AI.GENERATE_TEXT:
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 ));
Model yang disesuaikan menghasilkan teks yang gaya penulisannya jauh lebih mirip dengan konten kebenaran nyata.
Mengevaluasi model yang di-tuning
Untuk melihat perbandingan respons model yang disesuaikan dengan respons ideal, gunakan
fungsi ML.EVALUATE:
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));
Hasilnya mirip dengan berikut ini:
+---------------------+---------------------+-------------------------------------------+--------------------------------------------+ | bleu4_score | rouge-l_precision | rouge-l_recall | rouge-l_f1_score | evaluation_status | +---------------------+---------------------+---------------------+---------------------+--------------------------------------------+ | 0.44878025403825506 | 0.57236062510796448 | 0.638794269320597 | 0.59591519400141835 | { | | | | | | "num_successful_rows": 176, | | | | | | "num_total_rows": 176 | | | | | | } | +---------------------+---------------------+ --------------------+---------------------+--------------------------------------------+
Model yang disesuaikan menunjukkan peningkatan performa yang signifikan dan mengungguli model dasar pada semua metrik evaluasi.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Menghapus project
Menghapus Google Cloud project:
gcloud projects delete PROJECT_ID
Menghapus resource satu per satu
Jika Anda ingin menggunakan kembali project, hapus resource yang Anda buat untuk tutorial ini.
Buka halaman BigQuery.
Hapus set data
bqml_tutorial. Menghapus set data juga akan menghapus model dan tabel.Di panel Explorer, luaskan project Anda dan klik Set Data.
Di daftar Set data, klik set data
bqml_tutorial.Di panel detail, klik Hapus.
Pada dialog Hapus set data, klik Hapus.
Langkah berikutnya
- Pelajari lebih lanjut fungsi
ML.EVALUATE. - Pelajari lebih lanjut fungsi
AI.GENERATE_TEXT. - Tinjau opsi penyesuaian yang diawasi untuk model jarak jauh.