全部产品
Search
文档中心

MaxCompute:AI_GENERATE

更新时间:Nov 27, 2025

AI_GENERATE adalah fungsi AI di MaxCompute yang memanggil model untuk menjalankan tugas inferensi berdasarkan prompt. Fungsi ini mendukung berbagai tugas, seperti generasi bahasa alami, analisis logika kompleks, analisis sentimen, dan pemahaman multimodal. Anda dapat menggunakan SQL untuk memproses data tidak terstruktur tanpa memerlukan layanan eksternal.

Format perintah

Fungsi AI_GENERATE memiliki signature berbeda untuk memanggil large language model (LLM) dan multimodal large language model (MLLM).

  • Ketika model_type bernilai LLM, signature fungsinya adalah sebagai berikut:

    STRING AI_GENERATE(
      STRING <model_name> , 
      STRING <version_name>, 
      STRING <prompt> 
      [, STRING <model_parameters>]
    );
  • Ketika model_type bernilai MLLM, signature fungsinya adalah sebagai berikut:

    STRING AI_GENERATE(
      STRING <model_name>, 
      STRING <version_name>, 
      STRING | BINARY <unstructured_data> ,
      STRING <prompt> 
      [, STRING <model_parameters>]
    );

Parameter

  • model_name: Wajib. Nilai STRING yang menentukan nama model yang akan digunakan. Model tersebut dapat berupa LLM atau MLLM.

  • version_name: Wajib. Nilai `STRING` yang menentukan nama versi model yang akan digunakan. Untuk menggunakan versi default, atur parameter ini ke DEFAULT_VERSION.

  • prompt: Wajib. Sebuah `STRING` yang menentukan prompt yang dikirim ke model. Nilainya dapat berupa konstanta STRING, nama kolom, atau ekspresi.

  • unstructured_data: Wajib jika model_type bernilai MLLM. Nilai bertipe STRING atau BINARY yang menentukan data multimodal yang akan diproses. Anda dapat menentukan URL citra sebagai STRING atau data biner citra sebagai BINARY. Jika menggunakan tipe data BINARY, parameter input BINARY juga harus ditentukan saat model dibuat.

  • model_parameters: Opsional. Nilai STRING yang digunakan untuk menentukan parameter pemanggilan model—seperti max_tokens, temperature, dan top_p—dalam format berikut: '{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'. Penjelasan masing-masing parameter adalah sebagai berikut:

    • max_tokens: Jumlah maksimum token dalam output dari satu kali pemanggilan model. Untuk model publik di MaxCompute, nilai default-nya adalah 4096.

    • temperature: Nilai antara 0 dan 1 yang mengontrol tingkat keacakan output model. Nilai yang lebih tinggi menghasilkan output yang lebih beragam dan acak.

    • top_p: Nilai antara 0 dan 1 yang mengontrol keacakan dan keragaman output model. Nilai yang lebih tinggi menghasilkan output yang lebih acak.

Catatan

Untuk menggunakan fungsi AI guna memanggil model publik untuk inferensi, Anda harus terlebih dahulu menjalankan perintah SET odps.sql.using.public.model=true; untuk mengaktifkan penggunaan model publik.

Nilai kembalian

Mengembalikan nilai STRING yang berisi konten yang dihasilkan oleh model.

Contoh

  • Contoh 1: Memanggil model untuk pembuatan konten.

    Panggil model publik Qwen3-0.6B-GGUF di MaxCompute untuk menghasilkan konten.

    SET odps.sql.using.public.model=true;
    -- Hasil berikut dikembalikan.
    -- "Ibu kota Tiongkok adalah **Beijing**."
    SELECT AI_GENERATE(bigdata_public_modelset.default.Qwen3-0.6B-GGUF,DEFAULT_VERSION,'what is the capital of China');
  • Contoh 2: Memanggil model untuk analisis sentimen.

    Panggil model publik Qwen3-1.7B-GGUF di MaxCompute untuk melakukan analisis sentimen terhadap komentar pengguna.

    SET odps.sql.using.public.model=true;
    SELECT 
        prompt,
        AI_GENERATE(
            bigdata_public_modelset.default.Qwen3-1.7B-GGUF,
            DEFAULT_VERSION,
            concat('Perform sentiment analysis and classification on the following comment. The output must be one of these three options: Positive, Negative, or Neutral. Comment to analyze:', prompt)
        ) AS generated_text
    FROM (
        VALUES 
            ('The weather is great today, and I''m in a good mood! It''s sunny and perfect for a walk. /no_think'),
            ('The weather is great today, and I''m in a good mood! It''s sunny. /no_think'),
            ('Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think'),
            ('The control measures are excellent. Thumbs up to the medical staff! /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'm in a good mood! It's sunny and perfect for a walk. /no_think | "Positive"     |
    | The weather is great today, and I'm in a good mood! It's sunny. /no_think                      | "Positive"     |
    | Technology is advancing rapidly, and artificial intelligence is changing lives. /no_think        | "Positive"     |
    | The 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: Memanggil model untuk pemrosesan data multimodal.

    Contoh ini memanggil model bernama PAI_EAS_Qwen25_Omni_3B, yaitu model remote PAI-EAS, untuk memberi tag kategori produk berdasarkan URL citra dan prompt. Anda juga harus membuat Object Table bernama image_demo. Untuk informasi selengkapnya, lihat Gunakan model remote MaxCompute untuk menghasilkan deskripsi produk e-commerce secara otomatis.

    Catatan

    Saat ini, model remote MaxCompute hanya mendukung alamat Internet PAI-EAS. Saat menggunakan fungsi AI untuk memanggil model, Anda harus menambahkan alamat Internet PAI-EAS sebagai alamat jaringan eksternal yang tersedia di MaxCompute. Untuk informasi selengkapnya, lihat Edit alamat jaringan eksternal dalam manajemen proyek.

    SELECT
      key,
      AI_GENERATE(
        PAI_EAS_Qwen25_Omni_3B, v1, image_url,
        "Recognize and extract the product category from the e-commerce product sales poster. The result must be one of the following six options: Cosmetics, Apparel, Daily Necessities, Food, Other, Electronic Products. Do not include any other text or information."
      ) AS item_catagory
      FROM (
        SELECT GET_SIGNED_URL_FROM_OSS(
          'pd_test_model.default.image_demo', key, 604800
        ) AS image_url, key AS key
        FROM pd_test_model.default.image_demo
    ) Limit 10;
    
    -- Hasil berikut dikembalikan:
    +--------------------+---------------------+
    | 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   | 
    +--------------------+---------------------+