Ray Tune 使用的环境变量#

Ray Tune 的一些行为可以通过环境变量进行配置。以下是 Ray Tune 当前考虑的环境变量:

  • TUNE_DISABLE_AUTO_CALLBACK_LOGGERS:Ray Tune 如果没有传递 CSV 和 JSON 日志回调,会自动添加它们。将此变量设置为 1 会禁用这种自动创建。请注意,这很可能会影响调优运行后分析您的结果。

  • TUNE_DISABLE_AUTO_INIT: 如果未连接到 Ray 会话,则禁用自动调用 ray.init()

  • TUNE_DISABLE_DATED_SUBDIR: 当名称未明确指定或可训练对象未作为字符串传递时,Ray Tune 会自动将日期字符串添加到实验目录中。将此环境变量设置为 1 会禁用添加这些日期字符串。

  • TUNE_DISABLE_STRICT_METRIC_CHECKING:当你通过 session.report() 向 Tune 报告指标,并且将 metric 参数传递给 Tuner()、调度器或搜索算法时,如果结果中未报告该指标,Tune 将会报错。将此环境变量设置为 1 将禁用此检查。

  • TUNE_DISABLE_SIGINT_HANDLER: Ray Tune 捕捉 SIGINT 信号(例如由 Ctrl+C 发送)以优雅地关闭并进行最终检查点。将此变量设置为 1 将禁用信号处理并立即停止执行。默认为 0

  • TUNE_FORCE_TRIAL_CLEANUP_S: 默认情况下,Ray Tune 会优雅地终止试验,让它们完成当前的训练步骤和任何用户定义的清理工作。将此变量设置为非零正整数将导致试验在经过该秒数的宽限期后被强制终止。默认为 600 秒。

  • TUNE_FUNCTION_THREAD_TIMEOUT_S:函数API在指示线程完成后等待线程完成的时间(以秒为单位)。默认为 2

  • TUNE_GLOBAL_CHECKPOINT_S: 限制实验状态检查点频率的时间(以秒为单位)。如果没有设置,这将默认为 'auto''auto' 会测量快照实验状态所需的时间,并调整周期,使得大约5%的驱动程序时间用于快照。你应该将其设置为一个固定值(例如:TUNE_GLOBAL_CHECKPOINT_S=60),以便每X秒快照一次实验状态。

  • TUNE_MAX_LEN_IDENTIFIER:试验子目录名称的最大长度(包含参数值的那些)

  • TUNE_MAX_PENDING_TRIALS_PG: 使用放置组时的最大挂起试验数量。默认为 auto,对于随机/网格搜索将更新为 max(200, cluster_cpus * 1.1),对于其他搜索算法将更新为 1

  • TUNE_PLACEMENT_GROUP_PREFIX:Ray Tune 创建的放置组的前缀。此前缀用于例如识别在调优运行开始/停止时应清理的放置组。在第一次运行开始时,此项初始化为一个唯一的名称。

  • TUNE_PLACEMENT_GROUP_RECON_INTERVAL: 协调放置组的频率。协调用于确保请求的放置组数量与待处理/运行的试验数量同步。在正常情况下,这些不应该有差异,但协调确保捕捉到手动销毁放置组的情况。协调不需要太多时间,但在运行大量短期试验时,它可能会累积。默认每 5 秒进行一次。

  • TUNE_PRINT_ALL_TRIAL_ERRORS:如果 1,将会在出现时打印所有试验错误。否则,错误只会以文本文件的形式保存到试验目录中,而不会打印。默认为 1

  • TUNE_RESULT_BUFFER_LENGTH: Ray Tune 可以在将结果从可训练对象传递给驱动程序之前缓冲这些结果。启用此功能可能会延迟调度决策,因为可训练对象会被推测性地继续执行。将其设置为 1 会禁用结果缓冲。不能与 checkpoint_at_end 一起使用。默认为禁用。

  • TUNE_RESULT_DELIM: 用于 ExperimentAnalysis 数据框中嵌套条目的分隔符。默认为 . (但在 Ray 的未来版本中将更改为 /)。

  • TUNE_RESULT_BUFFER_MAX_TIME_S: 同样地,Ray Tune 缓冲结果最多到 number_of_trial/10 秒,但不会超过此值。默认为 100 秒。

  • TUNE_RESULT_BUFFER_MIN_TIME_S: 此外,您可以指定缓冲结果的最短时间。默认为 0。

  • TUNE_WARN_THRESHOLD_S:如果 Tune 事件循环操作耗时过长,用于记录的阈值。默认为 0.5 秒。

  • TUNE_WARN_INSUFFICENT_RESOURCE_THRESHOLD_S: 如果在这么多秒内没有试验处于 RUNNING 状态,则触发警告的阈值。如果 Ray Tune 作业卡在此状态(很可能是由于资源不足),则每隔这么多秒重复打印警告信息。默认为 60(秒)。

  • TUNE_WARN_INSUFFICENT_RESOURCE_THRESHOLD_S_AUTOSCALER: 当自动扩展器启用且在这么多秒内没有试验处于 RUNNING 状态时,抛出警告的阈值。如果 Ray Tune 作业卡在此状态(很可能是由于资源不足),则每隔这么多秒重复打印警告消息。默认为 60(秒)。

  • TUNE_WARN_SLOW_EXPERIMENT_CHECKPOINT_SYNC_THRESHOLD_S: 如果实验状态同步时间超过此时间(以秒为单位),则记录警告的阈值。实验状态文件应非常轻量,因此不应超过约5秒。默认值为5秒。

  • TUNE_STATE_REFRESH_PERIOD: 从 Ray 更新资源跟踪的频率。默认为 10 秒。

  • TUNE_RESTORE_RETRY_NUM: 在确定特定试验的恢复不成功之前进行的重试次数。之后,试验不会从之前的检查点恢复,而是从头开始。默认值为 0。在此重试计数器生效期间,每个试验的失败次数不会增加,这与 max_failures 进行比较。

  • RAY_AIR_FULL_TRACEBACKS:如果设置为1,将打印训练函数的完整回溯,包括内部代码路径。否则,仅显示用户代码的缩写回溯。默认为0(禁用)。

  • RAY_AIR_NEW_OUTPUT:如果设置为 0,这将禁用 实验性的新控制台输出

有一些环境变量主要与集成库相关:

  • WANDB_API_KEY: Weights and Biases API 密钥。你也可以使用 wandb login 代替。