Packing+多模态数据使用deepspeed微调Qwen3.6-35B-A3B发生数据预处理死锁

Cerrado
#9,701 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
python

Línea de trabajo

Reproducir con el comando swift sft proporcionado, centrándose en --packing true con el conjunto de datos multimodal. Inspeccionar swift/dataset/preprocessor/core.py alrededor de las líneas 325 y 353, y después comparar las ejecuciones con el packing desactivado, los datos multimodales eliminados o num_proc establecido en None. Se considera terminado cuando el preprocesamiento y el entrenamiento ya no entren en deadlock con la configuración indicada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug
Checklist / 检查清单
  • I have searched existing issues, and this is a new bug report. / 我已经搜索过现有的 issues,确认这是一个新的 bug report。
Bug Description / Bug 描述

NPU910B Qwen3.6-35B-A3B sft死锁,似乎和Packing/多模态数据强相关。

在8*910B上测试
使用的镜像是swift官方提供的swift4.3.0-910B镜像 自己加上了deepspeed的zero3补丁:https://github.com/modelscope/ms-swift/issues/9657

会在这里死锁:

Image Image

键盘中断后调用栈

Image
How to Reproduce / 如何复现

我用的训练命令:
swift sft
--model /tmp/Qwen3.6-35B-A3B
--dataset /tmp/final.jsonl \ #这是我自己制作的一个多模态数据集,Agent数据每个个包含1-3张图片
--split_dataset_ratio 0.5
--torch_dtype bfloat16
--tuner_type lora
--target_modules all-linear
--freeze_vit true
--freeze_aligner true
--lora_rank 8
--lora_alpha 32
--num_train_epochs 16
--packing true \ #这个会导致死锁 CPU占用率为0
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--gradient_accumulation_steps 2
--learning_rate 5e-5
--max_length 40960
--save_steps 100
--eval_steps 100
--save_total_limit 2
--logging_steps 2
--deepspeed zero3_offload
--sequence_parallel_size 8
--padding_free true
--attn_impl flash_attn
--output_dir /tmp/result

具体卡在预处理的这里
https://github.com/modelscope/ms-swift/blob/v4.3.0/swift/dataset/preprocessor/core.py#L353
看不到是卡在哪个数据上了
https://github.com/modelscope/ms-swift/blob/v4.3.0/swift/dataset/preprocessor/core.py#L325
如果把这里的num_proc设置为None,就不会死锁在数据预处理阶段,但是会死锁在Train 0/100

如果关闭packing或者不使用多模态数据,就一切正常

Additional Information / 补充信息

No response

Lenguaje dominante
Python
Estrellas
16k
Forks
1.8k
Merge medio
2 d 3 h
PR fusionados (30 d)
74

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelscope/ms-swift

Todos los issues de modelscope/ms-swift

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.