检查点与 LoRA 有什么区别?

模型检查点记录某一时点的模型状态;在图像生成社区中,“检查点”通常指一组可加载的完整模型权重。LoRA 存储一个小得多的学习更新,并将其应用到兼容基础模型。检查点可能在目标工作流程中独立运行;LoRA 不包含该基础模型。

完整模型结构旁附有一个精简的 LoRA 适配器叠加层,并连接到单独的基础模型。
完整检查点携带广泛模型状态。LoRA 携带针对性更新,只有与其训练所用基础模型配套时才有意义。

“检查点”有两个相关含义

训练期间,检查点是可用于评估或继续工作的已保存状态。它可能包括模型权重、优化器状态、调度器状态、随机数状态和训练元数据。推理检查点通常是更精简的导出,仅包含加载模型所需的权重和配置。

在 Stable Diffusion 社区中,“检查点”也常作为 UI 中所选主要模型文件的简称。但这并不保证嵌入了所有依赖项。工作流程仍可能需要由应用或配套软件包提供的 VAE、文本编码器、分词器或配置。始终根据你打算恢复的加载器来定义“完整”。

LoRA 是学习得到的更新,而不是第二个完整模型

Low-Rank Adaptation 会冻结预训练权重,并为选定层学习低秩更新。推理时,框架可将该更新动态应用到基础模型,或将其融合进派生副本。适配器很小,是因为它存储更新,而不是暗中压缩每个基础权重。

这种依赖关系是检查点与 LoRA 区别的核心。为某个 Stable Diffusion 系列训练的人像风格 LoRA,不能假定适用于另一种架构。语言模型适配器同样依赖其配置所述基础模型和目标模块。

实用对比

问题模型检查点LoRA
存储内容广泛的模型状态;有时还包含其他训练状态低秩适配器权重和配置
它能独立运行吗?通常可作为其预期工作流程中的主要模型加载不能;它需要兼容的基础模型和加载器
典型用途基础模型、完整微调、里程碑或续训点高效专门化、风格、主体或任务适配
存储通常大得多,因为它表示的状态更多通常小得多,因为只学习选定更新
恢复问题我是否拥有所需的完整软件包或训练状态?我是否拥有精确兼容的基础模型、适配器配置和权重?

合并 LoRA 会让它变成检查点吗?

将适配器融合或合并到基础模型会产生派生权重。工具可能把这些权重保存到通常称为检查点的文件中,但该输出不是原始基础模型,也不一定保留基础模型与适配器之间干净、可逆的分离。浮点运算、dtype 转换和导出选项都可能影响结果。

如果希望改变强度、组合适配器或复现合并,请保留未融合适配器和精确基础模型。当那个精确部署文件在运营中很重要时,也要保留合并后的工件。不要仅因一个合并文件曾成功加载一次就删除来源。

微调期间应保留什么

对于正在运行的训练,中间检查点有助于评估和从中断中恢复。训练完成后,保留能够回答真实问题的里程碑:选定的最终适配器、一个或多个有充分理由的对比检查点、配置、训练代码或命令、数据集引用和评估记录。LoRA 训练检查点指南将其视为可复现性决策,而不是一概“全部保留”。

最终适配器不等于可续训状态。导出的 LoRA 权重可能足以用于推理,但缺少精确继续训练所需的优化器和调度器状态。

归档系列,而不是孤立文件名

一个有用的 LoRA 系列应包含足够信息,以识别并获取兼容基础模型。当基础模型稀有、私有或在本地修改过时,请将它与适配器一同保留。检查点系列可能还包含运行时首次加载时静默提供的配套组件。

Tensor Archive 可帮助把选定本地张量作为相关系列保留并验证。它不会根据文件名猜测兼容性、重建缺失的训练状态,也不会把 LoRA 变成独立基础模型。

继续处理你已有的工件

如果令人困惑的是适配器扩展名,请阅读LoRA 文件包含什么。如果在选择训练方法,请阅读LoRA 与 QLoRA。如果问题由存储压力引起,请了解如何在不改变 LoRA 权重的情况下释放磁盘空间

来源

将基础模型和适配器放在一起。免费下载 ↓