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

Ubuntu集群中实例化PyTorch Lightning Trainer时脚本冻结求助

问题排查与解决方案

核心原因定位

你提到代码卡在_AcceleratorConnector初始化环节,这是PyTorch Lightning负责自动检测集群硬件(GPU/TPU)、分布式环境的核心模块,冻结现象大概率是硬件检测过程中的阻塞问题,尤其在集群环境下,常和资源权限、分布式配置冲突有关。

针对性解决方法

1. 强制指定加速器,跳过自动检测

直接显式指定加速器类型,绕开自动硬件探测逻辑,先验证基础功能是否正常:

import lightning as L

print("Before instantiate Trainer")
# 强制使用CPU加速器,跳过自动硬件检测
trainer = L.Trainer(accelerator="cpu")
print("After instantiate Trainer")

如果这段代码能正常执行,说明问题出在GPU/分布式环境的自动检测环节。

2. 验证底层CUDA环境可用性

集群中GPU可能存在权限限制或驱动异常,先确认PyTorch本身能否正常识别GPU:

import torch
print(torch.cuda.is_available())  # 有可用GPU时应返回True
print(torch.cuda.device_count())

如果这里也卡住或返回False,说明是底层CUDA环境问题,和Lightning无关,需联系集群管理员调整权限或修复驱动。

3. 清空残留的分布式环境变量

集群中可能存在遗留的分布式训练环境变量(如MASTER_ADDR、MASTER_PORT),导致Lightning误判为分布式模式并陷入等待:

import os
import lightning as L

# 清空分布式相关环境变量
for env_var in ["MASTER_ADDR", "MASTER_PORT", "WORLD_SIZE", "RANK"]:
    if env_var in os.environ:
        del os.environ[env_var]

print("Before instantiate Trainer")
trainer = L.Trainer()
print("After instantiate Trainer")

4. 开启DEBUG日志定位具体阻塞点

添加日志配置,查看_AcceleratorConnector的每一步检测动作,精准定位问题环节:

import lightning as L
import logging

logging.basicConfig(level=logging.DEBUG)

print("Before instantiate Trainer")
trainer = L.Trainer()
print("After instantiate Trainer")

5. 检查集群共享存储锁

若集群使用NFS等共享存储,Lightning的硬件检测逻辑可能因创建锁文件失败而阻塞,可指定本地临时目录规避:

import lightning as L

trainer = L.Trainer(default_root_dir="/tmp/lightning_test")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 14:02:37