基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
技术实践2026-10-31 18:59

LoRA遗忘实验:随机种子改变了结论

dev.to · AI#模型微调#评测#实验复现
Editor brief · 编辑速览

作者在Qwen2.5-3B-Instruct上测试9组LoRA秩与训练步数组合,通用任务表现均未低于基线。补做解析检查、基线重载和随机种子复验后,发现最小配置的完美保持率具有偶然性,而最大配置的收益在3次独立运行中复现。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

LoRA 微调会让模型学会专业任务,却忘掉通用能力吗?作者用 Qwen2.5-3B-Instruct 做了九组实验,结果与预期相反:通用任务表现没有一次低于基线,最强配置还出现了可重复的提升。但这不能推导出「LoRA 不会遗忘」。

这篇更有价值的部分,是作者没有直接接受这个漂亮结果,而是检查了解析、量化加载和训练随机性,最后找到一个实验设计缺口。对准备做领域微调的开发者,这套核查过程比单个提升数字更值得带走。

九组配置到底验证了什么

作者提前登记了两个假设:H1 认为,LoRA 的 rank 和训练步数越大,通用任务遗忘越明显;H2 认为,存在一种配置,能明显提高领域准确率,同时把通用任务保留率维持在 95% 以上。

领域任务是 Overruling,一个法律二分类任务:判断某句话是否推翻了先前判例的裁决。通用能力评估使用固定的 120 道选择题,覆盖 MMLU 的 57 个学科,每次微调前后都用相同方式评测。

模型固定为 Qwen2.5-3B-Instruct,LoRA rank 取 4、16、64,训练步数取 50、200、500,组成 3×3 网格。rank 可以粗略理解为适配器可调整空间的大小;它与训练步数一起,构成了这次实验考察的两个变量。

结果是,9 组配置中有 8 组同时满足领域准确率提升超过 10 个百分点、通用任务保留率高于 95%,触发了作者称为 KG2 的判定门槛。

H1 对应的 KG1 则没有触发。作者预先设定的是:从最小配置到最大配置,保留率下降 5 个百分点,才算支持该假设。实际结果却从 100.0% 升到 109.1%,增加了 9.1 个百分点。

这里不能把 109.1% 当成答题准确率。它是相对未微调基线报告的保留率指标,原文没有明确给出计算公式,也没有完整列出绝对准确率。这个数字支持「相对基线更好」,却不能直接读成多答对了多少道题。

为什么九组全部变好,反而需要查问题

如果只是单组提升,可能是正常波动;九组全部达到或超过基线,就值得检查评测流程。

作者认为,在只有 120 道题的评估中,普通采样噪声理应让部分配置落到基线以下。这是发起核查的理由,但不是严格的概率证明:九组共享同一套题和同一个基线,结果之间可能相关,不能直接当成九次独立抛硬币。

第一次检查针对答案解析。假如基线模型回答冗长,评分正则提取不到选项,而微调模型只输出字母,就可能制造虚假的准确率差距。

作者逐题比较了基线与提升最高配置的原始输出。两者几乎都只返回一个选项字母:基线有 1/120 条无法解析,微调模型是 0/120。这个检查排除了「大量答案因格式不同而被错判」的解释。

第二次检查针对 4-bit 量化加载。每组实验都会从同一个 checkpoint 重新加载基础模型,作者怀疑不同加载是否引入了数值变化。

他们独立加载未修改模型两次,再比较同一批 120 道题的原始回答,差异为零。在这次环境和测试中,重新加载与量化没有改变回答,因此也解释不了九组配置的一致走向。

评测结果越整齐,越应该检查它是怎样产生的。

补上随机种子后,哪些结果还站得住

真正的缺口出在训练端:原始网格每组只训练一次,而且没有固定 LoRA 随机初始化的种子。单次运行可能碰巧落在好结果上。

作者选了网格两端,各用两个新的明确种子重训:

  • 最小配置 rank 4、50 steps,保留率分别为 98.5% 和 104.5%。
  • 最大配置 rank 64、500 steps,保留率分别为 110.6% 和 106.1%。

最小配置的新结果分布在基线两侧,说明原先恰好达到 100.0% 不该被赋予特殊意义。它与「真实影响接近零、运行之间存在波动」的解释相容。

最大配置则连同原始运行,三次独立训练全部高于基线。这个提升不再只依赖一次幸运运行,也仍然与 H1 的预测相反。

为什么只补测两端?如果遗忘确实随 rank 和步数增加而加重,最小与最大配置之间应该更容易看见差异。这是针对异常的定向补查,不能替代整个九组网格的多种子重跑;作者也没有承诺重跑完整网格。

至于为什么变好,作者没有确认机制。一个待验证的解释是:法律二分类训练让模型更倾向于给出简短、明确的答案,这种作答习惯恰好也有利于选择题评分。

「解析成功」与「作答习惯影响成绩」是两个问题。前面的检查排除了明显的评分提取错误,却没有证明模型获得了新的通用知识。作者没有用无关数据或随机标签做对照,因此目前还分不清,收益来自法律任务本身,还是训练过程带来的其他变化。

我的判断

这项实验支持一个范围有限、但有实际价值的结论:在 Qwen2.5-3B-Instruct、Overruling 二分类、rank 不超过 64、训练不超过 500 steps 的条件下,没有观察到预期中的通用能力下降,最大配置的相对提升还能重复出现。

它不足以支持「LoRA 通常不会遗忘」。更长的生成任务、其他模型家族、更大的 rank,原文都没有验证。选择题成绩也不能替代代码生成、长回答或复杂指令遵循能力的评估。

评测规模同样限制了结论。作者为了让九轮训练评测和补测能在单张消费级 GPU 上完成,只使用了 120 道通用题。它们分散到 57 个学科,难以发现幅度很小、分布又很广的退化;总体成绩上涨,也可能遮住个别学科下降。

相比只看微调前后总分,这篇多做了原始输出核查、重复加载和种子复验,证据更扎实。相比完整的多种子实验与数据对照,它仍是一次局部验证。尤其「短答案格式带来收益」只是解释候选,不能当作已经找到的优化方法。

这里最值得复用的是核查路径,而不是 109.1% 这个成绩。

能拿来做什么

  • 如果正在给分类或其他窄领域任务训练 LoRA,可以同时维护领域测试集和固定的通用测试集,并提前写清可接受的收益与退化门槛,避免看到结果后再调整标准。
  • 如果用 Node 脚本批量调用模型并评分,应保存原始回答、解析结果和无法解析的数量。分数异常时,先抽查同一道题的前后输出,确认差异是否来自评分流程。
  • 如果算力只够做小规模探索,可以先跑配置网格,再对关键配置补做不同种子的训练;报告中要明确哪些只有单次结果,哪些经过复验。
  • 如果准备把微调模型用于日常 AI 编程,不能凭这份 MMLU 结果认定代码能力得到保留,应另外加入实际会用到的代码任务;本实验没有提供这部分证据。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
Agent 自动上线后,如何控制故障影响
下一篇
按隐私类型拆分测试,揪出静默漏检

资讯速览

dev.to · AI · 2026-10-31 18:59

AI 评分 8.0 / 10

相关标签

#模型微调#评测#实验复现

继续阅读

  • 编程 Agent 压缩上下文后会丢什么
  • Agent 自动上线后,如何控制故障影响
  • 按隐私类型拆分测试,揪出静默漏检
  • 用120行Python评估模型能力与成本
  • 从执行记录推导编程 Agent 沙箱权限