执行配置#

Ray Data 提供了许多配置,用于控制 Ray Dataset 执行的各个方面。您可以通过使用 ExecutionOptionsDataContext 来修改这些配置。本指南介绍了其中最重要的配置以及何时使用它们。

配置 ExecutionOptions#

ExecutionOptions 类用于配置 Ray Dataset 执行期间的选项。要使用它,请修改当前 DataContext 对象的 execution_options 属性。例如

ctx = ray.data.DataContext.get_current()
ctx.execution_options.verbose_progress = True
  • resource_limits: 在执行期间设置资源使用的软限制。例如,如果代码的其他部分需要最低资源量,您可能希望限制 Ray Data 使用的资源量。默认情况下自动检测。

  • exclude_resources: 从 Ray Data 中排除的资源量。如果在同一集群上运行其他工作负载,请设置此选项。注意

    • 如果您将 Ray Data 与 Ray Train 一起使用,训练资源会自动排除。否则,默认关闭。

    • 对于每种资源类型,您不能同时设置 resource_limitsexclude_resources

  • locality_with_output: 将其设置为优先在与输出节点(驱动执行的节点)相同的节点上运行任务。它也可以设置为节点 ID 列表,以将输出分散到这些节点上。此参数适用于 map()streaming_split() 操作。如果您知道直接在消费者节点上消耗输出数据(例如用于 ML 训练摄取),此设置非常有用。但是,其他用例可能会因此设置而产生性能损失。默认关闭。

  • preserve_order: 设置为保留流执行器下操作符处理的块之间的顺序。默认关闭。

  • actor_locality_enabled: 是否启用对 Actor 的本地性感知任务分派。此参数适用于有状态的 map() 操作。如果您知道直接在消费者节点上消耗输出数据(例如用于 ML 批量推理),此设置非常有用。但是,其他用例可能会因此设置而产生性能损失。默认关闭。

  • verbose_progress: 是否按操作符单独报告进度。默认情况下,仅报告 AllToAll 操作符和全局进度。此选项有助于性能调试。默认开启。

有关上述每个选项的更多详细信息,请参阅 ExecutionOptions

配置 DataContext#

DataContext 类用于配置 Ray Data 使用的更通用选项,例如可观测性/日志记录选项、错误处理/重试行为以及内部数据格式。要使用它,请修改当前 DataContext 对象的属性。例如

ctx = ray.data.DataContext.get_current()
ctx.verbose_stats_logs = True

DataContext 中的许多选项旨在用于高级用例或调试,大多数用户无需修改它们。但是,一些最重要的选项包括

  • max_errored_blocks: 允许出现错误的最大块数,如果为负数则不受限制。此选项允许块处理任务中出现应用级异常。这些异常可能是由 UDF(例如,由于损坏的数据样本)或 IO 错误引起的。失败块中的数据将被丢弃。此选项有助于防止长时间运行的作业因少量坏块而失败。默认情况下,不允许重试。

  • write_file_retry_on_errors: 当写入文件时应触发重试的错误消息子字符串列表。这对于处理写入远程存储系统时的临时错误非常有用。默认情况下,会重试常见的临时 AWS S3 错误。

  • verbose_stats_logs: 统计日志是否应该详细。这包括统计输出中的 extra_metrics 等字段,这些字段默认情况下不包括在内。默认关闭。

  • log_internal_stack_trace_to_stdout: 将日志记录到 stdout 时是否包含 Ray Data/Ray Core 内部代码堆栈帧。完整的堆栈跟踪始终写入 Ray Data 日志文件。默认关闭。

  • raise_original_map_exception: 是否引发在 map UDF 中遇到的原始异常,而不是将其包装在 UserCodeException 中。

有关上述每个选项的更多详细信息,请参阅 DataContext