使用 Amazon Redshift ML 的成本 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon Redshift ML 的成本

Amazon Redshift ML 使用您现有的集群资源进行预测,因此您可以避免额外的 Amazon Redshift 费用。创建或使用模型不会产生额外的 Amazon Redshift 费用。预测在 Amazon Redshift 集群本地进行,因此,除非您需要调整集群大小,否则您无需支付额外费用。Amazon Redshift ML 使用 Amazon SageMaker 来训练您的模型,这确实会产生额外的相关费用。

Amazon Redshift 集群中运行的预测函数不收取额外费用。CREATE MODEL 语句使用 Amazon SageMaker,并产生额外的费用。成本随训练数据中的单元格的数量而增加。单元格数量是记录数(在训练查询或表时间中)乘以列数的乘积。例如,当 CREATE MODEL 语句的 SELECT 查询创建 10,000 条记录和 5 列时,它创建的单元格数为 50,000。

在某些情况下,CREATE MODEL 的 SELECT 查询生成的训练数据超过了您提供的 MAX_CELLS 限制(如果您没有提供限制值,则为原定设置 100 万)。在这些情况下,CREATE MODEL 会随机选择大约 MAX_CELLS(即训练数据集中的“列数”记录),然后使用这些随机选择的元组执行训练。随机采样可确保减少的训练数据集不会有任何偏差。因此,通过设置 MAX_CELLS,您可以控制您的训练成本。

使用 CREATE MODEL 命令语句时,可以使用 MAX_CELLS 和 MAX_RUNTIME 选项来控制成本、时间和潜在模型精度。

MAX_RUNTIME 指定使用 AUTO ON 或 OFF 选项时,训练在 SageMaker 中可能花费的最长时间。根据数据集的大小,训练任务通常比 MAX_RUNTIME 早完成。训练模型后,Amazon Redshift 会在后台执行额外的工作,以便在集群中编译和安装您的模型。因此,CREATE MODEL 可能需要比 MAX_RUNTIME 更长的时间才能完成。但是,MAX_RUNTIME 会限制 SageMaker 中用于训练模型的计算量和时间。您可以使用 SHOW MODEL 随时检查模型的状态。

当您用 AUTO ON 运行 CREATE MODEL 时,Amazon Redshift ML 使用 SageMaker Autopilot 自动智能地探索不同型号(或候选型号),以找到最佳型号。MAX_RUNTIME 限制花费的时间和计算量。如果 MAX_RUNTIME 设置过低,则可能没有足够的时间来探索一个候选项。如果您看到错误 “Autopilot 候选项没有模型”,请使用较大的 MAX_RUNTIME 值重新运行 CREATE MODEL。有关该参数的更多信息,请参阅 Amazon SageMaker API 参考中的 MaxAutoMLJobRuntimeInSeconds

当您用 AUTO OFF 运行 CREATE MODEL 时,MAX_RUNTIME 对应于在 SageMaker 中运行训练任务的时间限制。根据数据集的大小和使用的其他参数(例如 MODEL_TYPE XGBOOST 中的 num_rounds),训练任务通常会更快完成。

您还可以通过在运行 CREATE MODEL 时指定较小的 MAX_CELLS 值来控制成本或减少训练时间。单元格是数据库中的一个条目。每行对应的单元格数量与列数相同,这些单元格可以是固定的,也可以有不同的宽度。MAX_CELLS 限制单元格的数量,从而限制用于训练模型的训练示例数量。预设情况下,MAX_CELLS 设置为 100 万个单元格。减少 MAX_CELLS 会减少 CREATE MODEL 中的 SELECT 查询结果中的行数,Amazon Redshift 会导出该结果并发送到 SageMaker 来训练模型。在 AUTO ON 和 AUTO OFF 下,减少 MAX_CELLS 均可减小用于训练模型的数据集的大小。这种方法有助于降低训练模型的成本和时间。要查看有关特定训练作业的训练和计费时间的信息,请在 Amazon SageMaker 中选择 Training jobs(训练作业)。

增加 MAX_RUNTIME 和 MAX_CELLS 通常会允许 SageMaker 探索更多候选项,从而提高模型质量。这样一来,SageMaker 可能需要更多的时间来训练每个候选项,并使用更多的数据来训练更好的模型。如果希望更快地迭代或浏览数据集,请使用较低的 MAX_RUNTIME 和 MAX_CELLS。如果您希望提高模型的精度,请使用更高的 MAX_RUNTIME 和 MAX_CELLS。

有关与各种单元格数量相关的成本免费试用详细信息,请参阅 Amazon Redshift 定价