LLaMA Factory 操作界面微调时报 disable multiprocessing
问题描述
由于显卡性能不强,微调模型时会报以下错误,GPU 内存或系统内存不足,尤其在处理大规模数据或大模型时,子进程因内存溢出崩溃。
RuntimeError: One of the subprocesses has abruptly died during map operation.To debug the error, disable multiprocessing.
解决思路
我们可以调整 LLaMA Factory 训练命令中 --preprocessing_num_workers 参数。该参数指定了数据预处理时使用的进程数量。默认情况下为 0,意味着串行执行;设置为正整数时,框架会启动对应数量的 worker 进程并行处理数据集加载、分词等操作。
虽然多 worker 能加速数据预处理,但并非越多越好。如果设置的数值超过 CPU 核心数,会导致进程切换开销增大;过多的 worker 还会占用更多内存,可能引发 OOM(内存溢出)。推荐设置值为 CPU 物理核心数或核心数的 1-2 倍,若出现数据加载报错或内存紧张,可适当降低该值(如设为 0 单线程排查或设为 4/8)。
解决办法
通过命令行执行训练任务并修改参数。停止当前运行的 WebUI 进程,将命令复制到终端执行前,把 --preprocessing_num_workers 改小(例如改为 1 或 0),确认任务正常启动后再恢复 WebUI 进程进行后续参数管理。


