AI_GENERATE是MaxCompute提供的AI Function,用於調用模型結合提示詞執行推理任務,支援自然語言產生、複雜邏輯分析、情感分類、多模態理解等情境。使用者可通過SQL直接完成非結構化資料的智能處理,無需外部服務依賴。
命令格式
AI_GENERATE在調用LLM大語言模型和MLLM多模態大語言模型時,會有不同的函數簽名。
當model_type為LLM大語言模型時,函數簽名如下:
STRING AI_GENERATE( STRING <model_name> , STRING <version_name>, STRING <prompt> [, STRING <model_parameters>] );當model_type為MLLM多模態大語言模型時,函數簽名如下:
STRING AI_GENERATE( STRING <model_name>, STRING <version_name>, STRING | BINARY <unstructured_data> , STRING <prompt> STRING <type> [, STRING <model_parameters>] );
參數說明
model_name:必填。STRING類型。待使用的模型名。支援模型的model_type為LLM或MLLM。
version_name:必填。STRING類型。待使用的模型版本名。如果調用預設version,支援直接輸入
DEFAULT_VERSION。prompt:必填。STRING類型。待輸入的模型提示詞。
STRING類型常量、列名或運算式。unstructured_data:必填(當model_type為MLLM時)。STRING或BINARY類型。
需要處理的多模態資料,支援指定為圖片/音頻/視頻STRING類型的URL地址,或圖片BINARY類型的二進位表示。當指定為BINARY類型時,需要在建立模型時同時指定BINARY類型的輸入參數。
type:當unstructured_data為圖片/音頻/視頻STRING類型的URL地址時,type必填。支援取值為IMAGE/AUDIO/VIDEO。例如:
音頻:
AI_GENERATE(model, version,audio_url, prompt, 'AUDIO');視頻:
AI_GENERATE(model, version, video_url, prompt, 'VIDEO');映像:
AI_GENERATE(model, version, image_url, prompt, 'IMAGE');
model_parameters:選填。STRING類型。支援指定模型調用相關參數max_tokens、temperature、top_p,格式為
'{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'。參數說明如下:max_tokens:設定模型單次調用輸出token的最大數量,對於MaxCompute公用模型,預設值為4096。
temperature:介於0到1之間的值,用於控制模型輸出的隨機性。越高的值會導致模型輸出的多樣化和隨機性越高。
top_p:介於0到1之間的值,用於控制模型的隨機性和多樣性,越大的值會導致模型輸出的隨機性越高。
使用AI Function調用公用模型推理時,需要SET odps.sql.using.public.model=true;開啟使用公用模型開關。
傳回值說明
返回STRING類型,模型的產生內容結果。
使用樣本
樣本1:調用模型產生內容
調用MaxCompute提供的公用模型Qwen3-0.6B-GGUF,直接進行模型調用與內容產生。
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');
-- 返回結果:
-- "The capital of China is **Beijing**."樣本2:調用模型進行情感分析
調用MaxCompute提供的公用模型Qwen3-1.7B-GGUF,對網路使用者評論資料進行情感分析。
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('請對以下評論進行情感分析分類,輸出結果僅限於以下三個選項之一:正面、負面、中性。待分析的評論:', prompt)
) AS generated_text
FROM (
VALUES
('今天天氣真好,心情很不錯!陽光明媚,適合出去散步。 /no_think'),
('今天天氣真好,心情很不錯!陽光明媚 /no_think'),
('科技發展日新月異,人工智慧改變生活。 /no_think'),
('防控措施很到位,為醫護人員點贊! /no_think'),
('這個商品品質很差 /no_think')
) t (prompt);
-- 返回結果:
+-----------------------------------------------------+----------------+
| prompt | generated_text |
+-----------------------------------------------------+----------------+
| 今天天氣真好,心情很不錯!陽光明媚,適合出去散步 /no_think | "正面" |
| 今天天氣真好,心情很不錯!陽光明媚 /no_think | "正面" |
| 科技發展日新月異,人工智慧改變生活。 /no_think | "正面" |
| 防控措施很到位,為醫護人員點贊! /no_think | "正面" |
| 這個商品品質很差 /no_think | "負面" |
+-----------------------------------------------------+----------------+
樣本3:調用模型進行多模態資料處理
調用已經建立好的模型PAI_EAS_Qwen25_Omni_3B(PAI-EAS遠程模型),並建立好Object Table,即可調用AI Function,詳細步驟參考使用MaxCompute遠程模型自動產生電商選品描述。
支援VPC調用地址(推薦)或EAS公網調用地址。
若使用EAS VPC調用地址,需要開通專線網路連接並在AI Function調用時指定配置的網路連接名稱,配置流程請參見訪問VPC方案(專線直連);
若使用EAS公網調用地址,需求在AI Function調用前,將該地址設定為可用的MaxCompute外部網路地址,配置方案見:網路開通流程。
圖片處理
基於圖片的URL地址及提示詞進行模型調用,實現商品類目打標。樣本中Object Table命名為
image_demo。SELECT key, AI_GENERATE( PAI_EAS_Qwen25_Omni_3B, v1, image_url, "從電商商品銷售海報中識別並提取商品所屬的類目。返回結果僅限於如下六個選項之一:美妝、服裝、日用、食品、其他、電子產品,不包含其他文字或資訊","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; -- 返回結果: +--------------------+----------------+ | key | item_catagory | +--------------------+----------------+ | alimamazszw-1.jpg | 食品 | | alimamazszw-10.jpg | 電子產品 | | alimamazszw-11.jpg | 電子產品 | | alimamazszw-12.jpg | 美妝 | | alimamazszw-13.jpg | 電子產品 | | alimamazszw-14.jpg | 日用 | | alimamazszw-15.jpg | 美妝 | | alimamazszw-16.jpg | 美妝 | | alimamazszw-18.jpg | 日用 | +--------------------+---------------+音頻處理
基於音訊URL地址及提示詞進行模型調用,實現音頻類別打標。樣本中Object Table命名為
music_demo。音頻資料集下載地址。SELECT key, AI_GENERATE( PAI_EAS1_Qwen25_Omni_3B, v1, audio_url, "請準確分析音訊音樂類型,返回結果只顯示如下七個選項之一,不顯示任何額外資訊:古典、鄉村、嘻哈、金屬、流行、雷鬼、搖滾","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;
常見問題
EAS遠程模型常見問題排查
如果通過AI_GENERATE函數調用MaxCompute遠程模型,作業運行後返回結果為空白,建議按照以下流程進行排查:
建立遠程模型參數檢查
PAI_EAS_SERVICE_NAME:
需要確認EAS服務是否已加入某個服務群組。
若已加入此處需要填寫“群組名稱.服務名稱”,如group.service_name;
若未加入則僅需填寫EAS服務名稱。
Endpoint:
設定模型ENDPOINT參數時,無論希望使用EAS 公網或VPC地址(推薦使用),都不需要提供.com後的資訊,正確的地址格式舉例:
http://1*************70.cn-shanghai.pai-eas.aliyuncs.com。APIKEY:
確認提供了正確的PAI EAS 服務Token。
擷取具體參數資訊,請參見擷取訪問地址和Token。
AI_GENERATE函數參數檢查
當需要處理音頻/視頻資料時,unstructured_data不支援使用BINARY類型;
若使用的是STRING類型的URL地址,但仍然無返回時,請確認是否正確填寫type值,支援取值為IMAGE/AUDIO/VIDEO。例如:
SELECT key, AI_GENERATE( PAI_EAS1_Qwen25_Omni_3B, v1, audio_url, "請精確分析音訊音樂類型,返回結果只顯示如下七個選項之一,不顯示任何額外資訊:古典、鄉村、嘻哈、金屬、流行、雷鬼、搖滾","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;
運行狀態檢查
手動關閉查詢加速任務,排除SQLRT任務對模型調用的影響。在AI_GENERATE函數調用前增加:
set odps.mcqa.disable=true;部分情境下,作業提交會預設開啟查詢加速,但開啟後會影響遠程模型調用,需使用者手動關閉。
EAS資源檢查
請檢查遠程模型對應EAS資源是否充足,是否在作業執行期間出現資源不足如OOM等異常問題,如有,請擴容後重試。