CREATE EXTERNAL MODEL - Amazon Redshift

Amazon Redshift 自 2025 年 11 月 1 日起不再支援建立新的 Python UDF。如果您想要使用 Python UDF,請在該日期之前建立 UDF。現有 Python UDF 將繼續正常運作。如需詳細資訊,請參閱部落格文章

CREATE EXTERNAL MODEL

CREATE EXTERNAL MODEL 的先決條件

使用 CREATE EXTERNAL MODEL 陳述式之前,請先完成 使用 Amazon Redshift ML 的叢集設定 中的先決條件。以下是先決條件的概要。

  • 使用 AWS 管理主控台或 AWS 命令列界面 (AWS CLI) 建立 Amazon Redshift 叢集。

  • 建立叢集時附加 AWS Identity and Access Management (IAM) 政策。

  • 若要允許 Amazon Redshift 和 Amazon Bedrock 擔任與其他服務互動的角色,請將適當的信任政策新增至 IAM 角色。

  • 從 Amazon Bedrock 主控台啟用您要使用之特定 LLM 的存取權。

  • (選用) 如果即使只有小量資料,您仍遇到來自 Amazon Bedrock 的限流例外狀況 (例如 Too many requests, please wait before trying again),請在 Amazon Bedrock 帳戶中的 Service Quotas 下查看配額。檢查套用的帳戶層級配額是否至少與您使用之模型的 InvokeModel 請求的 AWS 預設配額值相同。

如需 IAM 角色、信任政策和其他先決條件的詳細資訊,請參閱 使用 Amazon Redshift ML 的叢集設定

所需權限

以下是 CREATE EXTERNAL MODEL 所需的權限:

  • 超級使用者

  • 具有 CREATE MODEL 權限的使用者

  • 具有 GRANT CREATE MODEL 權限的角色

成本控制

Amazon Redshift ML 會使用現有的叢集資源建立預測模型,因此您不必支付額外費用。不過,AWS 會根據您選取的模型收取使用 Amazon Bedrock 的費用。如需詳細資訊,請參閱使用 Amazon Redshift 資料 API

CREATE EXTERNAL MODEL 語法

以下是 CREATE EXTERNAL MODEL 陳述式的完整語法。

CREATE EXTERNAL MODEL model_name FUNCTION function_name IAM_ROLE {default/'arn:aws:iam::<account-id>:role/<role-name>'} MODEL_TYPE BEDROCK SETTINGS ( MODEL_ID model_id [, PROMPT 'prompt prefix'] [, SUFFIX 'prompt suffix'] [, REQUEST_TYPE {RAW|UNIFIED}] [, RESPONSE_TYPE {VARCHAR|SUPER}] );

CREATE EXTERNAL MODEL 命令會建立您用來產生內容的推論函數。

以下是 CREATE EXTERNAL MODEL 使用 REQUEST_TYPERAW 所建立的推論函數的語法:

SELECT inference_function_name(request_super) [FROM table];

以下是 CREATE EXTERNAL MODEL 使用 REQUEST_TYPEUNIFIED 所建立的推論函數的語法:

SELECT inference_function_name(input_text, [, inference_config [, additional_model_request_fields]]) [FROM table];

如需有關如何使用推論函數的相關資訊,請參閱 針對 Amazon Redshift ML 與 Amazon Bedrock 整合使用外部模型

CREATE EXTERNAL MODEL 參數和設定

本節說明 CREATE EXTERNAL MODEL 命令的參數和設定。

CREATE EXTERNAL MODEL 參數

model_name

外部模型的名稱。結構描述中的模型名稱必須是唯一的。

FUNCTION function_name (data_type [,...] )

CREATE EXTERNAL MODEL 所建立推論函數的名稱。您使用推論函數將請求傳送至 Amazon Bedrock,並擷取 ML 產生的文字。

IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }

Amazon Redshift 用來存取 Amazon Bedrock 的 IAM 角色。如需 IAM 角色的資訊,請參閱 建立或更新 Amazon Redshift ML 與 Amazon Bedrock 整合的 IAM 角色

MODEL_TYPE BEDROCK

指定模型類型。唯一有效的值為 BEDROCK

SETTINGS ( MODEL_ID model_id [,...] )

指定外部模型設定。如需詳細資訊,請參閱下列章節。

CREATE EXTERNAL MODEL 設定

MODEL_ID model_id

外部模型的識別碼,例如 anthropic.claude-v2。如需 Amazon Bedrock 模型 ID 的相關資訊,請參閱 Amazon Bedrock 模型 ID

PROMPT 'prompt prefix'

指定 Amazon Redshift 新增至每個推論請求開頭的靜態提示。僅在 REQUEST_TYPEUNIFIED 的情況下支援。

SUFFIX 'prompt suffix'

指定 Amazon Redshift 新增至每個推論請求結尾的靜態提示。僅在 REQUEST_TYPEUNIFIED 的情況下支援。

REQUEST_TYPE { RAW | UNIFIED }

指定傳送至 Amazon Bedrock 的請求格式。有效值包括以下項目:

  • RAW:推論函數會將輸入視為單一 super 值,並一律傳回 super 值。Super 值的格式為選取的 Amazon Bedrock 模型專屬。Super 是一種預測模型,結合了多種演算法來產生單一、改進的預測。

  • UNIFIED:推論函數使用統一的 API。所有模型與 Amazon Bedrock 之間擁有統一且一致的介面。這適用於所有支援訊息的模型。此為預設值。

    如需詳細資訊,請參閱 Amazon Bedrock API 文件中的 Converse API 文件

RESPONSE_TYPE { VARCHAR | SUPER }

指定回應的格式。如果 REQUEST_TYPERAW,則需要 RESPONSE_TYPE,且唯一有效的值是 SUPER。對於所有其他 REQUEST TYPE 值,預設值為 VARCHAR,且 RESPONSE_TYPE 為選用。有效值包括以下項目:

  • VARCHAR:Amazon Redshift 只會傳回模型產生的文字回應。

  • SUPER:Amazon Redshift 會將模型產生的整個回應 JSON 作為 super 傳回。這包括文字回應,以及像是停止原因、模型輸入和輸出字符用量等資訊。Super 是一種預測模型,結合了多種演算法來產生單一、改進的預測。

CREATE EXTERNAL MODEL 推論函數參數

本節說明 CREATE EXTERNAL MODEL 命令所建立推論函數的有效參數。

REQUEST_TYPERAW 的 CREATE EXTERNAL MODEL 推論函數參數

若建立的推論函數的 REQUEST_TYPERAW,則會擁有一個 super 輸入引述數,且一律會傳回 super 資料類型。輸入 super 的語法遵循從 Amazon Bedrock 選取的特定模型請求的語法。

REQUEST_TYPEUNIFIED 的 CREATE EXTERNAL MODEL 推論函數參數

input_text

Amazon Redshift 傳送至 Amazon Bedrock 的文字。

inference_config

Super 值,其中包含 Amazon Redshift 傳送至 Amazon Bedrock 的選用參數。這些可能包括以下項目:

  • maxTokens

  • stopSequences

  • 溫度

  • topP

這些參數全都是選用,且全部區分大小寫。如需這些參數的相關資訊,請參閱 Amazon Bedrock API 參考中的 InferenceConfiguration