You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks上Ray+PyTorch Lightning训练遇PyArrow写入错误求助

Ray + PyTorch Lightning在Databricks训练1个epoch后终止的问题排查与解决

问题背景

在Databricks Runtime 15.2/14.3 ML集群上,使用Ray 2.32.0结合PyTorch Lightning 2.3.3训练神经网络,完全参照官方教程代码实现,但训练仅完成1个epoch就因RayTaskError(OSError: [Errno 22] Invalid argument)终止。错误栈指向PyArrow在复制检查点文件到DBFS路径时失败,已验证DBFS路径读写正常,但问题仍存在。

集群配置代码:

from ray.util.spark import setup_ray_cluster, shutdown_ray_cluster
eps = 1
ray_worker_memory = 410
remote_conn_str = setup_ray_cluster(
  max_worker_nodes=8,
  min_worker_nodes=1,
  memory_worker_node=ray_worker_memory*0.7*10**9-eps,
  object_store_memory_worker_node=ray_worker_memory*0.3*10**9-eps,
  collect_log_to_path="/dbfs/test/ray_collected_logs"
)

核心错误片段:

OSError: [Errno 22] Error writing bytes to file. Detail: [errno 22] Invalid argument

解决方案

1. 规避DBFS直接作为Ray存储路径

Ray的PyArrow文件复制逻辑与DBFS的FUSE挂载存在兼容性问题,可先将检查点存到本地临时目录,训练后手动同步到DBFS:

修改TorchTrainer的RunConfig:

run_config=ray.train.RunConfig(
    storage_path="/tmp/ray_checkpoints",  # 使用本地临时路径
    name="lightning", 
),

训练完成后同步到DBFS:

dbutils.fs.cp("file:/tmp/ray_checkpoints/lightning", "/dbfs/test/ray_collected_logs/lightning", recurse=True)

2. 禁用自动检查点上报

错误触发于RayTrainReportCallback在epoch结束时自动上报检查点,可禁用该功能,仅上报训练指标:

修改训练代码中的回调配置:

callbacks=[ray.train.lightning.RayTrainReportCallback(report_checkpoint=False)],

若需保存检查点,可改用PyTorch Lightning原生的检查点机制,或在自定义回调中手动调用Ray的检查点API。

3. 分离Ray日志与训练存储路径

取消setup_ray_cluster中的collect_log_to_path配置,避免Ray日志存储和训练检查点路径冲突:

remote_conn_str = setup_ray_cluster(
  max_worker_nodes=8,
  min_worker_nodes=1,
  memory_worker_node=ray_worker_memory*0.7*10**9-eps,
  object_store_memory_worker_node=ray_worker_memory*0.3*10**9-eps
  # 移除collect_log_to_path配置,使用默认本地日志路径
)

4. 调整依赖版本组合

当前Ray与PyTorch Lightning版本可能存在兼容性问题,尝试降级到经过验证的版本:

%pip install ray==2.31.0 pytorch-lightning==2.2.5

5. 统一PyArrow版本

Databricks自带的PyArrow版本可能与Ray依赖版本冲突,强制安装兼容版本:

%pip install pyarrow==15.0.0

内容的提问来源于stack exchange,提问作者DataDiver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 10:54:53