摸鱼小工具:用 slackDL 模拟深度学习训练日志

前言
先说一个不太正经的需求:有时候你只是想让终端看起来正在训练模型。
进度条在跑,loss 在降,checkpoint 在保存。电脑显得很忙,人也显得很忙。
slackDL 就是为这种“合理摸鱼”场景写的小工具。
当然,它不只是玩梗。在做深度学习相关开发时,也经常会遇到一些需要“训练日志样例”的场景:
- 测试日志解析脚本
- 调试终端输出格式
- 演示训练监控面板
- 录制 CLI 工具 demo
- 教学时展示训练过程
如果每次都真的启动一个训练任务,不仅耗时,也会占用 GPU 或本地资源。
因此我写了一个轻量级 Python CLI 工具:slackDL,用于模拟深度学习训练过程中的进度条、指标日志和 checkpoint 保存输出。
项目地址:https://github.com/uishd666/slacking-off-DL
功能介绍
slackDL 可以模拟常见深度学习训练或推理服务中的日志输出,包括:
tqdm进度条- 动态变化的
sample/s - 逐步下降并震荡的 loss
- learning rate、grad norm、epoch 等指标
- checkpoint 保存提示
- 多种框架风格的日志格式
目前支持的日志风格:
| 风格 | 说明 |
|---|---|
trainer | Hugging Face Trainer 风格 |
deepspeed | DeepSpeed wall-clock/profiler 风格 |
vllm | vLLM serving 指标风格 |
stable-diffusion | Diffusers/Accelerate 风格 |
安装
在项目根目录执行:
python3 -m pip install .
安装后可以直接运行:
slackDL
基本使用
默认会输出 Hugging Face Trainer 风格日志:
slackDL
示例输出:
12%|█████████████████▉ | 3236/27161 [06:27<46:47, 8.52sample/s]
{'loss': 1.1071, 'grad_norm': 0.9592, 'learning_rate': 0.00025606601717798213, 'epoch': 0.25}
Saving model checkpoint to project-name/run-name/checkpoint-1900/checkpoint.pth
切换日志风格
模拟 DeepSpeed:
slackDL --log-style deepspeed
模拟 vLLM:
slackDL --log-style vllm
模拟 Stable Diffusion / Diffusers:
slackDL --log-style stable-diffusion
启用彩色输出:
slackDL --log-style deepspeed --rainbow
常用参数
slackDL \
--steps 27161 \
--loss-start 1.5 \
--loss-min 0.1 \
--acc-start 0.5 \
--oscillation 0.05 \
--step-delay 0.12 \
--log-every 100 \
--save-every 1900 \
--project-name project-name \
--run-name run-name
参数说明:
| 参数 | 说明 |
|---|---|
--steps | 模拟的训练样本数 |
--loss-start | 初始 loss |
--loss-min | 收敛后的最小 loss |
--acc-start | 初始 accuracy |
--oscillation | 收敛后 loss 的震荡幅度 |
--step-delay | 每个 sample 的基础延迟 |
--speed-jitter | 速度抖动幅度 |
--log-every | 每隔多少 step 打印一次日志 |
--log-style | 日志风格 |
--save-every | 每隔多少 step 模拟保存 checkpoint |
--save-delay | 模拟保存 checkpoint 的延迟 |
--rainbow | 启用彩色输出 |
适用场景
这个工具不做真实训练,但适合以下场景:
- 日志采集与解析测试
- 训练监控前端 demo
- 终端录屏素材生成
- 课程或分享中的训练过程展示
- CLI 工具开发时构造稳定输出
总结
slackDL 是一个偏轻量、偏趣味的 Python CLI 工具,但它也能解决一些实际开发中的小问题:不用启动真实训练任务,就可以快速得到类似深度学习训练的日志输出。
项目地址:
https://github.com/uishd666/slacking-off-DL
欢迎 star、issue 或 PR。
31

被折叠的 条评论
为什么被折叠?



