Membuat teks dengan menggunakan model terbuka Gemma dan fungsi ML.GENERATE_TEXT
Tutorial ini menunjukkan cara membuat
model jarak jauh
yang didasarkan pada
model Gemma,
lalu cara menggunakan model tersebut dengan
fungsi ML.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.getIamPolicy
danresourcemanager.projects.setIamPolicy
- Men-deploy dan membatalkan deployment model Vertex AI:
aiplatform.endpoints.deploy
aiplatform.endpoints.undeploy
- Buat model dan jalankan inferensi:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.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
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Men-deploy model Gemma di Vertex AI
Deploy model
gemma-2-27b-it
ke Vertex AI dengan mengikuti petunjuk di
Men-deploy model Model Garden.
Selama deployment, Anda harus memilih Publik (endpoint bersama) sebagai nilai
untuk kolom Akses endpoint dalam alur kerja deployment.
Membuat set data
Buat set data BigQuery untuk menyimpan model ML Anda.
Konsol
Di Google Cloud 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
bqml_tutorial
.Untuk Location type, pilih Multi-region, lalu pilih US (multiple regions in United States).
Jangan ubah setelan default yang tersisa, lalu klik Create dataset.
bq
Untuk membuat set data baru, gunakan perintah bq mk
dengan flag --location
. Untuk daftar lengkap kemungkinan parameter, lihat referensi
perintah bq mk --dataset
.
Buat set data bernama
bqml_tutorial
dengan lokasi data yang ditetapkan keUS
dan deskripsiBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Perintah ini menggunakan pintasan
-d
, bukan flag--dataset
. Jika Anda menghapus-d
dan--dataset
, perintah defaultnya adalah membuat set data.Pastikan set data telah dibuat:
bq ls
API
Panggil metode datasets.insert
dengan resource set data yang ditentukan.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
DataFrame BigQuery
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan BigQuery DataFrames di Panduan memulai BigQuery menggunakan BigQuery DataFrames. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi BigQuery DataFrames.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Membuat model jarak jauh
Buat model jarak jauh yang merepresentasikan model Vertex AI yang dihosting:
Di Google Cloud konsol, buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut:
CREATE OR REPLACE MODEL `bqml_tutorial.gemma_model` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'https://ENDPOINT_REGION-aiplatform.googleapis.com/v1/projects/ENDPOINT_PROJECT_ID/locations/ENDPOINT_REGION/endpoints/ENDPOINT_ID');
Ganti kode berikut:
ENDPOINT_REGION
: region tempat model terbuka di-deploy.ENDPOINT_PROJECT_ID
: project tempat model terbuka di-deploy.ENDPOINT_ID
: ID endpoint HTTPS yang digunakan oleh model terbuka. Anda bisa mendapatkan ID endpoint dengan menemukan model yang terbuka di halaman Prediksi online dan menyalin nilai di kolom ID.
Contoh berikut menunjukkan format endpoint HTTP yang valid:
https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/endpoints/1234
.
Kueri memerlukan waktu beberapa detik untuk diselesaikan, setelah itu model gemma_model
akan muncul di set data bqml_tutorial
di panel Explorer.
Karena kueri 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 ML.GENERATE_TEXT
:
Di Google Cloud konsol, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut untuk melakukan ekstraksi kata kunci pada lima ulasan film:
SELECT * FROM ML.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT CONCAT('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, TRUE AS flatten_json_output));
Outputnya mirip dengan berikut ini, dengan kolom yang tidak dibuat dihilangkan agar lebih jelas:
+----------------------------------------------+-------------------------+-----------------------------+-----+ | generated_text | ml_generate_text_status | prompt | ... | +----------------------------------------------+-------------------------------------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Romance:** | | the movie review below: | | | "romantic tryst," "elope" * **Comedy:** | | Linda Arvidson (as Jennie) | | | "Contrived Comedy" * **Burglary:** | | and Harry Solter (as Frank) | | | "burglar," "rob," "booty" * **Chase:** | | are enjoying a romantic | | | "chases," "escape" * **Director:** "D.W. | | tryst, when in walks her | | | Griffith" * **Actors:** "Linda Arvidson,"... | | father Charles Inslee;... | | +----------------------------------------------+-------------------------+-----------------------------+-----+ | Here are some key words from the | | Extract the key words from | | | movie review: * **Elderbush Gilch:** The | | the movie review below: | | | name of the movie being reviewed. * | | This is the second addition | | | **Disappointment:** The reviewer's | | to Frank Baum's personally | | | overall feeling about the film. * | | produced trilogy of Oz | | | **Dim-witted:** Describes the story | | films. It's essentially the | | | line negatively. * **Moronic, sadistic,... | | same childishness as the... | | +----------------------------------------------+-------------------------+-----------------------------+-----+
Hasilnya mencakup kolom berikut:
generated_text
: teks yang dihasilkan.ml_generate_text_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 ML.GENERATE_TEXT
:
Di Google Cloud konsol, buka halaman BigQuery.
Di editor kueri, jalankan pernyataan berikut untuk melakukan analisis sentimen pada lima ulasan film:
SELECT * FROM ML.GENERATE_TEXT( MODEL `bqml_tutorial.gemma_model`, ( SELECT CONCAT('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, TRUE AS flatten_json_output));
Outputnya mirip dengan berikut ini, dengan kolom yang tidak dibuat dihilangkan agar lebih jelas:
+----------------------------------------------+-------------------------+-----------------------------+-----+ | generated_text | ml_generate_text_status | prompt | ... | +----------------------------------------------+-------------------------------------------------------+-----+ | **Sentiment:** NEGATIVE **Justification:** | | Analyze the sentiment of | | | * **Negative Language:** The reviewer uses | | movie review and classify | | | phrases like "don't quite make it," "come to | | it as either POSITIVE or | | | mind," "quite disappointing," and "not many | | NEGATIVE. Movie Review: | | | laughs." * **Specific Criticisms:** The | | Although Charlie Chaplin | | | reviewer points out specific flaws in the | | made some great short | | | plot and humor, stating that the manager... | | comedies in the late... | | +----------------------------------------------+-------------------------+-----------------------------+-----+ | **Sentiment:** NEGATIVE **Reasoning:** | | Analyze the sentiment of | | | * **Negative Language:** The reviewer uses | | movie review and classify | | | phrases like "poor writing," "static camera- | | it as either POSITIVE or | | | work," "chews the scenery," "all surface and | | NEGATIVE. Movie Review: | | | no depth," "sterile spectacles," which all | | Opulent sets and sumptuous | | | carry negative connotations. * **Comparison | | costumes well photographed | | | to a More Successful Film:**... | | 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, pastikan untuk membatalkan deployment model Gemma di Vertex AI agar tidak terus ditagih.
Pembersihan
- In the Google Cloud 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.