llamfactory 微调中用到的cpu的两处参数preprocessing_num_workers dataloader_num_workers

我给你用最直白、最清晰、不绕弯 的方式讲清楚,这几个参数到底干什么的、区别在哪、为什么你必须都开

一句话总结

  • preprocessing_num_workers预处理阶段用(tokenize、打包数据)
  • dataloader_xxx训练阶段用(给显卡喂数据)

你之前 CPU 只有 8%,就是因为 只开了预处理,没开训练时的数据加载多线程


1. preprocessing_num_workers: 16

作用:数据预处理多线程

只在训练开始前跑一次!

跑完就结束,不会再用。

它做什么?

  • 给文本做 token 切分
  • 把数据打包成固定长度(cutoff_len:1024)
  • 生成缓存文件

特点

  • 训练开始前跑完
  • 跑完就退出
  • 训练过程中不再参与

所以

你看到 CPU 8%,就是因为预处理早就跑完了,这个参数已经不工作了


2. dataloader_num_workers: 16

作用:训练时喂数据的多线程

训练全程一直跑!

负责从磁盘读取数据 → 送给显卡。

它做什么?

  • 从硬盘/SSD 读取数据
  • 送给模型训练
  • 全程持续工作,决定显卡饿不饿

特点

  • 训练每一步都在用
  • 决定数据能不能喂满显卡
  • 决定 CPU 占用率高不高

这就是你之前 CPU 只有 8% 的原因!

你没开这个,系统默认 单线程喂数据,CPU 根本不用干活。


3. dataloader_pin_memory: true

作用:锁页内存 → 加速数据传到显卡

让数据从内存 → 显卡的速度更快,不卡顿。

直白说

开了:数据传输更快

不开:慢,容易造成显卡等待


4. dataloader_prefetch_factor: 4

作用:提前预加载 4 批数据

让显卡永远有数据可以练,不饿肚子。

直白说

显卡要数据时,数据已经提前准备好了


最清晰对比表(一看就懂)

参数 阶段 作用 运行时间 CPU 占用影响
preprocessing_num_workers 预处理 分词、格式化数据 训练前一次 ❌ 几乎无
dataloader_num_workers 训练 给显卡喂数据 训练全程 ✅ 极大(你缺的就是它)
dataloader_pin_memory 训练 加速数据传输 训练全程 中等
dataloader_prefetch_factor 训练 提前加载数据 训练全程

最终结论(最重要)

  1. preprocessing_num_workers:只管训练前
  2. dataloader_num_workers:管训练时,决定CPU占用、显卡速度
  3. 你之前 CPU 8% 就是因为没开 dataloader_num_workers
  4. 现在我帮你加上了,CPU 会立刻跑到 60%~100%显卡跑满速度翻倍

需要我再给你讲讲怎么看 DCU 利用率、判断训练是否达到最快速度吗?

相关推荐
nvd118 小时前
OpenClaw 避坑指南:如何彻底从本地/Hunyuan 切换到第三方大模型
大模型
前端摸鱼匠11 小时前
【AI大模型春招面试题31】什么是“零样本学习(Zero-Shot)”“少样本学习(Few-Shot)”?大模型实现这类能力的核心原因?
人工智能·学习·面试·大模型·求职招聘
一切皆是因缘际会11 小时前
可自我迭代升级数字生命工程:从记忆厮杀到自我意识觉醒全链路——AGI内生智能硅基生命心智建模(下)
系统架构·大模型·agi·具身智能·通用人工智能·数字生命·自主智能体
Resistance丶未来12 小时前
Sub2API:订阅转API网关平台,魔芋AI接入指南
人工智能·gpt·大模型·claude·gemini·skill·sub2api
CoderJia程序员甲13 小时前
GitHub 热榜项目 - 周榜(2026-05-10)
人工智能·ai·大模型·llm·github
小马过河R14 小时前
从官方定义读懂智能体的时代分量
人工智能·语言模型·大模型·llm·agent·ai编程·多模态
邵奈一14 小时前
M1 Max Mac版本实测 Rapid-MLX 项目(据说比ollama快4倍)
人工智能·macos·大模型
DogDaoDao15 小时前
【GitHub】SuperClaude Framework深度解析:将Claude Code打造为专业开发平台的元编程配置框架
人工智能·深度学习·程序员·大模型·github·ai编程·claude
前端摸鱼匠16 小时前
【AI大模型春招面试题30】交叉熵损失(Cross-Entropy Loss)在大模型训练中的作用?为何适合语言生成任务?
人工智能·ai·面试·大模型·求职招聘
低调小一1 天前
Midscene.js 原理拆解:它不是“自然语言点按钮”,而是一套会看屏幕的 UI 自动化运行时
人工智能·rnn·架构·大模型·transformer·tdd·midscene