Fungsi ML.GENERATE_TEXT
Dokumen ini menjelaskan fungsi ML.GENERATE_TEXT
, yang memungkinkan Anda melakukan tugas natural language generatif pada teks yang disimpan dalam tabel BigQuery. Contoh tugas bahasa meliputi:
- Klasifikasi
- Analisis Sentimen
- Ekstraksi entity
- Question Answering Ekstraktif
- Perangkuman
- Menulis ulang teks dengan gaya yang berbeda
- Pembuatan teks iklan
- Proses memunculkan ide konsep
Fungsi ini bekerja dengan mengirim permintaan ke model jarak jauh ML BigQuery
yang mewakili salah satu model dasar
bahasa natural text-bison*
Vertex AI
(LLM), lalu menampilkan respons LLM. Beberapa argumen
fungsi memberikan
parameter
yang membentuk respons LLM.
Parameter prompt
menyediakan teks untuk dianalisis oleh model.
Prompt Design dapat sangat memengaruhi respons yang ditampilkan oleh LLM. Untuk
mengetahui informasi selengkapnya, lihat
Mendesain prompt teks.
Sintaks
ML.GENERATE_TEXT( MODEL `project_id.dataset.model`, { TABLE `project_id.dataset.table` | (query_statement) }, STRUCT( [number_of_output_tokens AS max_output_tokens] [, top_k_value AS top_k] [, top_p_value AS top_p] [, temperature AS temperature] [, flatten_json_output AS flatten_json_output]) )
Argumen
ML.GENERATE_TEXT
menggunakan argumen berikut:
project_id
: Project ID Anda.dataset
: Set data BigQuery yang berisi model.model
: Nama model jarak jauh yang menggunakan salah satu LLM Vertex AItext-bison*
. Untuk mengetahui informasi selengkapnya tentang cara membuat jenis model jarak jauh ini, lihatENDPOINT
.table
: Nama tabel BigQuery yang berisi data perintah. Teks dalam kolom yang bernamaprompt
dikirim ke model. Jika tabel Anda tidak memiliki kolomprompt
, gunakan pernyataanSELECT
untuk argumen ini guna memberikan alias untuk kolom tabel yang ada. Error akan terjadi jika tidak ada kolomprompt
yang tersedia.query_statement
: Kueri GoogleSQL yang digunakan untuk menghasilkan data perintah.max_output_tokens
: nilaiINT64
dalam rentang[1,1024]
yang menetapkan jumlah token maksimum yang dihasilkan oleh model. Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang lebih panjang. Defaultnya adalah50
.Token mungkin lebih kecil dari kata dan kira-kira empat karakter. 100 token sesuai dengan sekitar 60-80 kata.
temperature
: nilaiFLOAT64
dalam rentang[0.0,1.0]
yang digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saattop_k
dantop_p
diterapkan. Model ini mengontrol tingkat keacakan dalam pemilihan token. Nilaitemperature
yang lebih rendah cocok untuk perintah yang memerlukan respons yang lebih deterministik dan tidak terlalu terbuka atau kreatif, sedangkan nilaitemperature
yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Nilaitemperature
dari0
bersifat deterministik, yang berarti bahwa respons probabilitas tertinggi selalu dipilih. Defaultnya adalah1.0
.top_k
: nilaiINT64
di rentang[1,40]
yang mengubah cara model memilih token untuk output. Tentukan nilai yang lebih rendah untuk respons dengan tingkat keacakan yang lebih rendah dan nilai yang lebih tinggi untuk respons dengan tingkat keacakan yang lebih tinggi. Defaultnya adalah40
.Nilai
top_k
dari1
berarti token yang dipilih berikutnya adalah yang memiliki kemungkinan paling besar di antara semua token dalam kosakata model, sedangkan nilaitop_k
3
berarti bahwa token akan dipilih dari tiga token yang memiliki kemungkinan paling besar dengan menggunakan nilaitemperature
.Untuk setiap langkah pemilihan token, token
top_k
dengan probabilitas tertinggi akan diambil sampelnya. Lalu, token akan difilter lebih lanjut berdasarkan nilaitop_p
, dan token akhir dipilih menggunakan sampling suhu.top_p
: nilaiFLOAT64
di rentang[0.0,1.0]
yang mengubah cara model memilih token untuk output. Tentukan nilai yang lebih rendah untuk respons dengan tingkat keacakan yang lebih rendah dan nilai yang lebih tinggi untuk respons dengan tingkat keacakan yang lebih tinggi. Defaultnya adalah1.0
.Token dipilih dari yang terbanyak (berdasarkan nilai
top_k
) hingga yang probabilitasnya paling sedikit hingga jumlah probabilitasnya sama dengan nilaitop_p
. Misalnya, jika token A, B, dan C memiliki probabilitas0.3
,0.2
, dan0.1
serta nilaitop_p
adalah0.5
, maka model akan memilih A atau B sebagai token berikutnya dengan menggunakan nilaitemperature
dan tidak mempertimbangkan C.flatten_json_output
: nilaiBOOL
yang menentukan apakah konten JSON yang ditampilkan oleh fungsi akan diuraikan menjadi kolom terpisah. Defaultnya adalahFALSE
.
Output
ML.GENERATE_TEXT
menampilkan tabel input dan kolom berikut:
ml_generate_text_result
: respons JSON dari panggilanprojects.locations.endpoints.predict
ke model. Teks yang dihasilkan ada di elemencontent
. Atribut keamanan berada di elemensafetyAttributes
. Kolom ini ditampilkan jikaflatten_json_output
adalahFALSE
.ml_generate_text_llm_result
: nilaiSTRING
yang berisi teks yang dihasilkan yang ditampilkan oleh panggilanprojects.locations.endpoints.predict
ke model. Kolom ini ditampilkan jikaflatten_json_output
adalahTRUE
.ml_generate_text_rai_result
: nilaiSTRING
yang berisi atribut keamanan yang ditampilkan oleh panggilanprojects.locations.endpoints.predict
ke model. Kolom ini ditampilkan jikaflatten_json_output
adalahTRUE
.ml_generate_text_status
: nilaiSTRING
yang berisi status respons API untuk baris yang sesuai. Nilai ini kosong jika operasi berhasil.
Lokasi
ML.GENERATE_TEXT
harus berjalan di region yang sama dengan model jarak jauh yang direferensikan oleh fungsi tersebut. Anda hanya dapat membuat model jarak jauh berdasarkan
model text-bison*
di lokasi berikut:
asia-northeast3
asia-southeast1
eu
europe-west1
europe-west2
europe-west3
europe-west4
europe-west9
us
us-central1
us-west4
Kuota
Lihat Kuota dan batas fungsi bernilai tabel layanan Cloud AI.
Contoh
Contoh 1
Contoh ini menampilkan permintaan dengan karakteristik berikut:
- Memberikan satu perintah.
- Menampilkan respons teks yang dihasilkan lebih panjang.
- Menampilkan respons teks yang dihasilkan dengan kemungkinan yang lebih kecil.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.llm_model`, (SELECT 'What is the purpose of dreams?' AS prompt), STRUCT( 0.8 AS temperature, 1024 AS max_output_tokens, 0.95 AS top_p, 40 AS top_k));
Contoh 2
Contoh ini menampilkan permintaan dengan karakteristik berikut:
- Memberikan data perintah dari kolom tabel bernama
prompt
. - Menampilkan respons teks yang dihasilkan lebih pendek.
- Menampilkan respons teks yang dihasilkan dengan kemungkinan yang lebih besar.
- Meratakan respons JSON menjadi kolom terpisah.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.llm_model` TABLE `mydataset.prompt_table`, STRUCT( 0.2 AS temperature, 75 AS max_output_tokens, 0.3 AS top_p, 15 AS top_k, TRUE AS flatten_json_output));
Contoh 3
Contoh ini menampilkan permintaan dengan karakteristik berikut:
- Memberikan data perintah dari kolom tabel bernama
question
yang dialiaskan sebagaiprompt
. - Menampilkan respons teks yang dihasilkan dengan durasi yang cukup lama.
- Menampilkan respons teks yang dihasilkan dengan kemungkinan yang cukup besar.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.llm_model`, (SELECT question AS prompt FROM `mydataset.prompt_table`), STRUCT( 0.4 AS temperature, 750 AS max_output_tokens, 0.5 AS top_p, 30 AS top_k));
Contoh 4
Contoh ini menampilkan permintaan dengan karakteristik berikut:
- Menggabungkan string dan kolom tabel untuk menyediakan data perintah.
- Menampilkan respons teks yang dihasilkan lebih panjang.
- Menampilkan respons teks yang dihasilkan dengan kemungkinan yang lebih besar.
SELECT * FROM ML.GENERATE_TEXT( MODEL `mydataset.llm_model`, ( SELECT CONCAT( 'Classify the sentiment of the following text as positive or negative.Text:', input_column, 'Sentiment:') AS prompt FROM `mydataset.input_table` ), STRUCT( 0.1 AS temperature, 1000 AS max_output_tokens, 0.1 AS top_p, 10 AS top_k));
Langkah selanjutnya
- Coba tutorial tentang membuat teks menggunakan set data publik.
- Dapatkan petunjuk langkah demi langkah tentang cara membuat teks menggunakan data Anda sendiri.
- Pelajari lebih lanjut fungsi AI yang dapat Anda gunakan untuk menganalisis data BigQuery.