LLaMA Factory操作界面微调时报disable multiprocessing.

LLaMA Factory操作界面微调时报disable multiprocessing.

LLaMA Factory操作界面微调时报disable multiprocessing

陈述问题

由于显卡性能不强,微调模型时会报以下下错误,GPU内存或系统内存不足,尤其在处理大规模数据或大模型时,子进程因内存溢出崩溃。

 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "G:\project\LLaMA-Factory\src\llamafactory\data\converter.py", line 420, in align_dataset return dataset.map( ^^^^^^^^^^^^ File "C:\Python312\Lib\site-packages\datasets\arrow_dataset.py", line 557, in wrapper out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Python312\Lib\site-packages\datasets\arrow_dataset.py", line 3166, in map for rank, done, content in iflatmap_unordered( File "C:\Python312\Lib\site-packages\datasets\utils\py_utils.py", line 713, in iflatmap_unordered raise RuntimeError( RuntimeError: One of the subprocesses has abruptly died during map operation.To debug the error, disable multiprocessing. 

解决思路

我们可以调整LlamaFactory 训练命令中 --preprocessing_num_workers

–preprocessing_num_workers 是 LlamaFactoryLlamaFactory(以及基于 Hugging Face 生态的大模型训练框架)中用于数据预处理阶段的核心参数,具体作用如下: 核心定义
这个参数指定了数据预处理时使用的进程 / 线程数量(这里设置为 16),用于并行处理训练数据(比如加载数据集、分词、格式化、生成
attention mask 等操作)。 具体工作机制 默认情况下,preprocessing_num_workers 为
0,意味着所有数据预处理工作都在主线程中串行执行; 设置为 16 时,框架会启动 16 个独立的 worker 进程 /
线程,同时对不同批次的数据集进行预处理,充分利用 CPU 多核资源。 实际效果 ✅ 加速数据预处理:对于大尺寸数据集(比如几万 /
几十万条样本),多 worker 并行处理能显著减少数据加载和预处理的耗时,避免训练过程中出现 “GPU 等数据” 的空闲情况; ⚠️
资源占用注意:worker 数量并非越多越好: 如果设置的数值超过你的 CPU 核心数(比如你的 CPU 只有 8 核却设为
16),会导致进程切换开销增大,反而变慢; 过多的 worker 还会占用更多内存,可能引发 OOM(内存溢出)。 适用场景
这个参数仅作用于训练前的数据预处理阶段(比如分词、数据格式化),训练过程中的计算(如前向 / 反向传播)仍由 GPU
负责,不会影响训练阶段的并行逻辑。 实用建议 推荐设置值:通常设为你的 CPU 物理核心数(比如 8 核 CPU 设为 8,16 核设为
16),或核心数的 1-2 倍; 调试阶段:如果出现数据加载报错(如 BrokenPipeError),可以先将该值设为
0(单线程)排查问题; 内存敏感场景:如果数据集样本长、内存紧张,适当降低该值(比如 8 或 4)。 总结
–preprocessing_num_workers 16 表示启用 16 个并行进程处理训练数据的预处理(分词、格式化等); 核心作用是利用多核 CPU 加速数据加载,避免 GPU 训练时等待数据; 取值需匹配 CPU
核心数,并非越大越好,否则会增加开销或导致内存不足。

解决办法

点击‘预览命令’查看命令,可以看到命令中 --preprocessing_num_workers 16 `

在这里插入图片描述

先把之前运行网页的llamafactory-cli webui的进程停了⚠️⚠️⚠️
再把命令复制到cmd执行,执行前把–preprocessing_num_workers 改小

在这里插入图片描述


看到以下界面说明已经在跑了

在这里插入图片描述


跑完之后再运行网页的llamafactory-cli webui的进程
再进到网页查看刚才的训练参数可以选择导出了

在这里插入图片描述

Read more

【AI】高效交互的艺术:AI提示工程与大模型对话指南

【AI】高效交互的艺术:AI提示工程与大模型对话指南

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人等方向学习者 ❄️个人专栏:《AI》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 一、ChatatGPT介绍 * 二、什么是提示工程? * 三、大语言模型的底层原理 * 四、AI的相关术语 * 五、如何与AI(以ChatatGPT为例)更好交流 * 5.1 使用AI的核心 * 5.2 提示组成结构 * 5.3 创建好的提示的策略 * 5.4 提示的类别 * 5.5 创建在和AI提示的进阶框架 * 5.6如何减少AI回答的空洞无味感 * 5.7 如何提高AI回答的可读性 * 六、使用AI的更多技巧 * 6.1 高效提示的原则 * 6.

【AI 风向标】一文讲清:大模型的上下文窗口 200k 到底指的是什么?

【AI 风向标】一文讲清:大模型的上下文窗口 200k 到底指的是什么?

本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权)    目录 一、先给结论 二、什么是 Token?(通俗版) 三、Token ≈ 多大文本?给你一个直觉 四、为什么不是“文件大小”? 五、200k / 1M 上下文窗口意味着什么? 六、常见支持上下文 Token 的模型(示例) 七、一个非常重要但常被忽略的点 最近经常看到宣传说: “上下文窗口突破 200k,甚至 1M” 很多人第一反应是: 👉 这是 字符数?文件大小?还是几百 MB 的文档? 答案其实很简单,但也最容易被误解。 一、先给结论

在魔乐社区使用llama-factory微调Qwen3.5-4B模型

在魔乐社区使用llama-factory微调Qwen3.5-4B模型

微调前期准备 下载qwen3.5-4B模型 # 首先保证已安装git-lfs(https://git-lfs.com)git lfs installgit clone https://modelers.cn/Qwen-AI/Qwen3.5-4B.git 下载Llama-factory git clone --depth1 https://gh.llkk.cc/https://github.com/hiyouga/LlamaFactory.git 微调环境搭建 我们依然是搭建一个miniconda #清除当前shell会话中的PYTHONPATH环境变量unset PYTHONPATH # 安装minicondawget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh bash Miniconda3-latest-Linux-aarch64.sh conda config --set

Whisper JAX时间戳功能:为语音内容添加精准时间标记的终极指南

Whisper JAX时间戳功能:为语音内容添加精准时间标记的终极指南 【免费下载链接】whisper-jaxJAX implementation of OpenAI's Whisper model for up to 70x speed-up on TPU. 项目地址: https://gitcode.com/gh_mirrors/wh/whisper-jax Whisper JAX是OpenAI Whisper模型的JAX实现,可在TPU上实现高达70倍的速度提升。作为一款高效的语音识别工具,其强大的时间戳功能能够为语音内容添加精准的时间标记,帮助用户轻松定位和管理音频中的关键信息。 什么是Whisper JAX时间戳功能? Whisper JAX的时间戳功能是一项强大的特性,它能够在语音转文字的过程中,为识别出的文本内容添加精确的时间标记。当启用时间戳功能后,系统会返回两个关键结果:包含完整转录文本的"text"字段,以及包含多个文本片段及其对应时间戳的"chunks&