LoRA微调助手
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_d958d803/lora-trainer。
技能介绍
解决什么问题
用 LoRA / QLoRA 微调大模型时,最容易卡住的往往不是写训练循环,而是动手前的数据排查和参数决策。JSONL 里混进空回复、重复样本或超长文本,训练几小时后才暴露;7B 模型 24GB 显存到底够不够、rank=8 还是 16、batch_size 能开多大,全靠猜。参数表里一堆默认值,但没人告诉你为什么选这个值。
lora-trainer 把这几件脏活提前做掉:先分析数据再谈参数,先算显存再定 batch size,每个推荐值都附理由,生成的脚本改两行路径就能跑。
技能如何工作
核心流程分四步:
- 数据诊断:扫描 JSONL,检测格式合法性、空字段、重复对和长度异常,同时估算字符数与 token 数——注意中文字符约 2 个 token,直接拿字符 p95 当
max_seq_length会差出 7 倍。 - 显存估算:内置 40+ 模型规格库,感知 MoE 架构,分别列出模型权重、LoRA 参数、激活值、优化器的占用明细,而不是一句「应该够用」。
- 参数推荐:57 条规则驱动,覆盖 chat / code / math / roleplay / CPT 五类任务,每个参数(
r、dropout、epochs、learning_rate)都给出基于样本量和任务的取值理由。 - 脚本生成:输出
train_qlora.py、inference.py和 YAML 配置,自带断点续训、OOM 自动降 batch_size 重试和配置存档。
内置 5 个独立脚本,其中 check_env.py、validate_data.py、memory_check.py 是纯 Python 实现,不装 PyTorch 也能跑,方便在训练前快速体检。
适用边界
能做的: 单卡 7B–72B 文本模型(CausalLM)的 SFT 与 CPT,支持 JSONL、ChatML 格式,自动适配 instruction/output 与 messages 两种数据组织方式。
不能做的: 全量微调、16+ GPU 分布式训练、视觉/语音多模态模型、RLHF / DPO 对齐、macOS GPU 训练。数据格式只认 JSONL,不支持 CSV / Parquet 直读。
几个高频坑值得提前留意:target_modules 名称因架构而异(Phi-3 用 qkv_proj,Bloom 用 dense),写错会被 PEFT 静默跳过,训练完发现什么都没学到;QLoRA 必须确认 BitsAndBytesConfig(load_in_4bit=True) 真的生效;角色扮演数据里的 system prompt 参与训练但不产生 loss,统计样本量时要意识到这一点。遇到新模型或不支持的场景,技能会直接说明,而不是编一个配置。
使用场景
- 接到新模型 SFT 任务,不确定单张 24GB 显存跑 QLoRA 够不够,需要快速估算占用明细并定 batch size
- 拿到一批原始 JSONL 数据,担心里面有空回复或超长样本导致训练失败,需要自动分析数据质量并估算 token 数
- 不想手动调参,希望根据任务类型自动推荐 rank 和学习率并说明理由,直接生成可运行的训练与推理脚本
适合人员
- 负责模型微调的算法工程师,需要快速估算显存并生成脚本来验证 LoRA 训练的可行性
- 研究垂域模型效果的 NLP 研究员,不想手动查资料,希望获得带理由的参数推荐并跑通 baseline 测试
- 需将微调后的模型部署到生产环境的后端开发工程师,需要开箱即用的训练脚本以便在本地快速跑通和验证推理流程