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

摸鱼小工具:用 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 保存提示
  • 多种框架风格的日志格式

目前支持的日志风格:

风格说明
trainerHugging Face Trainer 风格
deepspeedDeepSpeed wall-clock/profiler 风格
vllmvLLM serving 指标风格
stable-diffusionDiffusers/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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值