Membuat teks menggunakan fungsi ML.GENERATE_TEXT
Dokumen ini menunjukkan cara membuat
model jarak jauh BigQuery ML
yang merepresentasikan model Vertex AI, lalu menggunakan model jarak jauh tersebut
dengan
fungsi ML.GENERATE_TEXT
untuk membuat teks.
Jenis model jarak jauh berikut didukung:
- Model jarak jauh di salah satu model Gemini yang tersedia secara umum atau pratinjau.
- Model jarak jauh daripada model Claude Anthropic.
- Model jarak jauh dibandingkan model Llama
- Model jarak jauh melalui model Mistral AI
- Model jarak jauh melalui model terbuka yang didukung.
Bergantung pada model Vertex AI yang Anda pilih, Anda dapat membuat teks berdasarkan input data tidak terstruktur dari tabel objek atau input teks dari tabel standar.
Peran yang diperlukan
Untuk membuat model jarak jauh dan membuat teks, Anda memerlukan peran Identity and Access Management (IAM) berikut:
- Membuat dan menggunakan set data, tabel, dan model BigQuery:
BigQuery Data Editor (
roles/bigquery.dataEditor
) di project Anda. Membuat, mendelegasikan, dan menggunakan koneksi BigQuery: BigQuery Connections Admin (
roles/bigquery.connectionsAdmin
) di project Anda.Jika Anda belum mengonfigurasi koneksi default, Anda dapat membuat dan menyetelnya sebagai bagian dari menjalankan pernyataan
CREATE MODEL
. Untuk melakukannya, Anda harus memiliki peran Admin BigQuery (roles/bigquery.admin
) di project Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi koneksi default.Memberikan izin ke akun layanan koneksi: Admin IAM Project (
roles/resourcemanager.projectIamAdmin
) di project yang berisi endpoint Vertex AI. Ini adalah project saat ini untuk model jarak jauh yang Anda buat dengan menentukan nama model sebagai endpoint. Ini adalah project yang diidentifikasi dalam URL untuk model jarak jauh yang Anda buat dengan menentukan URL sebagai endpoint.Jika Anda menggunakan model jarak jauh untuk menganalisis data tidak terstruktur dari tabel objek, dan bucket Cloud Storage yang Anda gunakan dalam tabel objek berada di project yang berbeda dengan endpoint Vertex AI, Anda juga harus memiliki peran Storage Admin (
roles/storage.admin
) di bucket Cloud Storage yang digunakan oleh tabel objek.Membuat tugas BigQuery: Pengguna Tugas BigQuery (
roles/bigquery.jobUser
) di project Anda.
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.*
- Tetapkan izin akun layanan:
resourcemanager.projects.getIamPolicy
danresourcemanager.projects.setIamPolicy
- 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.
Sebelum memulai
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection, and Vertex AI APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Membuat set data
Buat set data BigQuery untuk memuat resource Anda:
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 panel Explorer, klik nama project Anda.
Klik
View actions > Create dataset.Di halaman Create dataset, lakukan hal berikut:
Untuk ID Set Data, ketik nama untuk set data.
Untuk Jenis lokasi, pilih Region atau Multi-region.
- Jika Anda memilih Wilayah, pilih lokasi dari daftar Wilayah.
- Jika Anda memilih Multi-region, pilih US atau Eropa dari daftar Multi-region.
Klik Create dataset.
bq
Membuat koneksi
Anda dapat melewati langkah ini jika telah mengonfigurasi koneksi default, atau memiliki peran Admin BigQuery.
Buat koneksi resource Cloud untuk digunakan model jarak jauh, lalu dapatkan akun layanan koneksi. Buat koneksi di lokasi yang sama dengan set data yang Anda buat di langkah sebelumnya.
Pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Di panel Penjelajah, klik
Tambahkan data:Dialog Tambahkan data akan terbuka.
Di panel Filter Menurut, di bagian Jenis Sumber Data, pilih Aplikasi Bisnis.
Atau, di kolom Telusuri sumber data, Anda dapat memasukkan
Vertex AI
.Di bagian Sumber data unggulan, klik Vertex AI.
Klik kartu solusi Vertex AI Models: BigQuery Federation.
Dalam daftar Connection type, pilih Vertex AI remote models, remote functions, BigLake and Spanner (Cloud Resource).
Di kolom Connection ID, masukkan nama untuk koneksi Anda.
Klik Create connection.
Klik Go to connection.
Di panel Connection info, salin ID akun layanan untuk digunakan di langkah berikutnya.
bq
Di lingkungan command line, buat koneksi:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Parameter
--project_id
akan mengganti project default.Ganti kode berikut:
REGION
: region koneksi AndaPROJECT_ID
: Google Cloud project ID AndaCONNECTION_ID
: ID untuk koneksi Anda
Saat Anda membuat resource koneksi, BigQuery akan membuat akun layanan sistem unik dan mengaitkannya dengan koneksi.
Pemecahan masalah: Jika Anda mendapatkan error koneksi berikut, update Google Cloud SDK:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Ambil dan salin ID akun layanan untuk digunakan pada langkah berikutnya:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
Outputnya mirip dengan hal berikut ini:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Gunakan resource google_bigquery_connection
.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut membuat koneksi resource Cloud bernama
my_cloud_resource_connection
di region US
:
Untuk menerapkan konfigurasi Terraform di project Google Cloud , selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Memberikan peran ke akun layanan koneksi model jarak jauh
Anda harus memberikan peran Vertex AI User ke akun layanan koneksi yang digunakan model jarak jauh.
Jika Anda berencana menentukan endpoint model jarak jauh sebagai URL,
misalnya endpoint = 'https://us-central1-aiplatform.googleapis.com/v1/projects/myproject/locations/us-central1/publishers/google/models/gemini-2.0-flash'
,
berikan peran ini dalam project yang sama dengan yang Anda tentukan di URL.
Jika Anda berencana menentukan endpoint model jarak jauh menggunakan nama model, misalnya endpoint = 'gemini-2.0-flash'
, berikan peran ini di project yang sama tempat Anda berencana membuat model jarak jauh.
Pemberian peran dalam project lain akan menyebabkan error
bqcx-1234567890-wxyz@gcp-sa-bigquery-condel.iam.gserviceaccount.com does not have the permission to access resource
.
Untuk memberikan peran Vertex AI User, ikuti langkah-langkah berikut:
Konsol
Buka halaman IAM & Admin.
Klik
Add.Dialog Add principals akan terbuka.
Di kolom Akun utama baru, masukkan ID akun layanan yang Anda salin sebelumnya.
Di kolom Pilih peran, pilih Vertex AI, lalu pilih Pengguna Vertex AI.
Klik Simpan.
gcloud
Gunakan
perintah gcloud projects add-iam-policy-binding
.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Ganti kode berikut:
PROJECT_NUMBER
: nomor project AndaMEMBER
: ID akun layanan yang Anda salin sebelumnya
Memberikan peran ke akun layanan koneksi tabel objek
Jika Anda menggunakan model jarak jauh untuk membuat teks dari data tabel objek, berikan akun layanan koneksi tabel objek peran Vertex AI User dalam project yang sama tempat Anda berencana membuat model jarak jauh. Jika tidak, Anda dapat melewati langkah ini.
Untuk menemukan akun layanan untuk koneksi tabel objek, ikuti langkah-langkah berikut:
Buka halaman BigQuery.
Di panel kiri, klik
Explorer:Jika Anda tidak melihat panel kiri, klik
Luaskan panel kiri untuk membuka panel.Di panel Explorer, klik Set data, lalu pilih set data yang berisi tabel objek.
Klik Ringkasan > Tabel, lalu pilih tabel objek.
Di panel editor, klik tab Detail.
Catat nama koneksi di kolom Connection ID.
Di panel Explorer, klik Connections.
Pilih koneksi yang cocok dengan koneksi dari kolom ID Koneksi tabel objek.
Salin nilai di kolom Service account id.
Untuk memberikan peran, ikuti langkah-langkah berikut:
Konsol
Buka halaman IAM & Admin.
Klik
Add.Dialog Add principals akan terbuka.
Di kolom Akun utama baru, masukkan ID akun layanan yang Anda salin sebelumnya.
Di kolom Pilih peran, pilih Vertex AI, lalu pilih Pengguna Vertex AI.
Klik Simpan.
gcloud
Gunakan
perintah gcloud projects add-iam-policy-binding
.
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/aiplatform.user' --condition=None
Ganti kode berikut:
PROJECT_NUMBER
: nomor project AndaMEMBER
: ID akun layanan yang Anda salin sebelumnya
Mengaktifkan model partner
Langkah ini hanya diperlukan jika Anda ingin menggunakan model Anthropic Claude, Llama, atau Mistral AI.
Di konsol Google Cloud , buka halaman Model Garden Vertex AI.
Telusuri atau jelajahi model partner yang ingin Anda gunakan.
Klik kartu model.
Di halaman model, klik Aktifkan.
Lengkapi informasi pengaktifan yang diminta, lalu klik Berikutnya.
Di bagian Persyaratan dan ketentuan, centang kotak.
Klik Setuju untuk menyetujui persyaratan dan ketentuan serta mengaktifkan model.
Memilih metode deployment model terbuka
Jika Anda membuat model jarak jauh melalui
model terbuka yang didukung,
Anda dapat men-deploy model terbuka secara otomatis pada saat yang sama dengan
Anda membuat model jarak jauh dengan menentukan ID model Vertex AI
Model Garden atau Hugging Face dalam pernyataan CREATE MODEL
.
Atau, Anda dapat men-deploy model terbuka secara manual terlebih dahulu, lalu menggunakan model terbuka tersebut dengan model jarak jauh dengan menentukan endpoint model dalam pernyataan CREATE MODEL
. Untuk mengetahui informasi selengkapnya, lihat
Men-deploy model terbuka.
Membuat model jarak jauh BigQuery ML
Membuat model jarak jauh:
Model terbuka baru
Di konsol Google Cloud , buka halaman BigQuery.
Dengan menggunakan editor SQL, buat model jarak jauh:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( {HUGGING_FACE_MODEL_ID = 'HUGGING_FACE_MODEL_ID' | MODEL_GARDEN_MODEL_NAME = 'MODEL_GARDEN_MODEL_NAME'} [, HUGGING_FACE_TOKEN = 'HUGGING_FACE_TOKEN' ] [, MACHINE_TYPE = 'MACHINE_TYPE' ] [, MIN_REPLICA_COUNT = MIN_REPLICA_COUNT ] [, MAX_REPLICA_COUNT = MAX_REPLICA_COUNT ] [, RESERVATION_AFFINITY_TYPE = {'NO_RESERVATION' | 'ANY_RESERVATION' | 'SPECIFIC_RESERVATION'} ] [, RESERVATION_AFFINITY_KEY = 'compute.googleapis.com/reservation-name' ] [, RESERVATION_AFFINITY_VALUES = RESERVATION_AFFINITY_VALUES ] [, ENDPOINT_IDLE_TTL = ENDPOINT_IDLE_TTL ] );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang akan berisi model. Set data ini harus berada di lokasi yang sama dengan koneksi yang Anda gunakan.MODEL_NAME
: nama model.REGION
: region yang digunakan oleh koneksi.CONNECTION_ID
: ID koneksi BigQuery Anda.Anda bisa mendapatkan nilai ini dengan melihat detail koneksi di konsol Google Cloud dan menyalin nilai di bagian terakhir ID koneksi yang sepenuhnya memenuhi syarat yang ditampilkan di ID Koneksi. Misalnya,
projects/myproject/locations/connection_location/connections/myconnection
.HUGGING_FACE_MODEL_ID
: nilaiSTRING
yang menentukan ID model untuk model Hugging Face yang didukung, dalam formatprovider_name
/model_name
. Misalnya,deepseek-ai/DeepSeek-R1
. Anda bisa mendapatkan ID model dengan mengklik nama model di Hub Model Hugging Face, lalu menyalin ID model dari bagian atas kartu model.MODEL_GARDEN_MODEL_NAME
: nilaiSTRING
yang menentukan ID model dan versi model dari model Vertex AI Model Garden yang didukung, dalam formatpublishers/publisher
/models/model_name
@model_version
. Misalnya,publishers/openai/models/gpt-oss@gpt-oss-120b
. Anda bisa mendapatkan ID model dengan mengklik kartu model di Vertex AI Model Garden, lalu menyalin ID model dari kolom ID Model. Anda bisa mendapatkan versi model default dengan menyalinnya dari kolom Version di kartu model. Untuk melihat versi model lain yang dapat Anda gunakan, klik Deploy model, lalu klik kolom ID Resource.HUGGING_FACE_TOKEN
: nilaiSTRING
yang menentukan Token Akses Pengguna Hugging Face yang akan digunakan. Anda hanya dapat menentukan nilai untuk opsi ini jika Anda juga menentukan nilai untuk opsiHUGGING_FACE_MODEL_ID
.Token harus memiliki peran
read
minimal, tetapi token dengan cakupan yang lebih luas juga dapat diterima. Opsi ini diperlukan jika model yang diidentifikasi oleh nilaiHUGGING_FACE_MODEL_ID
adalah model tertutup atau pribadi Hugging Face.Beberapa model tertutup memerlukan persetujuan eksplisit terhadap persyaratan layanan mereka sebelum akses diberikan. Untuk menyetujui persyaratan ini, ikuti langkah-langkah berikut:
- Buka halaman model di situs Hugging Face.
- Temukan dan tinjau persyaratan layanan model. Link ke perjanjian layanan biasanya ada di kartu model.
- Setujui persyaratan seperti yang diminta di halaman.
MACHINE_TYPE
: nilaiSTRING
yang menentukan jenis mesin yang akan digunakan saat men-deploy model ke Vertex AI. Untuk mengetahui informasi tentang jenis mesin yang didukung, lihat Jenis mesin. Jika Anda tidak menentukan nilai untuk opsiMACHINE_TYPE
, jenis mesin default Vertex AI Model Garden untuk model akan digunakan.MIN_REPLICA_COUNT
: nilaiINT64
yang menentukan jumlah minimum replika mesin yang digunakan saat men-deploy model di endpoint Vertex AI. Layanan ini akan menambah atau mengurangi jumlah replika sesuai kebutuhan beban inferensi pada endpoint. Jumlah replika yang digunakan tidak pernah lebih rendah dari nilaiMIN_REPLICA_COUNT
dan tidak pernah lebih tinggi dari nilaiMAX_REPLICA_COUNT
. NilaiMIN_REPLICA_COUNT
harus berada dalam rentang[1, 4096]
. Nilai defaultnya adalah1
.MAX_REPLICA_COUNT
: nilaiINT64
yang menentukan jumlah maksimum replika mesin yang digunakan saat men-deploy model di endpoint Vertex AI. Layanan ini akan menambah atau mengurangi jumlah replika sesuai kebutuhan beban inferensi pada endpoint. Jumlah replika yang digunakan tidak pernah lebih rendah dari nilaiMIN_REPLICA_COUNT
dan tidak pernah lebih tinggi dari nilaiMAX_REPLICA_COUNT
. NilaiMAX_REPLICA_COUNT
harus berada dalam rentang[1, 4096]
. Nilai defaultnya adalahMIN_REPLICA_COUNT
.RESERVATION_AFFINITY_TYPE
: menentukan apakah model yang di-deploy menggunakan reservasi Compute Engine untuk memastikan ketersediaan virtual machine (VM) saat menyajikan prediksi, dan menentukan apakah model menggunakan VM dari semua reservasi yang tersedia atau hanya satu reservasi tertentu. Untuk mengetahui informasi selengkapnya, lihat Afinitas reservasi Compute Engine.Anda hanya dapat menggunakan reservasi Compute Engine yang dibagikan dengan Vertex AI. Untuk mengetahui informasi selengkapnya, lihat Mengizinkan penggunaan reservasi.
Nilai yang didukung adalah sebagai berikut:
NO_RESERVATION
: tidak ada reservasi yang digunakan saat model Anda di-deploy ke endpoint Vertex AI. MenentukanNO_RESERVATION
memiliki efek yang sama dengan tidak menentukan afinitas reservasi.ANY_RESERVATION
: deployment model Vertex AI menggunakan mesin virtual (VM) dari pemesanan Compute Engine yang ada di project saat ini atau yang dibagikan dengan project, dan yang dikonfigurasi untuk penggunaan otomatis. Hanya VM yang memenuhi kualifikasi berikut yang digunakan:- Node ini menggunakan jenis mesin yang ditentukan oleh
nilai
MACHINE_TYPE
. - Jika set data BigQuery tempat Anda membuat
model jarak jauh adalah satu region, reservasi harus berada di
region yang sama. Jika set data berada di multi-region
US
, reservasi harus berada di regionus-central1
. Jika set data berada di multi-regionEU
, reservasi harus berada di regioneurope-west4
.
Jika kapasitas dalam reservasi yang tersedia tidak mencukupi, atau jika tidak ada reservasi yang sesuai, sistem akan menyediakan VM Compute Engine on-demand untuk memenuhi persyaratan resource.
- Node ini menggunakan jenis mesin yang ditentukan oleh
nilai
SPECIFIC_RESERVATION
: deployment model Vertex AI hanya menggunakan VM dari reservasi yang Anda tentukan dalam nilaiRESERVATION_AFFINITY_VALUES
. Pemesanan ini harus dikonfigurasi untuk penggunaan yang ditargetkan secara khusus. Deployment akan gagal jika reservasi yang ditentukan tidak memiliki kapasitas yang memadai.
RESERVATION_AFFINITY_KEY
: stringcompute.googleapis.com/reservation-name
. Anda harus menentukan opsi ini saat nilaiRESERVATION_AFFINITY_TYPE
adalahSPECIFIC_RESERVATION
.RESERVATION_AFFINITY_VALUES
: nilaiARRAY<STRING>
yang menentukan nama resource lengkap reservasi Compute Engine, dalam format berikut:
projects/myproject/zones/reservation_zone/reservations/reservation_name
Contoh,
RESERVATION_AFFINITY_values = ['projects/myProject/zones/us-central1-a/reservations/myReservationName']
.Anda bisa mendapatkan nama dan zona pemesanan dari halaman Reservations di konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Melihat reservasi.
Anda harus menentukan opsi ini saat nilai
RESERVATION_AFFINITY_TYPE
adalahSPECIFIC_RESERVATION
.ENDPOINT_IDLE_TTL
: nilaiINTERVAL
yang menentukan durasi tidak aktif setelah model terbuka dibatalkan deployment-nya secara otomatis dari endpoint Vertex AI.Untuk mengaktifkan penghapusan deployment otomatis, tentukan nilai literal interval antara 390 menit (6,5 jam) dan 7 hari. Misalnya, tentukan
INTERVAL 8 HOUR
agar model di-un-deploy setelah 8 jam tidak ada aktivitas. Nilai defaultnya adalah 390 menit (6,5 jam).Ketidakaktifan model ditentukan sebagai jumlah waktu yang telah berlalu sejak salah satu operasi berikut dilakukan pada model:
- Menjalankan
pernyataan
CREATE MODEL
. - Menjalankan
pernyataan
ALTER MODEL
dengan argumenDEPLOY_MODEL
yang ditetapkan keTRUE
. - Mengirim permintaan inferensi ke endpoint model. Misalnya, dengan
menjalankan
fungsi
ML.GENERATE_EMBEDDING
atauML.GENERATE_TEXT
.
Setiap operasi ini akan mereset timer tidak aktif ke nol. Reset dipicu di awal tugas BigQuery yang melakukan operasi.
Setelah model di-un-deploy, permintaan inferensi yang dikirim ke model akan menampilkan error. Objek model BigQuery tetap tidak berubah, termasuk metadata model. Untuk menggunakan model untuk inferensi lagi, Anda harus men-deploy ulang model dengan menjalankan pernyataan
ALTER MODEL
pada model dan menetapkan opsiDEPLOY_MODEL
keTRUE
.- Menjalankan
pernyataan
Model terbuka yang di-deploy
Di konsol Google Cloud , buka halaman BigQuery.
Dengan menggunakan editor SQL, buat model jarak jauh:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS ( ENDPOINT = 'https://ENDPOINT_REGION-aiplatform.googleapis.com/v1/projects/ENDPOINT_PROJECT_ID/locations/ENDPOINT_REGION/endpoints/ENDPOINT_ID' );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang akan berisi model. Set data ini harus berada di lokasi yang sama dengan koneksi yang Anda gunakan.MODEL_NAME
: nama model.REGION
: region yang digunakan oleh koneksi.CONNECTION_ID
: ID koneksi BigQuery Anda.Anda bisa mendapatkan nilai ini dengan melihat detail koneksi di konsol Google Cloud dan menyalin nilai di bagian terakhir ID koneksi yang sepenuhnya memenuhi syarat yang ditampilkan di ID Koneksi. Misalnya,
projects/myproject/locations/connection_location/connections/myconnection
.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.
Semua model lainnya
Di konsol Google Cloud , buka halaman BigQuery.
Dengan menggunakan editor SQL, buat model jarak jauh:
CREATE OR REPLACE MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME` REMOTE WITH CONNECTION {DEFAULT | `PROJECT_ID.REGION.CONNECTION_ID`} OPTIONS (ENDPOINT = 'ENDPOINT');
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang akan berisi model. Set data ini harus berada di lokasi yang sama dengan koneksi yang Anda gunakan.MODEL_NAME
: nama model.REGION
: region yang digunakan oleh koneksi.CONNECTION_ID
: ID koneksi BigQuery Anda.Anda bisa mendapatkan nilai ini dengan melihat detail koneksi di konsol Google Cloud dan menyalin nilai di bagian terakhir ID koneksi yang sepenuhnya memenuhi syarat yang ditampilkan di ID Koneksi. Misalnya,
projects/myproject/locations/connection_location/connections/myconnection
.ENDPOINT
: endpoint model Vertex AI yang akan digunakan.Untuk model Vertex AI terlatih, model Claude, dan model Mistral AI, tentukan nama model. Untuk beberapa model ini, Anda dapat menentukan versi model tertentu sebagai bagian dari nama. Untuk model Gemini yang didukung, Anda dapat menentukan endpoint global untuk meningkatkan ketersediaan.
Untuk model Llama, tentukan endpoint OpenAI API dalam format
openapi/<publisher_name>/<model_name>
. Misalnya,openapi/meta/llama-3.1-405b-instruct-maas
.Untuk mengetahui informasi tentang nama dan versi model yang didukung, lihat
ENDPOINT
.Model Vertex AI yang Anda tentukan harus tersedia di lokasi tempat Anda membuat model jarak jauh. Untuk mengetahui informasi selengkapnya, lihat Lokasi.
Membuat teks dari data tabel standar
Buat teks menggunakan
fungsi ML.GENERATE_TEXT
dengan data perintah dari tabel standar:
Gemini
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, GROUND_WITH_GOOGLE_SEARCH AS ground_with_google_search, SAFETY_SETTINGS AS safety_settings, REQUEST_TYPE AS request_type) );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang berisi model.MODEL_NAME
: nama model.TABLE_NAME
: nama tabel yang berisi prompt. Tabel ini harus memiliki kolom bernamaprompt
, atau Anda dapat menggunakan alias untuk menggunakan kolom dengan nama yang berbeda.PROMPT_QUERY
: kueri yang menyediakan data prompt. Kueri ini harus menghasilkan kolom bernamaprompt
.TOKENS
: nilaiINT64
yang menetapkan jumlah maksimum token yang dapat dibuat dalam respons. Nilai ini harus dalam rentang[1,8192]
. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang. Defaultnya adalah128
.TEMPERATURE
: nilaiFLOAT64
dalam rentang[0.0,1.0]
yang mengontrol tingkat keacakan dalam pemilihan token. Defaultnya adalah0
.Nilai yang lebih rendah untuk
temperature
cocok untuk perintah yang memerlukan respons yang lebih deterministik dan kurang terbuka atau kreatif, sedangkan nilai yang lebih tinggi untuktemperature
dapat memberikan hasil yang lebih beragam atau kreatif. Nilai0
untuktemperature
bersifat deterministik, yang berarti bahwa respons probabilitas tertinggi selalu dipilih.TOP_P
: nilaiFLOAT64
dalam rentang[0.0,1.0]
membantu menentukan probabilitas token yang dipilih. Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Defaultnya adalah0.95
.FLATTEN_JSON
: nilaiBOOL
yang menentukan apakah akan menampilkan teks yang dihasilkan dan atribut keamanan di kolom terpisah. Defaultnya adalahFALSE
.STOP_SEQUENCES
: nilaiARRAY<STRING>
yang menghapus string tertentu jika disertakan dalam respons dari model. String dicocokkan persis, termasuk kapitalisasi. Defaultnya adalah array kosong.GROUND_WITH_GOOGLE_SEARCH
: nilaiBOOL
yang menentukan apakah model Vertex AI menggunakan [Perujukan dengan Google Penelusuran](/vertex-ai/generative-ai/docs/grounding/overview#ground-public) saat membuat respons. Dengan perujukan, model dapat menggunakan informasi tambahan dari internet saat membuat respons, sehingga respons model menjadi lebih spesifik dan faktual. Jikaflatten_json_output
dan kolom ini disetel keTrue
, kolomml_generate_text_grounding_result
tambahan akan disertakan dalam hasil, yang memberikan sumber yang digunakan model untuk mengumpulkan informasi tambahan. Defaultnya adalahFALSE
.SAFETY_SETTINGS
: nilaiARRAY<STRUCT<STRING AS category, STRING AS threshold>>
yang mengonfigurasi nilai minimum keamanan konten untuk memfilter respons. Elemen pertama dalam struct menentukan kategori bahaya, dan elemen kedua dalam struct menentukan nilai minimum pemblokiran yang sesuai. Model memfilter konten yang melanggar setelan ini. Anda hanya dapat menentukan setiap kategori satu kali. Misalnya, Anda tidak dapat menentukanSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)
danSTRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_ONLY_HIGH' AS threshold)
. Jika tidak ada setelan keamanan untuk kategori tertentu, setelan keamananBLOCK_MEDIUM_AND_ABOVE
akan digunakan. Kategori yang didukung adalah sebagai berikut:HARM_CATEGORY_HATE_SPEECH
HARM_CATEGORY_DANGEROUS_CONTENT
HARM_CATEGORY_HARASSMENT
HARM_CATEGORY_SEXUALLY_EXPLICIT
BLOCK_NONE
(Dibatasi)BLOCK_LOW_AND_ABOVE
BLOCK_MEDIUM_AND_ABOVE
(Default)BLOCK_ONLY_HIGH
HARM_BLOCK_THRESHOLD_UNSPECIFIED
REQUEST_TYPE
: nilaiSTRING
yang menentukan jenis permintaan inferensi yang akan dikirim ke model Gemini. Jenis permintaan menentukan kuota yang digunakan permintaan. Nilai yang valid adalah sebagai berikut:DEDICATED
: FungsiML.GENERATE_TEXT
hanya menggunakan kuota Throughput yang Disediakan. FungsiML.GENERATE_TEXT
menampilkan errorProvisioned throughput is not purchased or is not active
jika kuota Throughput yang Disediakan tidak tersedia.SHARED
: FungsiML.GENERATE_TEXT
hanya menggunakan kuota bersama dinamis (DSQ), meskipun Anda telah membeli kuota Throughput yang Disediakan.UNSPECIFIED
: FungsiML.GENERATE_TEXT
menggunakan kuota sebagai berikut:- Jika Anda belum membeli kuota Throughput yang Disediakan,
fungsi
ML.GENERATE_TEXT
menggunakan kuota DSQ. - Jika Anda telah membeli kuota Throughput yang Disediakan,
fungsi
ML.GENERATE_TEXT
akan menggunakan kuota Throughput yang Disediakan terlebih dahulu. Jika permintaan melebihi kuota Throughput yang Disediakan, traffic overflow menggunakan kuota DSQ.
- Jika Anda belum membeli kuota Throughput yang Disediakan,
fungsi
Nilai defaultnya adalah
UNSPECIFIED
.Untuk mengetahui informasi selengkapnya, lihat Menggunakan Throughput yang Disediakan Vertex AI.
Contoh 1
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Meminta ringkasan teks di kolom
body
pada tabelarticles
. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Contoh 2
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kueri untuk membuat data prompt dengan menyambungkan string yang memberikan awalan prompt dengan kolom tabel.
- Menampilkan respons singkat.
- Tidak mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Contoh 3
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kolom
prompt
dari tabelprompts
untuk prompt. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Contoh 4
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kolom
prompt
dari tabelprompts
untuk prompt. - Menampilkan respons singkat.
- Meratakan respons JSON menjadi kolom terpisah.
- Mengambil dan menampilkan data web publik untuk perujukan respons.
- Memfilter respons yang tidak aman dengan menggunakan dua setelan keamanan.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT( 100 AS max_output_tokens, 0.5 AS top_p, TRUE AS flatten_json_output, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
Contoh 5
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kolom
prompt
dari tabelprompts
untuk prompt. - Menampilkan respons yang lebih panjang.
- Meratakan respons JSON menjadi kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.flash_2_model`, TABLE mydataset.prompts, STRUCT( 0.4 AS temperature, 8192 AS max_output_tokens, TRUE AS flatten_json_output));
Contoh 6
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Meminta ringkasan teks di kolom
body
pada tabelarticles
. - Meratakan respons JSON menjadi kolom terpisah.
- Mengambil dan menampilkan data web publik untuk perujukan respons.
- Memfilter respons yang tidak aman dengan menggunakan dua setelan keamanan.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT( .1 AS TEMPERATURE, TRUE AS flatten_json_output, TRUE AS ground_with_google_search, [STRUCT('HARM_CATEGORY_HATE_SPEECH' AS category, 'BLOCK_LOW_AND_ABOVE' AS threshold), STRUCT('HARM_CATEGORY_DANGEROUS_CONTENT' AS category, 'BLOCK_MEDIUM_AND_ABOVE' AS threshold)] AS safety_settings));
Claude
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output) );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang berisi model.MODEL_NAME
: nama model.TABLE_NAME
: nama tabel yang berisi prompt. Tabel ini harus memiliki kolom bernamaprompt
, atau Anda dapat menggunakan alias untuk menggunakan kolom dengan nama yang berbeda.PROMPT_QUERY
: kueri yang menyediakan data prompt. Kueri ini harus menghasilkan kolom bernamaprompt
.TOKENS
: nilaiINT64
yang menetapkan jumlah maksimum token yang dapat dibuat dalam respons. Nilai ini harus dalam rentang[1,4096]
. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang. Defaultnya adalah128
.TOP_K
: nilaiINT64
dalam rentang[1,40]
yang menentukan kumpulan awal token yang dipertimbangkan model untuk dipilih. Tentukan nilai yang lebih rendah untuk respons dengan tingkat keacakan lebih rendah, dan nilai yang lebih tinggi untuk respons dengan tingkat keacakan lebih tinggi. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.TOP_P
: nilaiFLOAT64
dalam rentang[0.0,1.0]
membantu menentukan probabilitas token yang dipilih. Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.FLATTEN_JSON
: nilaiBOOL
yang menentukan apakah akan menampilkan teks yang dihasilkan dan atribut keamanan di kolom terpisah. Defaultnya adalahFALSE
.
Contoh 1
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Meminta ringkasan teks di kolom
body
pada tabelarticles
. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Contoh 2
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kueri untuk membuat data prompt dengan menyambungkan string yang memberikan awalan prompt dengan kolom tabel.
- Menampilkan respons singkat.
- Tidak mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Contoh 3
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kolom
prompt
dari tabelprompts
untuk prompt. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Llama
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang berisi model.MODEL_NAME
: nama model.TABLE_NAME
: nama tabel yang berisi prompt. Tabel ini harus memiliki kolom bernamaprompt
, atau Anda dapat menggunakan alias untuk menggunakan kolom dengan nama yang berbeda.PROMPT_QUERY
: kueri yang menyediakan data prompt. Kueri ini harus menghasilkan kolom bernamaprompt
.TOKENS
: nilaiINT64
yang menetapkan jumlah maksimum token yang dapat dibuat dalam respons. Nilai ini harus dalam rentang[1,4096]
. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang. Defaultnya adalah128
.TEMPERATURE
: nilaiFLOAT64
dalam rentang[0.0,1.0]
yang mengontrol tingkat keacakan dalam pemilihan token. Defaultnya adalah0
.Nilai yang lebih rendah untuk
temperature
cocok untuk perintah yang memerlukan respons yang lebih deterministik dan kurang terbuka atau kreatif, sedangkan nilai yang lebih tinggi untuktemperature
dapat memberikan hasil yang lebih beragam atau kreatif. Nilai0
untuktemperature
bersifat deterministik, yang berarti bahwa respons probabilitas tertinggi selalu dipilih.TOP_P
: nilaiFLOAT64
dalam rentang[0.0,1.0]
membantu menentukan probabilitas token yang dipilih. Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Defaultnya adalah0.95
.FLATTEN_JSON
: nilaiBOOL
yang menentukan apakah akan menampilkan teks yang dihasilkan dan atribut keamanan di kolom terpisah. Defaultnya adalahFALSE
.STOP_SEQUENCES
: nilaiARRAY<STRING>
yang menghapus string tertentu jika disertakan dalam respons dari model. String dicocokkan persis, termasuk kapitalisasi. Defaultnya adalah array kosong.
Contoh 1
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Meminta ringkasan teks di kolom
body
pada tabelarticles
. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Contoh 2
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kueri untuk membuat data prompt dengan menyambungkan string yang memberikan awalan prompt dengan kolom tabel.
- Menampilkan respons singkat.
- Tidak mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Contoh 3
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kolom
prompt
dari tabelprompts
untuk prompt. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Mistral AI
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences) );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang berisi model.MODEL_NAME
: nama model.TABLE_NAME
: nama tabel yang berisi prompt. Tabel ini harus memiliki kolom bernamaprompt
, atau Anda dapat menggunakan alias untuk menggunakan kolom dengan nama yang berbeda.PROMPT_QUERY
: kueri yang menyediakan data prompt. Kueri ini harus menghasilkan kolom bernamaprompt
.TOKENS
: nilaiINT64
yang menetapkan jumlah maksimum token yang dapat dibuat dalam respons. Nilai ini harus dalam rentang[1,4096]
. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang. Defaultnya adalah128
.TEMPERATURE
: nilaiFLOAT64
dalam rentang[0.0,1.0]
yang mengontrol tingkat keacakan dalam pemilihan token. Defaultnya adalah0
.Nilai yang lebih rendah untuk
temperature
cocok untuk perintah yang memerlukan respons yang lebih deterministik dan kurang terbuka atau kreatif, sedangkan nilai yang lebih tinggi untuktemperature
dapat memberikan hasil yang lebih beragam atau kreatif. Nilai0
untuktemperature
bersifat deterministik, yang berarti bahwa respons probabilitas tertinggi selalu dipilih.TOP_P
: nilaiFLOAT64
dalam rentang[0.0,1.0]
membantu menentukan probabilitas token yang dipilih. Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Defaultnya adalah0.95
.FLATTEN_JSON
: nilaiBOOL
yang menentukan apakah akan menampilkan teks yang dihasilkan dan atribut keamanan di kolom terpisah. Defaultnya adalahFALSE
.STOP_SEQUENCES
: nilaiARRAY<STRING>
yang menghapus string tertentu jika disertakan dalam respons dari model. String dicocokkan persis, termasuk kapitalisasi. Defaultnya adalah array kosong.
Contoh 1
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Meminta ringkasan teks di kolom
body
pada tabelarticles
. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Contoh 2
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kueri untuk membuat data prompt dengan menyambungkan string yang memberikan awalan prompt dengan kolom tabel.
- Menampilkan respons singkat.
- Tidak mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Contoh 3
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kolom
prompt
dari tabelprompts
untuk prompt. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Model open source
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, {TABLE PROJECT_ID.DATASET_ID.TABLE_NAME | (PROMPT_QUERY)}, STRUCT(TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_K AS top_k, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output) );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang berisi model.MODEL_NAME
: nama model.TABLE_NAME
: nama tabel yang berisi prompt. Tabel ini harus memiliki kolom bernamaprompt
, atau Anda dapat menggunakan alias untuk menggunakan kolom dengan nama yang berbeda.PROMPT_QUERY
: kueri yang menyediakan data prompt. Kueri ini harus menghasilkan kolom bernamaprompt
.TOKENS
: nilaiINT64
yang menetapkan jumlah maksimum token yang dapat dibuat dalam respons. Nilai ini harus dalam rentang[1,4096]
. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.TEMPERATURE
: nilaiFLOAT64
dalam rentang[0.0,1.0]
yang mengontrol tingkat keacakan dalam pemilihan token. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.Nilai yang lebih rendah untuk
temperature
cocok untuk perintah yang memerlukan respons yang lebih deterministik dan kurang terbuka atau kreatif, sedangkan nilai yang lebih tinggi untuktemperature
dapat memberikan hasil yang lebih beragam atau kreatif. Nilai0
untuktemperature
bersifat deterministik, yang berarti bahwa respons probabilitas tertinggi selalu dipilih.TOP_K
: nilaiINT64
dalam rentang[1,40]
yang menentukan kumpulan awal token yang dipertimbangkan model untuk dipilih. Tentukan nilai yang lebih rendah untuk respons dengan tingkat keacakan lebih rendah, dan nilai yang lebih tinggi untuk respons dengan tingkat keacakan lebih tinggi. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.TOP_P
: nilaiFLOAT64
dalam rentang[0.0,1.0]
membantu menentukan probabilitas token yang dipilih. Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.FLATTEN_JSON
: nilaiBOOL
yang menentukan apakah akan menampilkan teks yang dihasilkan dan atribut keamanan di kolom terpisah. Defaultnya adalahFALSE
.
Contoh 1
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Meminta ringkasan teks di kolom
body
pada tabelarticles
. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT('Summarize this text', body) AS prompt FROM mydataset.articles ), STRUCT(TRUE AS flatten_json_output));
Contoh 2
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kueri untuk membuat data prompt dengan menyambungkan string yang memberikan awalan prompt dengan kolom tabel.
- Menampilkan respons singkat.
- Tidak mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, ( SELECT CONCAT(question, 'Text:', description, 'Category') AS prompt FROM mydataset.input_table ), STRUCT( 100 AS max_output_tokens, FALSE AS flatten_json_output));
Contoh 3
Contoh berikut menunjukkan permintaan dengan karakteristik ini:
- Menggunakan kolom
prompt
dari tabelprompts
untuk prompt. - Mengurai respons JSON dari model ke dalam kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.text_model`, TABLE mydataset.prompts, STRUCT(TRUE AS flatten_json_output));
Membuat teks dari data tabel objek
Buat teks menggunakan
fungsi ML.GENERATE_TEXT
dengan model Gemini untuk menganalisis data tidak terstruktur dari tabel
objek. Anda memberikan data perintah dalam parameter prompt
.
SELECT * FROM ML.GENERATE_TEXT( MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`, TABLE PROJECT_ID.DATASET_ID.TABLE_NAME, STRUCT(PROMPT AS prompt, TOKENS AS max_output_tokens, TEMPERATURE AS temperature, TOP_P AS top_p, FLATTEN_JSON AS flatten_json_output, STOP_SEQUENCES AS stop_sequences, SAFETY_SETTINGS AS safety_settings) );
Ganti kode berikut:
PROJECT_ID
: project ID Anda.DATASET_ID
: ID set data yang berisi model.MODEL_NAME
: nama model. Nilai ini harus berupa model Gemini.TABLE_NAME
: nama tabel objek yang berisi konten yang akan dianalisis. Untuk mengetahui informasi selengkapnya tentang jenis konten yang dapat Anda analisis, lihat Input.Bucket Cloud Storage yang digunakan oleh tabel objek harus berada di project yang sama tempat Anda membuat model dan tempat Anda memanggil fungsi
ML.GENERATE_TEXT
. Jika Anda ingin memanggil fungsiML.GENERATE_TEXT
dalam project yang berbeda dengan project yang berisi bucket Cloud Storage yang digunakan oleh tabel objek, Anda harus memberi peran Storage Admin di tingkat bucket ke akun layananservice-A@gcp-sa-aiplatform.iam.gserviceaccount.com
.PROMPT
: perintah yang akan digunakan untuk menganalisis konten.TOKENS
: nilaiINT64
yang menetapkan jumlah maksimum token yang dapat dibuat dalam respons. Nilai ini harus dalam rentang[1,4096]
. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.TEMPERATURE
: nilaiFLOAT64
dalam rentang[0.0,1.0]
yang mengontrol tingkat keacakan dalam pemilihan token. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.Nilai yang lebih rendah untuk
temperature
cocok untuk perintah yang memerlukan respons yang lebih deterministik dan kurang terbuka atau kreatif, sedangkan nilai yang lebih tinggi untuktemperature
dapat memberikan hasil yang lebih beragam atau kreatif. Nilai0
untuktemperature
bersifat deterministik, yang berarti bahwa respons probabilitas tertinggi selalu dipilih.TOP_K
: nilaiINT64
dalam rentang[1,40]
yang menentukan kumpulan awal token yang dipertimbangkan model untuk dipilih. Tentukan nilai yang lebih rendah untuk respons dengan tingkat keacakan lebih rendah, dan nilai yang lebih tinggi untuk respons dengan tingkat keacakan lebih tinggi. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.TOP_P
: nilaiFLOAT64
dalam rentang[0.0,1.0]
membantu menentukan probabilitas token yang dipilih. Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak. Jika Anda tidak menentukan nilai, model akan menentukan nilai yang sesuai.FLATTEN_JSON
: nilaiBOOL
yang menentukan apakah akan menampilkan teks yang dihasilkan dan atribut keamanan di kolom terpisah. Defaultnya adalahFALSE
.
Contoh
Contoh ini menerjemahkan dan mentranskripsikan konten audio dari tabel objek yang bernama feedback
:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.audio_model`, TABLE `mydataset.feedback`, STRUCT('What is the content of this audio clip, translated into Spanish?' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));
Contoh ini mengklasifikasikan konten PDF dari tabel objek
yang bernama invoices
:
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.classify_model`, TABLE `mydataset.invoices`, STRUCT('Classify this document based on the invoice total, using the following categories: 0 to 100, 101 to 200, greater than 200' AS PROMPT, TRUE AS FLATTEN_JSON_OUTPUT));