执行配置#
Ray Data 提供了许多配置,用于控制 Ray Dataset 执行的各个方面。您可以通过使用 ExecutionOptions
和 DataContext
来修改这些配置。本指南介绍了其中最重要的配置以及何时使用它们。
配置 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_limits
和exclude_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
。