AI_GENERATE adalah fungsi AI MaxCompute yang memanggil model melalui prompt untuk menjalankan tugas inferensi. Fungsi ini mendukung berbagai skenario, seperti generasi bahasa alami, analisis logika kompleks, analisis sentimen, dan pemahaman multi-modal, serta memungkinkan Anda memproses data tidak terstruktur secara langsung menggunakan SQL tanpa bergantung pada layanan eksternal.
Sintaksis
Fungsi AI_GENERATE memiliki signature berbeda untuk large language models (LLM) dan multi-modal large language models (MLLM).
Jika
model_typeadalah LLM, signature fungsinya adalah sebagai berikut:STRING AI_GENERATE( STRING <model_name> , STRING <version_name>, STRING <prompt> [, STRING <model_parameters>] );Jika
model_typeadalah MLLM, signature fungsinya adalah sebagai berikut:STRING AI_GENERATE( STRING <model_name>, STRING <version_name>, STRING | BINARY <unstructured_data> , STRING <prompt> STRING <type> [, STRING <model_parameters>] );
Parameter
model_name: Wajib diisi. Nilai STRING yang menentukan nama model.
model_typemodel tersebut harus berupa LLM atau MLLM.version_name: Wajib diisi. Nilai STRING yang menentukan versi model. Untuk memanggil versi default, tentukan
DEFAULT_VERSION.prompt: Wajib diisi. Prompt untuk model. Harus berupa konstanta, nama kolom, atau ekspresi bertipe
STRING.unstructured_data: Wajib diisi jika
model_typeadalah MLLM. Nilai STRING atau BINARY.Menentukan data multi-modal yang akan diproses, yang dapat berupa URL STRING untuk gambar, audio, atau video, atau representasi BINARY dari gambar. Jika Anda menentukan tipe BINARY, Anda juga harus menentukan parameter input BINARY saat membuat model.
type: Jika unstructured_data berupa URL STRING untuk gambar, audio, atau video, parameter type wajib diisi. Nilai yang didukung adalah IMAGE, AUDIO, dan VIDEO. Contohnya:
Audio:
AI_GENERATE(model, version, audio_url, prompt, 'AUDIO');Video:
AI_GENERATE(model, version, video_url, prompt, 'VIDEO');Gambar:
AI_GENERATE(model, version, image_url, prompt, 'IMAGE');
model_parameters: Opsional. STRING. Menentukan parameter model seperti
max_tokens,temperature, dantop_p. Formatnya adalah string JSON:'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'.max_tokens: Jumlah maksimum token yang dihasilkan dalam satu panggilan model. Untuk model publik MaxCompute, nilai default-nya adalah 4.096.
temperature: Nilai antara 0 dan 1 yang mengatur tingkat keacakan output. Nilai yang lebih tinggi menghasilkan output yang lebih kreatif dan beragam, sedangkan nilai yang lebih rendah menghasilkan output yang lebih deterministik dan konservatif.
top_p: Nilai antara 0 dan 1 yang membatasi rentang label kandidat yang dapat dipilih oleh model. Nilai yang lebih tinggi memungkinkan rentang yang lebih luas dan keragaman lebih besar, sedangkan nilai yang lebih rendah mempersempit rentang dan menghasilkan hasil yang lebih fokus.
Untuk menggunakan fungsi AI guna melakukan inferensi dengan model publik, Anda harus terlebih dahulu mengaktifkan penggunaan model publik dengan menjalankan perintah SET odps.sql.using.public.model=true;.
Nilai kembalian
Mengembalikan STRING yang berisi konten yang dihasilkan oleh model.
Contoh
Contoh 1: Melakukan analisis sentimen
Gunakan model publik qwen3.7-max yang disediakan oleh MaxCompute untuk melakukan analisis sentimen pada data komentar pengguna online.
SET odps.namespace.schema=true;
SELECT
prompt,
AI_GENERATE(
bigdata_public_modelset.default.`qwen3.7-max`,
DEFAULT_VERSION,
concat('Please classify the sentiment of the following comment. The output must be exactly one of the following three options: Positive, Negative, Neutral. Comment to analyze: ', prompt)
) AS generated_text
FROM (
VALUES
('The weather is great today, and I am in a good mood! The sun is shining, perfect for a walk. /no_think'),
('The weather is great today, and I am in a good mood! The sun is shining /no_think'),
('Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think'),
('The control measures are excellent, kudos to the healthcare workers! /no_think'),
('The quality of this product is very poor /no_think')
) t (prompt);
-- Hasil berikut dikembalikan:
+--------+----------------+
| prompt | generated_text |
+--------+----------------+
| The weather is great today, and I am in a good mood! The sun is shining, perfect for a walk. /no_think | Positive |
| The weather is great today, and I am in a good mood! The sun is shining /no_think | Positive |
| Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think | Neutral |
| The control measures are excellent, kudos to the healthcare workers! /no_think | Positive |
| The quality of this product is very poor /no_think | Negative |
+--------+----------------+Contoh 2: Menghasilkan konten
Panggil model publik deepseek-v4-pro yang disediakan oleh MaxCompute untuk langsung melakukan inferensi model dan pembuatan konten.
SET odps.namespace.schema=true;
SELECT AI_GENERATE(bigdata_public_modelset.default.`deepseek-v4-pro`,DEFAULT_VERSION,'what is the capital of China');
-- Hasil berikut dikembalikan:
+-----+
| _c0 |
+-----+
| The capital of China is **Beijing**. |
+-----+Contoh 3: Melakukan pemrosesan data multi-modal
Pemrosesan gambar
Panggil model publik qwen3.7-plus untuk memberi label kategori produk berdasarkan URL gambar dan prompt. Dalam contoh ini, Object Table bernama
image_demo.-- Aktifkan model tiga tingkat. SET odps.namespace.schema=true; -- Buat Object Table. CREATE OBJECT TABLE IF NOT EXISTS image_demo WITH SERDEPROPERTIES ('odps.properties.rolearn'='acs:ram::xxxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole') LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/muze-demo/poster_11/'; ALTER TABLE image_demo REFRESH METADATA; SELECT COUNT(*) AS ROW_COUNT FROM image_demo; +------------+ | row_count | +------------+ | 50 | +------------+ -- Panggil model publik qwen3.7-plus untuk memberi label kategori produk berdasarkan URL gambar dan prompt. SELECT key, AI_GENERATE( bigdata_public_modelset.default.`qwen3.7-plus`, DEFAULT_VERSION, image_url, 'Identify and extract the product category from the e-commerce product poster. The output must be exactly one of the following six options: Beauty, Apparel, Daily necessities, Food, Other, Electronics. Do not include any other text or information.','IMAGE' ) AS item_catagory FROM ( SELECT GET_SIGNED_URL_FROM_OSS( 'muze_project.default.image_demo', key, 604800 ) AS image_url, key AS key FROM muze_project.default.image_demo ) Limit 10; -- Hasil berikut dikembalikan: +------+---------------+ | key | item_catagory | +------+---------------+ | O1CN01085bQu2GXxbXWRZdR_!!190979026-0-alimamazszw.jpg | Electronics | | O1CN01090E2K2IpTwrsnKig_!!2200646859335-0-alimamazszw.jpg | Daily necessities | | O1CN01104c5a1V8Ve9lucF0_!!2212022232608-0-alimamazszw.jpg | Food | | O1CN01113ir71oWIvnjQ5VI_!!2207697805232-0-alimamazszw.jpg | Beauty | | O1CN01174q2u1ZlDaCqi6bG_!!2212097133234-0-alimamazszw.jpg | Other | | O1CN01361qwo2D9HOv5WB4p_!!826038566-0-alimamazszw.jpg | Other | | O1CN01413KK82ANWsnkpDh4_!!802948191-0-alimamazszw.jpg | Apparel | | O1CN01446lv42D12HPYUDpl_!!1573418548-0-alimamazszw.jpg | Apparel | | O1CN01447sWy2E4zJ1YgpM0_!!1676208692-0-alimamazszw.jpg | Beauty | | O1CN01526tSJ1QY5hF6zdE7_!!2867731987-0-alimamazszw.jpg | Food | +------+---------------+Pemrosesan audio
Setelah Anda membuat model remote PAI-EAS bernama PAI_EAS_Qwen25_Omni_3B dan Object Table, Anda dapat memanggil fungsi AI tersebut. Untuk langkah-langkah detailnya, lihat Gunakan model remote MaxCompute untuk menghasilkan deskripsi produk e-commerce secara otomatis.
Catatan Anda dapat menggunakan endpoint VPC (direkomendasikan) atau endpoint jaringan publik PAI-EAS.
Jika Anda menggunakan endpoint VPC PAI-EAS, Anda harus mengaktifkan koneksi jalur sewa dan menentukan nama koneksi jaringan yang telah dikonfigurasi saat memanggil fungsi AI. Untuk detail konfigurasi, lihat Solusi akses VPC (koneksi jalur sewa).
Jika Anda menggunakan endpoint jaringan publik PAI-EAS, Anda harus menambahkan endpoint tersebut ke daftar izin jaringan eksternal MaxCompute sebelum memanggil fungsi AI. Untuk petunjuk konfigurasi, lihat Prosedur Akses Jaringan.
Panggil model dengan URL audio dan prompt untuk memberi label kategori audio. Dalam contoh ini, Object Table bernama
music_demo. Anda dapat mengunduh set data audio dari tautan unduh berikut.SELECT key, AI_GENERATE( PAI_EAS1_Qwen25_Omni_3B, v1, audio_url, "Accurately analyze the music genre of the audio. The result must be one of the following seven options, with no additional information: Classical, Country, Hip-hop, Metal, Pop, Reggae, Rock","AUDIO" ) as item_catagory from ( select GET_SIGNED_URL_FROM_OSS( 'project_test_model.default.music_demo', key, 604800 ) as audio_url, key as key from project_test_model.default.music_demo ) Limit 42;
FAQ
Penyelesaian masalah model publik
Gejala: Memanggil model publik melalui layanan komputasi model mengembalikan error berikut:
FAILED: ODPS-0130071:[1,8] Semantic analysis exception - inference quota status check failed, error message: region cn-shanghai not found in inference quotaPenyebab: Layanan komputasi model belum diaktifkan untuk wilayah proyek Anda (misalnya, cn-shanghai), sehingga mencegah pemanggilan resource inferensi AI.
Solusi: Aktifkan layanan komputasi model untuk wilayah proyek Anda di Konsol Alibaba Cloud. Untuk petunjuk detail, lihat Pembelian dan penggunaan layanan komputasi model MaxCompute.
Penyelesaian masalah model remote PAI-EAS
Jika pemanggilan model remote MaxCompute menggunakan fungsi AI_GENERATE mengembalikan hasil kosong, ikuti langkah-langkah berikut untuk memecahkan masalah:
Periksa parameter Buat model remote
PAI_EAS_SERVICE_NAME:
Periksa apakah layanan EAS telah ditambahkan ke kelompok layanan.
Jika ya, Anda harus menentukan nama dalam format
group_name.service_name, sepertigroup.service_name.Jika tidak, cukup tentukan nama layanan EAS saja.
Endpoint:
Saat menyetel parameter ENDPOINT model, jangan sertakan informasi setelah .com dalam alamat, baik Anda menggunakan alamat jaringan publik EAS maupun alamat VPC (direkomendasikan). Contoh format alamat yang benar adalah:
http://1*************70.cn-shanghai.pai-eas.aliyuncs.com.APIKEY:
Verifikasi bahwa token layanan PAI-EAS benar.
Untuk mendapatkan nilai parameter, lihat 6.1 Mendapatkan endpoint dan token.
Periksa parameter fungsi
AI_GENERATE.Untuk data audio dan video, tipe
BINARYtidak didukung untuk unstructured_data.Jika Anda menggunakan URL STRING dan fungsi mengembalikan hasil kosong, verifikasi bahwa parameter
typetelah ditentukan dengan benar. Nilai yang didukung adalahIMAGE,AUDIO, danVIDEO. Contohnya:SELECT key, AI_GENERATE( PAI_EAS1_Qwen25_Omni_3B, v1, audio_url, "Accurately analyze the music genre of the audio. The result must be one of the following seven options, with no additional information: Classical, Country, Hip-hop, Metal, Pop, Reggae, Rock","AUDIO" ) as item_catagory from ( select GET_SIGNED_URL_FROM_OSS( 'project_test_model.default.music_demo', key, 604800 ) as audio_url, key as key from project_test_model.default.music_demo ) Limit 42;
Periksa status waktu proses
Nonaktifkan secara manual tugas akselerasi kueri untuk menghilangkan dampak tugas SQLRT terhadap pemanggilan model. Sebelum memanggil fungsi AI_GENERATE, tambahkan baris berikut:
set odps.mcqa.disable=true;Dalam beberapa skenario, akselerasi kueri diaktifkan secara default saat Anda mengirimkan pekerjaan. Fitur ini dapat mengganggu pemanggilan model remote dan harus dinonaktifkan secara manual.
Periksa resource PAI-EAS
Pastikan resource PAI-EAS untuk model remote mencukupi. Selama eksekusi pekerjaan, periksa adanya masalah terkait resource, seperti error kehabisan memori (OOM). Jika masalah tersebut terjadi, tingkatkan kapasitas resource dan coba ulang pekerjaan.