本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Redshift ML 的成本
Amazon Redshift ML 使用您的现有集群资源进行预测,因此可以避免Amazon Redshift产生额外费用。Amazon Redshift 创建或使用模型不会产生额外费用,预测在Amazon Redshift集群本地进行,因此,除非您需要调整集群大小,否则无需额外付费。 Amazon RedshiftML 使用 Amazon SageMaker 来训练您的模型,该模型具有额外的关联成本。
对于在Amazon Redshift集群中运行的预测函数,不收取额外费用。CREATE MODEL 语句使用 Amazon SageMaker 并产生额外费用。成本随训练数据中的单元格数而增加。单元格数是记录数(在训练查询中或表时间)乘以列数的结果。例如,当 CREATE MODEL 语句的 SELECT 查询创建 10000 条记录和 5 个列时,它创建的单元格数为 50000。
在某些情况下,CREATE MODEL 的 SELECT 查询生成的训练数据超出您提供的 MAX_CELLS 限制(如果您未提供,则为默认 100 万)。在这些情况下,CREATE MODEL 随机选择大约 MAX_CELLS(即训练数据集中的“列数”)并使用这些随机选择的元组执行训练。随机选择可确保减少的训练数据集没有任何偏差。因此,通过设置 MAX_CELLS,您可以控制训练成本。
控制使用 Amazon Redshift ML 的成本
使用 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。有关此参数的更多信息,请参阅 MaxAutoMLJobRuntimeInSeconds 中的 Amazon SageMaker API 参考 。
当您使用 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 以训练模型。因此,减少 MAX_CELLS 将减小用于通过 AUTO ON 和 AUTO OFF 训练模型的数据集的大小。这种方法有助于减少训练模型的成本和时间。
增大 MAX_RUNTIME 和 MAX_CELLS 通常会通过允许 SageMaker 探索更多候选项来提高模型质量。 SageMaker 可能需要更多时间来训练每个候选项并使用更多数据来训练更好的模型。如果您希望更快地迭代或探索数据集,请使用较低的 MAX_RUNTIME 和 MAX_CELLS。如果您希望提高模型的准确性,请使用更高的 MAX_RUNTIME 和 MAX_CELLS。
有关与各种单元格号和免费试用详细信息关联的成本的更多信息,请参阅 Amazon Redshift 定价