Halaman ini menunjukkan cara membuat prediksi ML dari database Spanner.
Integrasi Spanner Vertex AI memberi Anda kemampuan untuk membuat prediksi menggunakan kode SQL dengan memanggil fungsi ML.PREDICT
untuk GoogleSQL atau fungsi spanner.ML_PREDICT_ROW
untuk PostgreSQL. Untuk mengetahui informasi selengkapnya tentang
integrasi Spanner Vertex AI, lihat Ringkasan integrasi Spanner Vertex AI.
Sebelum memulai
Sebelum dapat membuat prediksi dari instance Spanner, Anda harus menyiapkan database dan memilih model.
Mengonfigurasi akses untuk integrasi Vertex AI Spanner ke endpoint Vertex AI
Spanner membuat agen layanan dan memberikan izin yang diperlukan secara otomatis saat Spanner mengeksekusi pernyataan DDL MODEL pertama. Jika database Spanner dan endpoint Vertex AI berada dalam project yang sama, Anda tidak perlu melakukan penyiapan tambahan.
Jika akun agen layanan Spanner tidak ada untuk project Spanner Anda, buat project tersebut dengan menjalankan perintah berikut:
gcloud beta services identity create --service=spanner.googleapis.com --project={PROJECT}`
Ikuti langkah-langkah yang dijelaskan dalam Memberikan satu peran untuk
memberikan peran Spanner API Service Agent
ke
akun agen layanan Spanner
service-PROJECT_ID@gcp-sa-spanner.iam.gserviceaccount.com
di
project Vertex AI Anda.
Pilih model
Saat menggunakan ML.PREDICT
(untuk GoogleSQL) atau ML_PREDICT_ROW
untuk fungsi PostgreSQL, Anda harus menentukan lokasi model ML. Model yang Anda pilih dapat berupa salah satu dari yang berikut:
Model yang berjalan di Model Garden Vertex AI.
Model Vertex AI dengan endpoint aktif yang agen layanan Spanner Anda memiliki izin IAM untuk diakses.
Untuk mempelajari integrasi Vertex AI Spanner lebih lanjut, lihat Bagaimana cara kerja integrasi Spanner Vertex AI?.
Membuat prediksi
Bergantung pada jenis model yang dipilih, langkah-langkah untuk menghasilkan prediksi akan berbeda.
Menggunakan model di Model Garden di Vertex AI
Untuk membuat prediksi menggunakan model dari Model Garden di Vertex AI, pilih model dari Model Garden.
GoogleSQL
Sebelum menggunakan model dengan ML.PREDICT()
, Anda perlu mendaftarkan model menggunakan pernyataan CREATE MODEL
.
CREATE MODEL 'MODEL_NAME'
INPUT (INPUT_COLUMN_NAME INPUT_COLUMN_TYPE)
OUTPUT (OUTPUT_COLUMN_NAME OUTPUT_COLUMN_TYPE)
REMOTE
OPTIONS (
endpoint = '//aiplatform.googleapis.com/projects/PROJECT_ID/locations/LOCATION_ID/publishers/google/models/model_id'
);
Ganti kode berikut:
MODEL_NAME
: nama yang ingin Anda berikan pada modelINPUT_COLUMN_NAME
: nama kolom input Anda. Misalnya, jika menggunakan modelgemini-pro
, nama kolom input adalahprompt
.INPUT_COLUMN_TYPE
: jenis data untukINPUT_COLUMN_NAME
OUTPUT_COLUMN_NAME
: nama kolom output Anda. Misalnya, jika menggunakan modelgemini-pro
, nama kolom output adalahcontent
.OUTPUT_COLUMN_TYPE
: jenis data untukOUTPUT_COLUMN_NAME
PROJECT_ID
: ID project Google Cloud AndaREGION_ID
: ID region Google Cloud tempat model berada—misalnya,us-central1
MODEL_ID
: ID model ML yang ingin Anda gunakan—misalnya,gemini-pro
Untuk mengetahui informasi selengkapnya tentang model, baca Referensi Model API untuk AI Generatif.
Gunakan fungsi GoogleSQL ML.PREDICT
dengan model yang dipilih dari Model Garden untuk menghasilkan prediksi Anda.
SELECT * FROM ML.PREDICT(
MODEL `MODEL_NAME`,
`INPUT_RELATION`[, `PARAMETERS`])
Ganti kode berikut:
MODEL_NAME
: nama yang ingin Anda berikan pada modelUntuk mengetahui informasi selengkapnya tentang model, baca Referensi Model API untuk AI Generatif.
INPUT_RELATION
: baikTABLE table_name
atau subkueri pada tabel atau subkueri yang menyediakan data untuk menjalankan prediksi ML.PARAMETERS
: nilaiSTRUCT
yang berisi parameter yang didukung olehmodel_id
.
Anda juga dapat menggunakan SAFE.ML.PREDICT
untuk menampilkan null
, bukan error dalam prediksi. Hal ini berguna saat menjalankan kueri besar dengan toleransi beberapa prediksi yang gagal.
PostgreSQL
Gunakan fungsi PostgreSQL ML_PREDICT_ROW
dengan model yang dipilih dari Model Garden untuk menghasilkan prediksi Anda.
SELECT spanner.ml_predict_row(
'projects/PROJECT_ID/locations/REGION_ID/publishers/google/models/MODEL_ID'::text,
'{
"instances": [ INSTANCES ],
"parameters": { PARAMETERS }
}'::jsonb);
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud AndaREGION_ID
: ID region Google Cloud tempat model berada—misalnya,us-central1
MODEL_ID
: ID model ML yang ingin Anda gunakan—misalnya,gemini-pro
Untuk mengetahui informasi selengkapnya tentang model, baca Referensi Model API untuk AI Generatif.
INSTANCES
: input untuk panggilan prediksi, dalam format JSONPARAMETERS
: parameter opsional untuk panggilan prediksi, dalam format JSON
Kueri ini menghasilkan respons JSON. Untuk mengetahui informasi selengkapnya tentang pesan respons JSON model, lihat PredictResponse.
Menggunakan endpoint model Vertex AI
Untuk menggunakan model terlatih atau didownload dengan integrasi Vertex AI Spanner, Anda perlu men-deploy model ke Vertex AI. Untuk mengetahui informasi selengkapnya tentang cara men-deploy model ke endpoint di Vertex AI, lihat Men-deploy model ke endpoint.
GoogleSQL
Gunakan fungsi GoogleSQL ML.PREDICT
dengan model di
endpoint Vertex AI untuk menghasilkan prediksi Anda. Sebelum menggunakan model dengan ML.PREDICT()
, Anda harus mendaftarkan model tersebut menggunakan pernyataan CREATE MODEL
. Setiap model yang di-deploy memiliki skema uniknya sendiri. Berikut adalah contoh skema dari Ringkasan Klasifikasi dan Regresi
CREATE MODEL MyClassificationModel
INPUT (
length FLOAT64,
material STRING(MAX),
tag_array ARRAY<STRING(MAX)>
)
OUTPUT (
scores ARRAY<FLOAT64>,
classes ARRAY<STRING(MAX)>
)
REMOTE
OPTIONS (
endpoint = '//aiplatform.googleapis.com/projects/PROJECT/locations/LOCATION/endpoints/ENDPOINT_ID'
)
Ganti kode berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: ID region Google Cloud tempat model berada—misalnya,us-central1
ENDPOINT_ID
: ID model ML yang ingin Anda gunakan—misalnya,gemini-pro
Untuk mengetahui informasi selengkapnya tentang model, baca Referensi Model API untuk AI Generatif.
Gunakan fungsi GoogleSQL ML.PREDICT
dengan model yang dipilih dari Model Garden untuk menghasilkan prediksi Anda.
SELECT * FROM ML.PREDICT(
`MODEL_ID`,
`INPUT_RELATION`[, `PARAMETERS`])
Ganti kode berikut:
MODEL_ID
: ID model ML yang ingin Anda gunakan.INPUT_RELATION
: tabel atau subkueri tempat Anda ingin menjalankan prediksi ML.PARAMETERS
: nilaiSTRUCT
yang berisi parameter yang didukung olehmodel_name
.
Kueri ini menghasilkan relasi yang berisi semua kolom output dari model dan semua kolom relasi input.
PostgreSQL
Gunakan fungsi PostgreSQL ML.PREDICT
dengan model di
endpoint Vertex AI untuk menghasilkan prediksi Anda.
SELECT spanner.ml_predict_row(
'projects/PROJECT_ID/locations/REGION_ID/endpoints/ENDPOINT_ID'::text,
'{
"instances": [ INSTANCES ],
"parameters": { PARAMETERS }
}'::jsonb);
```
Replace the following:
PROJECT_ID
: ID project Google Cloud tempat model beradaREGION_ID
: ID region Google Cloud tempat model berada—misalnya,us-central1
ENDPOINT_ID
: ID endpoint modelINSTANCES
: input ke panggilan prediksi, dalam format JSONPARAMETERS
: parameter opsional ke panggilan prediksi, dalam format JSON
Kueri ini menghasilkan respons JSON. Untuk mengetahui informasi selengkapnya tentang pesan respons JSON model, lihat PredictResponse.
Contoh penggunaan fungsi ML untuk menghasilkan prediksi
Contoh berikut menggunakan model gemini-pro, dari Model Garden, untuk menghasilkan teks berdasarkan perintah singkat yang diberikan sebagai argumen. Model ini tersedia sebagai bagian dari Gemini di Spanner.
GoogleSQL
Mendaftarkan model gemini-pro
CREATE MODEL GeminiPro
INPUT (prompt STRING(MAX))
OUTPUT (content STRING(MAX))
REMOTE
OPTIONS (
endpoint = '//aiplatform.googleapis.com/projects/PROJECT/locations/LOCATION/publishers/google/models/gemini-pro',
default_batch_size = 1
);
Ganti kode berikut:
PROJECT
: the project IDLOCATION
: wilayah tempat Anda menggunakan Vertex AI
Menjalankan model
SELECT content
FROM ML.PREDICT(
MODEL GeminiPro,
(SELECT "Is 7 a prime number?" AS prompt),
STRUCT(256 AS maxOutputTokens, 0.2 AS temperature, 40 as topK, 0.95 AS topP)
);
Output yang diharapkan
Hasil yang diharapkan adalah sebagai berikut:
+--------------------+
| content |
+--------------------+
| "Yes" |
+--------------------+
PostgreSQL
Menjalankan model
select spanner.ml_predict_row(
'{
"endpoint": "projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-pro",
"default_batch_size": 1
}'::jsonb,
'{
"instances":[{"prompt": "Is 7 a prime number?"}],
"parameters":{"maxOutputTokens":256, "topK": 40, "topP":0.96, "temperature":0.2}
}'
);
Output yang diharapkan
Hasil yang diharapkan adalah sebagai berikut:
+--------------------+
| content |
+--------------------+
| "Yes" |
+--------------------+