Membuat teks menggunakan model terbuka Gemma dan fungsi AI.GENERATE_TEXT
Tutorial ini menunjukkan cara membuat
model jarak jauh
yang didasarkan pada
model Gemma,
lalu cara menggunakan model tersebut dengan
fungsi AI.GENERATE_TEXT
untuk mengekstrak kata kunci dan melakukan analisis sentimen pada ulasan film dari
tabel publik bigquery-public-data.imdb.reviews.
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). - Men-deploy dan membatalkan deployment model di Vertex AI: Vertex AI Administrator
(
roles/aiplatform.admin).
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 - Men-deploy dan membatalkan deployment model Vertex AI:
aiplatform.endpoints.deployaiplatform.endpoints.undeploy
- 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 Google Cloudyang 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 that's represented by the remote model.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Untuk mengetahui informasi selengkapnya tentang harga BigQuery, lihat harga BigQuery dalam dokumentasi BigQuery.
Model terbuka yang Anda deploy ke Vertex AI dikenai biaya per jam mesin. Artinya, penagihan dimulai segera setelah endpoint disiapkan sepenuhnya, dan berlanjut hingga Anda membatalkan deployment-nya. Untuk mengetahui informasi selengkapnya tentang harga Vertex AI, lihat halaman harga Vertex AI.
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 Pembuat Project
(
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, dan Vertex AI 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 ML Anda.
Konsol
Di konsol Google Cloud , 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
bqml_tutorial.Untuk Location type, pilih Multi-region, lalu pilih US.
Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
bq
Untuk membuat set data baru, gunakan
perintah bq mk --dataset.
Buat set data bernama
bqml_tutorialdengan lokasi data 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 model jarak jauh
Buat model jarak jauh yang merepresentasikan model Vertex AI yang dihosting:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE MODEL `bqml_tutorial.gemma_model` REMOTE WITH CONNECTION DEFAULT OPTIONS ( MODEL_GARDEN_MODEL_NAME = 'publishers/google/models/gemma3@gemma-3-270m-it', MACHINE_TYPE = 'g2-standard-12' );
Kueri memerlukan waktu hingga 20 menit untuk diselesaikan, setelah itu model gemma_model akan muncul di set data bqml_tutorial di panel Explorer. Karena kueri tersebut menggunakan pernyataan CREATE MODEL untuk membuat model, tidak akan ada hasil kueri.
Melakukan ekstraksi kata kunci
Lakukan ekstraksi kata kunci pada ulasan film IMDB dengan menggunakan model jarak jauh dan fungsi AI.GENERATE_TEXT:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut untuk melakukan ekstraksi kata kunci pada 10 ulasan film:
-- This function takes your instruction and wraps it with chat template for -- better output quality. -- This is usually the recommended way when using Gemma instruction-tuned models. CREATE TEMP FUNCTION FormatPromptWithChatTemplate(user_instruction STRING) AS ( CONCAT( '<start_of_turn>user\n', user_instruction, '<end_of_turn>\n<start_of_turn>model\n' ) ); SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT FormatPromptWithChatTemplate( 'Extract the key words from the movie review below: ' || review) AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 100 AS max_output_tokens));
Untuk mengetahui informasi selengkapnya tentang penggunaan template chat dengan Gemma, lihat Pemformatan dan petunjuk sistem Gemma.
Outputnya mirip dengan berikut ini, dengan kolom yang tidak dibuat dihilangkan agar lebih jelas:
+----------------------------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +----------------------------------------------+-------------------------------------------------------+-----+ | Here are some key words from the | | <start_of_turn>user | | | movie review: * **Romance:** | | Extract the key words from | | | "romantic tryst," "elope" * **Comedy:** | | the movie review below: | | | "Contrived Comedy" * **Burglary:** | | Linda Arvidson (as Jennie) | | | "burglar," "rob," "booty" * **Chase:** | | and Harry Solter (as Frank) | | | "chases," "escape" * **Director:** "D.W. | | are enjoying a romantic | | | Griffith" * **Actors:** "Linda Arvidson,"... | | tryst, when in walks her... | | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | <start_of_turn>user | | | movie review: * **Elderbush Gilch:** The | | Extract the key words from | | | name of the movie being reviewed. * | | the movie review below: | | | **Disappointment:** The reviewer's | | This is the second addition | | | overall feeling about the film. * | | to Frank Baum's personally | | | **Dim-witted:** Describes the story | | produced trilogy of Oz | | | line negatively. * **Moronic, sadistic,... | | films. It's essentially ... | | +----------------------------------------------+-------------------------+-----------------------------+-----+Hasilnya mencakup kolom berikut:
result: teks yang dihasilkan.status: status respons API untuk baris yang sesuai. Jika operasi berhasil, nilai ini akan kosong.prompt: prompt yang digunakan untuk analisis sentimen.- Semua kolom dari tabel
bigquery-public-data.imdb.reviews.
Melakukan analisis sentimen
Lakukan analisis sentimen pada ulasan film IMDB menggunakan model jarak jauh dan fungsi AI.GENERATE_TEXT:
Di konsol Google Cloud , buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut untuk melakukan analisis sentimen pada 10 ulasan film:
-- This function takes your instruction and wraps it with chat template for -- better output quality. -- This is usually the recommended way when using Gemma instruction-tuned models. CREATE TEMP FUNCTION FormatPromptWithChatTemplate(user_instruction STRING) AS ( CONCAT( '<start_of_turn>user\n', user_instruction, '<end_of_turn>\n<start_of_turn>model\n' ) ); SELECT * FROM AI.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT FormatPromptWithChatTemplate( 'Analyze the sentiment of the following movie review and classify it as either POSITIVE or NEGATIVE. \nMovie Review: ' || review) AS prompt, * FROM `bigquery-public-data.imdb.reviews` LIMIT 10 ), STRUCT( 0.2 AS temperature, 128 AS max_output_tokens));
Untuk mengetahui informasi selengkapnya tentang penggunaan template chat dengan Gemma, lihat Pemformatan dan petunjuk sistem Gemma.
Outputnya mirip dengan berikut ini, dengan kolom yang tidak dibuat dihilangkan agar lebih jelas:
+-----------------------------+-------------------------+-----------------------------+-----+ | result | status | prompt | ... | +-----------------------------+-------------------------------------------------------+-----+ | **NEGATIVE** | | <start_of_turn>user | | | | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Although Charlie Chaplin | | | | | made some great short | | | | | comedies in the late... | | +-----------------------------+-------------------------+-----------------------------+-----+ | **NEGATIVE** | | <start_of_turn>user | | | | | Analyze the sentiment of | | | | | movie review and classify | | | | | it as either POSITIVE or | | | | | NEGATIVE. Movie Review: | | | | | Opulent sets and sumptuous | | | | | costumes well photographed | | | | | by Theodor Sparkuhl, and... | | +-----------------------------+-------------------------+-----------------------------+-----+Hasilnya mencakup kolom yang sama dengan yang didokumentasikan untuk Melakukan ekstraksi kata kunci.
Batalkan deployment model
Jika Anda memilih untuk tidak menghapus project seperti yang direkomendasikan, Anda harus
membatalkan deployment model Gemma di Vertex AI untuk menghindari
penagihan yang berlanjut untuk model tersebut. BigQuery secara otomatis membatalkan deployment
model setelah periode tidak ada aktivitas tertentu (6,5 jam secara default).
Atau, Anda dapat segera membatalkan deployment model menggunakan
pernyataan ALTER MODEL,
seperti yang ditunjukkan dalam contoh berikut:
ALTER MODEL `bqml_tutorial.gemma_model` SET OPTIONS (deploy_model = false);
Untuk mengetahui informasi selengkapnya, lihat Pembatalan deployment model otomatis atau langsung.
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.