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

使用LoRA恢复Phi-3微调时遇DeepSpeed优化器索引错误求助

Phi-3 LoRA恢复微调触发DeepSpeed Zero3优化器索引错误

背景

我已通过以下代码完成Phi-3模型的1轮epoch LoRA微调:

self.model=AutoModelForCausalLM.from_pretrained(self.model_args.model_name_or_path,**kwarg)
self.model = get_peft_model(self.model, self.lora_config)

现在尝试加载已有的LoRA权重恢复微调,代码如下:

self.model = PeftModel.from_pretrained(self.model , adapter)    
self.model.is_trainable = True    

错误信息

运行后触发关键错误:

optimizer = DeepSpeedZeroOptimizer_Stage3(
  File "/PATH/miniconda3/envs/llms/lib/python3.10/site-packages/deepspeed/runtime/zero/stage3.py", line 149, in __init__
        self.dtype = self.optimizer.param_groups[0]['params'][0].dtype

完整错误栈:

Traceback (most recent call last):
  File "/gpfs/u/scratch/TMPR/TMPRmhbt/research/FoodKG/models/Phi3/train.py", line 20, in <module>
    train()
  File "/gpfs/u/scratch/TMPR/TMPRmhbt/research/FoodKG/models/Phi3/train.py", line 14, in train
    custom_trainer.train()
  File "/gpfs/u/scratch/TMPR/TMPRmhbt/research/FoodKG/models/Phi3/core/model.py", line 273, in train
    trainer.train(resume_from_checkpoint=True)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/transformers/trainer.py", line 1539, in train
    return inner_training_loop(
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/transformers/trainer.py", line 1687, in _inner_training_loop
    model, self.optimizer = self.accelerator.prepare(self.model, self.optimizer)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/accelerate/accelerator.py", line 1220, in prepare
    result = self._prepare_deepspeed(*args)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/accelerate/accelerator.py", line 1605, in _prepare_deepspeed
    engine, optimizer, _, lr_scheduler = deepspeed.initialize(**kwargs)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/__init__.py", line 181, in initialize
    engine = DeepSpeedEngine(args=args,
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 307, in __init__
    self._configure_optimizer(optimizer, model_parameters)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1258, in _configure_optimizer
    self.optimizer = self._configure_zero_optimizer(basic_optimizer)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1582, in _configure_zero_optimizer
    optimizer = DeepSpeedZeroOptimizer_Stage3(
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/runtime/zero/stage3.py", line 149, in __init__
    self.dtype = self.optimizer.param_groups[0]['params'][0].dtype
IndexError: list index out of range
Traceback (most recent call last):
  File "/gpfs/u/scratch/TMPR/TMPRmhbt/research/FoodKG/models/Phi3/train.py", line 20, in <module>
    train()
  File "/gpfs/u/scratch/TMPR/TMPRmhbt/research/FoodKG/models/Phi3/train.py", line 14, in train
    custom_trainer.train()
  File "/gpfs/u/scratch/TMPR/TMPRmhbt/research/FoodKG/models/Phi3/core/model.py", line 273, in train
    trainer.train(resume_from_checkpoint=True)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/transformers/trainer.py", line 1539, in train
    return inner_training_loop(
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/transformers/trainer.py", line 1687, in _inner_training_loop
    model, self.optimizer = self.accelerator.prepare(self.model, self.optimizer)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/accelerate/accelerator.py", line 1220, in prepare
    result = self._prepare_deepspeed(*args)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/accelerate/accelerator.py", line 1605, in _prepare_deepspeed
    engine, optimizer, _, lr_scheduler = deepspeed.initialize(**kwargs)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/__init__.py", line 181, in initialize
    engine = DeepSpeedEngine(args=args,
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 307, in __init__
    self._configure_optimizer(optimizer, model_parameters)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1258, in _configure_optimizer
    self.optimizer = self._configure_zero_optimizer(basic_optimizer)
  File "/gpfs/u/home/TMPR/TMPRmhbt/scratch/miniconda3/envs/flax2/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 1582, in _configure_zero_optimizer 

核心现象

从头启动LoRA微调可正常运行,但加载已有LoRA权重恢复微调时,会触发上述优化器索引越界错误。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:44:57