すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:AI_GENERATE

最終更新日:Jul 25, 2026

AI_GENERATE は、プロンプトを使用してモデルを呼び出し、推論タスクを実行する MaxCompute の AI 関数です。自然言語生成、複雑な論理分析、感情分析、マルチモーダル理解など、さまざまなシナリオをサポートします。この関数を使用すると、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 値。デフォルトバージョンを呼び出すには、DEFAULT_VERSION を指定します。

  • prompt:必須。モデルのプロンプト。定数、列名、または 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` などのモデルパラメーターを指定します。フォーマットは JSON 文字列です:

    '{"max_tokens": 500, "temperature": 0.6, "top_p": 0.95}'

    • max_tokens:1 回のモデル呼び出しで生成されるトークンの最大数。MaxCompute パブリックモデルの場合、デフォルト値は 4,096 です。

    • temperature:出力のランダム性を制御する 0 から 1 の間の値。値が高いほど、より創造的で多様な出力になり、値が低いほど、より決定的で保守的な出力になります。

    • top_p:モデルが選択できる候補ラベルの範囲を制限する 0 から 1 の間の値。値が高いほど、範囲が広がり多様性が増し、値が低いほど、範囲が狭まりより焦点の合った結果が生成されます。

説明

パブリックモデルで AI 関数を推論に使用するには、まずコマンド SET odps.sql.using.public.model=true; を実行してパブリックモデルの使用を有効にする必要があります。

戻り値

モデルが生成したコンテンツを含む STRING を返します。

例

例 1:感情分析の実行

MaxCompute が提供するパブリックモデル qwen3.7-max を使用して、オンラインユーザーのコメントデータに対して感情分析を実行します。

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);

-- 次の結果が返されます:
+--------+----------------+
| 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         |
+--------+----------------+

例 2: コンテンツの生成

MaxCompute が提供するパブリックモデル deepseek-v4-pro を呼び出して、モデルの推論とコンテンツ生成を直接実行します。

SET odps.namespace.schema=true;

SELECT AI_GENERATE(bigdata_public_modelset.default.`deepseek-v4-pro`,DEFAULT_VERSION,'what is the capital of China');

-- 次の結果が返されます:
+-----+
| _c0 |
+-----+
| The capital of China is **Beijing**. |
+-----+

例 3: マルチモーダルデータ処理の実行

  • 画像処理

    パブリックモデル qwen3.7-plus を呼び出し、画像の URL とプロンプトに基づいて製品カテゴリをタグ付けします。この例では、オブジェクトテーブルの名前は image_demo です。

    -- 3 層モデルを有効にします。
    SET odps.namespace.schema=true;
    
    -- オブジェクトテーブルを作成します。
    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         |
    +------------+
    
    -- パブリックモデル qwen3.7-plus を呼び出し、画像の URL とプロンプトに基づいて製品カテゴリをラベル付けします。
    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;
    
    -- 次の結果が返されます:
    +------+---------------+
    | 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            |
    +------+---------------+
  • オーディオ処理

    PAI_EAS_Qwen25_Omni_3B という名前の PAI-EAS リモートモデルとオブジェクトテーブルを作成した後、AI 関数を呼び出すことができます。詳細な手順については、「MaxCompute リモートモデルを使用して e コマース製品説明を自動生成する」をご参照ください。

    注 VPC エンドポイント (推奨) または PAI-EAS パブリックネットワークエンドポイントを使用できます。

    • PAI-EAS VPC エンドポイントを使用する場合、専用線接続を有効にし、AI 関数を呼び出すときに構成済みのネットワーク接続名を指定する必要があります。構成の詳細については、「VPC アクセスソリューション (専用線接続)」をご参照ください。

    • PAI-EAS パブリックネットワークエンドポイントを使用する場合、AI 関数を呼び出す前に、エンドポイントを MaxCompute 外部ネットワークの許可リストに追加する必要があります。構成手順については、「ネットワークアクセス手順」をご参照ください。

    オーディオ URL とプロンプトでモデルを呼び出し、オーディオカテゴリをタグ付けします。この例では、オブジェクトテーブルの名前は music_demo です。次のダウンロードリンクからオーディオデータセットをダウンロードできます。

    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;

    クリックして結果を展開して表示

    +------+---------------+
    | key  | item_catagory |
    +------+---------------+
    | classical.00000.wav | Classical     |
    | classical.00001.wav | Classical     |
    | classical.00002.wav | Classical     |
    | classical.00003.wav | Classical     |
    | classical.00004.wav | Classical     |
    | classical.00005.wav | Classical     |
    | country.00000.wav | Country       |
    | country.00001.wav | Country       |
    | country.00002.wav | Country       |
    | country.00003.wav | Country       |
    | country.00004.wav | Country       |
    | country.00005.wav | Rock          |
    | hiphop.00000.wav | Hip-hop       |
    | hiphop.00001.wav | Hip-hop       |
    | hiphop.00002.wav | Hip-hop       |
    | hiphop.00003.wav | Hip-hop       |
    | hiphop.00004.wav | Hip-hop       |
    | hiphop.00005.wav | Hip-hop       |
    | metal.00000.wav | Metal         |
    | metal.00001.wav | Metal         |
    | metal.00002.wav | Rock          |
    | metal.00003.wav | Metal         |
    | metal.00004.wav | Metal         |
    | metal.00005.wav | Metal         |
    | pop.00000.wav | Pop           |
    | pop.00001.wav | Pop           |
    | pop.00002.wav | Pop           |
    | pop.00003.wav | Pop           |
    | pop.00004.wav | Rock          |
    | pop.00005.wav | Pop           |
    | reggae.00000.wav | Reggae        |
    | reggae.00001.wav | Reggae        |
    | reggae.00002.wav | Reggae        |
    | reggae.00003.wav | Reggae        |
    | reggae.00004.wav | Reggae        |
    | reggae.00005.wav | Reggae        |
    | rock.00000.wav | Rock          |
    | rock.00001.wav | Rock          |
    | rock.00002.wav | Rock          |
    | rock.00003.wav | Rock          |
    | rock.00004.wav | Rock          |
    | rock.00005.wav | Rock          |
    +------+---------------+

よくある質問

パブリックモデルのトラブルシューティング

現象:モデルコンピューティングサービスを通じてパブリックモデルを呼び出すと、次のエラーが返されます。

FAILED: ODPS-0130071:[1,8] Semantic analysis exception - inference quota status check failed, error message: region cn-shanghai not found in inference quota

原因:ご利用のプロジェクトのリージョン (例:`cn-shanghai`) でモデルコンピューティングサービスが有効化されていないため、AI 推論リソースの呼び出しができません。

解決策:Alibaba Cloud コンソールで、ご利用のプロジェクトのリージョンでモデルコンピューティングサービスを有効化します。詳細な手順については、「MaxCompute モデルコンピューティングサービスの購入と使用」をご参照ください。

PAI-EAS リモートモデルのトラブルシューティング

AI_GENERATE 関数を使用した MaxCompute リモートモデルの呼び出しが空の結果を返す場合は、次の手順に従って問題をトラブルシューティングしてください。

  1. リモートモデルの作成のパラメーターを確認する

    • PAI_EAS_SERVICE_NAME:

      EAS サービスがサービスグループに追加されているかどうかを確認します。

      • 追加されている場合は、`group_name.service_name` の形式 (例:`group.service_name`) で名前を指定する必要があります。

      • 追加されていない場合は、EAS サービス名のみを指定します。

    • Endpoint:

      モデルの ENDPOINT パラメーターを設定する際、EAS パブリックネットワークアドレスまたは VPC アドレス (推奨) のどちらを使用する場合でも、アドレスの .com に続く情報は指定しないでください。正しいアドレス形式の例は次のとおりです:http://1*************70.cn-shanghai.pai-eas.aliyuncs.com

    • APIKEY:

      PAI-EAS サービストークンが正しいことを確認します。

    パラメーター値を取得するには、「6.1 エンドポイントとトークンの取得」をご参照ください。

  2. AI_GENERATE 関数のパラメーターを確認する

    • オーディオおよびビデオデータの場合、unstructured_data には BINARY 型はサポートされていません。

    • STRING 型の URL を使用し、関数から空の結果が返される場合は、type パラメーターが正しく指定されていることを確認してください。 サポートされている値は IMAGE、AUDIO、および VIDEO です。 例:

      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;
  3. ランタイムステータスを確認する

    クエリアクセラレーションタスクを手動で無効にして、モデル呼び出しに対する SQLRT タスクの影響を排除します。AI_GENERATE 関数の呼び出しの前に、次を追加します: set odps.mcqa.disable=true;

    一部のシナリオでは、ジョブを送信するときにクエリアクセラレーションがデフォルトで有効になります。この機能はリモートモデルの呼び出しに干渉する可能性があるため、手動で無効にする必要があります。

  4. PAI-EAS リソースを確認する

    リモートモデル用の PAI-EAS リソースが十分であることを確認してください。ジョブの実行中に、メモリ不足 (OOM) エラーなどのリソース関連の問題がないか確認します。このような問題が発生した場合は、リソースをスケールアップしてジョブを再試行してください。