CREATE EXTERNAL MODEL
主题
CREATE EXTERNAL MODEL 的先决条件
在使用 CREATE EXTERNAL MODEL 语句之前,请完成 用于使用 Amazon Redshift ML 的集群设置 中的先决条件。下面简要概述了这些先决条件。
使用 AWS 管理控制台或 AWS 命令行界面 (AWS CLI) 创建 Amazon Redshift 集群。
在创建集群时附加 AWS Identity and Access Management (IAM) policy。
要允许 Amazon Redshift 和 Amazon Bedrock 代入角色以便与其它服务交互,请向 IAM 角色添加相应的信任策略。
有关 IAM 角色、信任策略和其他先决条件的详细信息,请参阅用于使用 Amazon Redshift ML 的集群设置。
所需的权限
以下是 CREATE EXTERNAL MODEL 所需的权限:
Superuser
具有 CREATE EXTERNAL MODEL 权限的用户
具有 GRANT CREATE EXTERNAL MODEL 权限的角色
成本控制
Amazon Redshift ML 使用现有集群资源创建预测模型,因此您无需支付额外费用。不过,AWS 会根据您选择的模型收取使用 Amazon Bedrock 的费用。有关更多信息,请参阅使用 Amazon Redshift ML 的成本。
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
使用 RAW
REQUEST_TYPE
创建的推理函数的语法:
SELECT inference_function_name(request_super) [FROM table];
下面是 CREATE EXTERNAL MODEL
使用 UNIFIED
REQUEST_TYPE
创建的推理函数的语法:
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
-
外部模型的名称。schema 中的模型名称必须是唯一的。
- 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_TYPE
为UNIFIED
时受支持。 - SUFFIX 'prompt suffix'
-
指定 Amazon Redshift 添加到每个推理请求末尾的静态提示。只有在
REQUEST_TYPE
为UNIFIED
时受支持。 - 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_TYPE
为RAW
,则需要RESPONSE_TYPE
,而且唯一有效的值为SUPER
。对于所有其它REQUEST TYPE
值,默认值为VARCHAR
,而且RESPONSE_TYPE
是可选的。有效值包括:VARCHAR:Amazon Redshift 仅返回模型生成的文本响应。
SUPER:Amazon Redshift 会将模型生成的整个响应 JSON 作为 super 返回。这包括文本响应、停止原因等信息,以及模型输入和输出标记的使用情况。super 是一种预测模型,它将多种算法结合在一起,产生一个改进的预测结果。
CREATE EXTERNAL MODEL 推理函数参数
此部分介绍 CREATE EXTERNAL MODEL
命令创建的推理函数的有效参数。
REQUEST_TYPE
为 RAW
的 CREATE EXTERNAL MODEL 推理函数参数
当 REQUEST_TYPE
为 RAW
时创建的推理函数有一个 super 输入参数,并且始终返回 super 数据类型。输入 super 的语法遵循从 Amazon Bedrock 中选择的特定模型的请求语法。
REQUEST_TYPE
为 UNIFIED
的 CREATE EXTERNAL MODEL 推理函数参数
- input_text
Amazon Redshift 发送给 Amazon Bedrock 的文本。
- inference_config
一个 super 值,其中包含 Amazon Redshift 发送给 Amazon Bedrock 的可选参数。包括以下参数:
maxTokens
stopSequences
温度
topP
这些参数均为可选参数,且区分大小写。有关这些参数的信息,请参阅《Amazon Bedrock API 参考》中的 InferenceConfiguration。