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

使用Accelerate FSDP时单进程CLIPVisionModel权重加载错误致训练NaN

多卡FSDP训练CLIPVisionModel权重异常导致损失NaN问题

在2张48G显存A40 GPU上使用Accelerate FSDP训练时,出现训练损失为NaN、权重为-inf的情况。调试发现初始化阶段加载的非训练模型CLIPVisionModel在其中一个进程中权重异常,进而导致隐藏参数出现inf/NaN,最终引发训练损失NaN。

权重对比

正常进程CLIPVisionModel权重示例:

tensor([0.3311, 0.0032, 0.1610, ..., 2.1922, 0.0050, 0.0039],)

异常进程CLIPVisionModel权重示例:

tensor([-1.9921e-04, 4.5673e-41, -1.9921e-04, ..., 0.0000e+00,0.0000e+00, 0.0000e+00],)

加载代码

class SLlamaModel(LlamaModel):
    config_class = SConfig

    def __init__(self, config: LlamaConfig, mm_vision_tower=None, mm_hidden_size=None):
        super(SLlamaModel, self).__init__(config)

        if hasattr(config, "mm_vision_tower"):
            # HACK: for FSDP
            self.vision_tower = CLIPVisionModel.from_pretrained(config.mm_vision_tower)

        if hasattr(config, "use_mm_proj"):
            self.mm_projector = nn.Linear(config.mm_hidden_size, config.hidden_size)

注:config.mm_vision_tower为clip-vit-large-patch14的本地路径

FSDP配置

  • compute_environment: LOCAL_MACHINE
  • distributed_type: FSDP
  • downcast_bf16: 'no'
  • fsdp_config:
    • fsdp_auto_wrap_policy: TRANSFORMER_BASED_WRAP
    • fsdp_backward_prefetch_policy: BACKWARD_PRE
    • fsdp_forward_prefetch: true
    • fsdp_offload_params: true
    • fsdp_sharding_strategy: 1
    • fsdp_state_dict_type: FULL_STATE_DICT
    • fsdp_sync_module_states: true
    • fsdp_transformer_layer_cls_to_wrap: LlamaDecoderLayer
    • fsdp_use_orig_params: true
  • machine_rank: 0
  • main_training_function: main
  • mixed_precision: bf16
  • num_machines: 1
  • num_processes: 2
  • rdzv_backend: static
  • same_network: true
  • tpu_env: []
  • tpu_use_cluster: false
  • tpu_use_sudo: false
  • use_cpu: false

环境信息

  • Accelerate version: 0.21.0
  • Platform: Linux-5.4.0-90-generic-x86_64-with-glibc2.31
  • Python version: 3.10.12
  • Numpy version: 1.25.1
  • PyTorch version (GPU?): 2.0.1+cu117 (False)
  • PyTorch XPU available: False
  • PyTorch NPU available: False
  • System RAM: 755.74 GB

调试结论

经全流程调试确认,权重错误源于from_pretrained加载阶段,而非后续代码问题——直接调用test = CLIPVisionModel.from_pretrained("model path")仍会得到异常权重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 15:15:07