AI_GENERATE adalah fungsi AI di MaxCompute yang memanggil model untuk melakukan inferensi berdasarkan prompt yang diberikan. Anda dapat menggunakan fungsi ini secara langsung dalam SQL guna memproses data tidak terstruktur untuk berbagai skenario, termasuk generasi bahasa alami, analisis logika kompleks, analisis sentimen, dan pemahaman multimodal, tanpa bergantung pada layanan eksternal.
Sintaksis
Tanda tangan fungsi AI_GENERATE bervariasi tergantung pada apakah Anda menggunakan large language model (LLM) atau multimodal large language model (MLLM).
Untuk LLM, tanda tangan fungsinya adalah sebagai berikut:
STRING AI_GENERATE( STRING <model_name> , STRING <version_name>, STRING <prompt> [, STRING <model_parameters>] );Untuk MLLM, tanda tangan 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. STRING. Nama model yang akan digunakan. Model tersebut dapat berupa large language model (LLM) atau multimodal large language model (MLLM).
version_name: Wajib diisi. STRING. Versi model yang akan digunakan. Anda dapat menentukan
DEFAULT_VERSIONuntuk memanggil versi default.prompt: Wajib diisi. STRING. Prompt yang dikirim ke model. Nilai ini dapat berupa konstanta
STRING, nama kolom, atau ekspresi.unstructured_data: Wajib diisi untuk MLLM. STRING atau BINARY.
Data multimodal yang akan diproses. Anda dapat menentukan URL file gambar, audio, atau video sebagai STRING, atau menyediakan data biner gambar sebagai BINARY. Jika Anda menggunakan tipe BINARY, Anda juga harus menentukan parameter input BINARY saat membuat model.
type: Ketika unstructured_data berupa URL STRING untuk gambar, audio, atau video, parameter ini wajib diisi. Nilai yang valid adalah IMAGE, AUDIO, dan VIDEO. Contoh:
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. String JSON yang menentukan parameter untuk pemanggilan model, seperti
max_tokens,temperature, dantop_p. Contoh:'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'. Parameter berikut didukung:max_tokens: Jumlah maksimum token yang dihasilkan dalam satu panggilan model. Nilai default adalah 4096 untuk model publik MaxCompute.
temperature: Nilai antara 0 dan 1 yang mengatur tingkat keacakan output model. Nilai yang lebih tinggi menghasilkan output yang lebih beragam dan acak.
top_p: Nilai antara 0 dan 1 yang mengatur keacakan dan keragaman output model. Nilai yang lebih tinggi menghasilkan output yang lebih acak.
Untuk memanggil model publik dengan fungsi AI, jalankan SET odps.sql.using.public.model=true; untuk mengaktifkan akses.
Nilai kembalian
Mengembalikan STRING yang berisi konten yang dihasilkan oleh model.
Contoh
Contoh 1: Hasilkan konten
Memanggil model publik Qwen3-0.6B-GGUF di MaxCompute untuk menghasilkan konten.
SET odps.sql.using.public.model=true;
SET odps.namespace.schema=true;
SELECT AI_GENERATE(bigdata_public_modelset.default.Qwen3-0.6B-GGUF,DEFAULT_VERSION,'what is the capital of China');
-- Returns:
-- "The capital of China is **Beijing**."Contoh 2: Lakukan analisis sentimen
Memanggil model publik Qwen3-1.7B-GGUF di MaxCompute untuk melakukan analisis sentimen terhadap komentar pengguna.
SET odps.sql.using.public.model=true;
SET odps.namespace.schema=true;
SELECT
prompt,
AI_GENERATE(
bigdata_public_modelset.default.Qwen3-1.7B-GGUF,
DEFAULT_VERSION,
concat('Perform sentiment analysis on the following comment. The output must be one of the following three options: Positive, Negative, or Neutral. Comment to analyze:', prompt)
) AS generated_text
FROM (
VALUES
('The weather is great today, and I am in a good mood! It is sunny and perfect for a walk. /no_think'),
('The weather is great today, and I am in a good mood! It is sunny /no_think'),
('Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think'),
('The prevention and control measures are excellent. Thumbs up to the medical staff! /no_think'),
('The quality of this product is very poor. /no_think')
) t (prompt);
-- Returns:
+-----------------------------------------------------------------------------------------+----------------+
| prompt | generated_text |
+-----------------------------------------------------------------------------------------+----------------+
| The weather is great today, and I am in a good mood! It is sunny and perfect for a walk. /no_think | "Positive" |
| The weather is great today, and I am in a good mood! It is sunny /no_think | "Positive" |
| Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think | "Neutral" |
| The prevention and control measures are excellent. Thumbs up to the medical staff! /no_think | "Positive" |
| The quality of this product is very poor. /no_think | "Negative" |
+-----------------------------------------------------------------------------------------+----------------+
Contoh 3: Proses data multimodal
Contoh ini memanggil model remote PAI-EAS bernama PAI_EAS_Qwen25_Omni_3B yang telah dibuat sebelumnya dan menggunakan Object Table untuk memanggil fungsi AI. Untuk petunjuk lengkap, lihat Gunakan model remote MaxCompute untuk menghasilkan deskripsi produk e-commerce secara otomatis.
Didukung Titik akhir VPC (direkomendasikan) dan Titik akhir publik PAI-EAS.
Jika Anda menggunakan Titik akhir VPC PAI-EAS, Anda harus membuat koneksi jaringan khusus dan menentukan nama koneksi jaringan yang telah dikonfigurasi dalam pemanggilan fungsi AI. Untuk petunjuk konfigurasi, lihat Akses VPC melalui Jalur sewa.
Jika Anda menggunakan Titik akhir publik PAI-EAS, Anda harus menambahkan titik akhir tersebut ke daftar alamat jaringan eksternal yang diizinkan di MaxCompute sebelum memanggil fungsi AI. Untuk petunjuk konfigurasi, lihat Konfigurasi akses jaringan.
Proses gambar
Anda dapat memanggil model dengan URL gambar dan prompt untuk memberi tag kategori produk. Dalam contoh ini, Object Table bernama
image_demo.SELECT key, AI_GENERATE( PAI_EAS_Qwen25_Omni_3B, v1, image_url, "Identify and extract the product category from the e-commerce sales poster. The result must be one of the following six options: Cosmetics, Apparel, Daily Necessities, Food, Other, or Electronic Products. Do not include any other text or information.","IMAGE" ) AS item_catagory FROM ( SELECT GET_SIGNED_URL_FROM_OSS( 'project_test_model.default.image_demo', key, 604800 ) AS image_url, key AS key FROM project_test_model.default.image_demo ) Limit 10; -- Returns: +--------------------+---------------------+ | key | item_catagory | +--------------------+---------------------+ | alimamazszw-1.jpg | Food | | alimamazszw-10.jpg | Electronic Products | | alimamazszw-11.jpg | Electronic Products | | alimamazszw-12.jpg | Cosmetics | | alimamazszw-13.jpg | Electronic Products | | alimamazszw-14.jpg | Daily Necessities | | alimamazszw-15.jpg | Cosmetics | | alimamazszw-16.jpg | Cosmetics | | alimamazszw-18.jpg | Daily Necessities | +--------------------+---------------------+Proses audio
Panggil model untuk melakukan pemberian tag kategori audio berdasarkan URL audio dan prompt. Dalam contoh ini, Object Table bernama
music_demo. Set data audio tersedia di tautan unduh ini.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, or 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 remote PAI-EAS
Jika pekerjaan Anda yang memanggil model remote MaxCompute dengan fungsi AI_GENERATE mengembalikan hasil kosong, ikuti langkah-langkah troubleshooting berikut:
CREATE MODEL parameter
PAI_EAS_SERVICE_NAME:Periksa apakah layanan PAI-EAS telah ditambahkan ke dalam kelompok layanan.
Jika layanan berada dalam kelompok layanan, Anda harus menentukan nama layanan dalam format
group_name.service_name, misalnyagroup.service_name.Jika layanan tidak berada dalam kelompok layanan, cukup tentukan nama layanan PAI-EAS saja.
Endpoint:Saat menyetel parameter
ENDPOINTuntuk model, jangan sertakan path setelah domain.com, baik Anda menggunakan Titik akhir publik PAI-EAS maupun Titik akhir VPC (direkomendasikan). Contoh format yang benar:http://1*************70.cn-shanghai.pai-eas.aliyuncs.com.APIKEY:Pastikan Anda telah memberikan token layanan PAI-EAS yang benar.
Untuk informasi lebih lanjut tentang cara mendapatkan nilai parameter tersebut, lihat Dapatkan titik akhir dan token.
AI_GENERATE parameter fungsi
Ketika memproses data audio atau video, parameter unstructured_data tidak mendukung tipe BINARY.
Jika Anda menggunakan URL STRING namun tetap menerima hasil kosong, pastikan Anda telah menentukan parameter
typedengan benar. Nilai yang didukung adalahIMAGE,AUDIO, danVIDEO. Contoh: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, or 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;
Status runtime
Nonaktifkan akselerasi kueri untuk menentukan apakah fitur tersebut mengganggu pemanggilan model. Tambahkan pernyataan berikut sebelum pemanggilan fungsi
AI_GENERATE:set odps.mcqa.disable=true;Akselerasi kueri, yang diaktifkan secara default dalam beberapa skenario, dapat mengganggu pemanggilan model remote dan harus dinonaktifkan secara manual.
Sumber daya PAI-EAS
Periksa apakah sumber daya PAI-EAS yang dialokasikan untuk model remote mencukupi. Jika pekerjaan gagal dengan error kehabisan memori (OOM), tingkatkan kapasitas sumber daya dan coba lagi.