低秩更新是什么
对于形状为 d_out×d_in 的权重矩阵 W,LoRA 将更新写成缩放后的 B×A,其中 A 为 r×d_in,B 为 d_out×r。可训练参数从 d_out×d_in 变为 r×(d_in+d_out)。秩 r 控制更新子空间容量,但不能直接预测最终图像质量。
视觉模型适配时,必须先核对目标层名称、权重维度、基础模型版本和加载器约定。名为 LoRA 的权重文件并不意味着可以在任意架构或任意基础模型上互换。
参数预算示例
import assert from "node:assert/strict";
function loraBudget(input, output, rank) {
if (![input,output,rank].every(Number.isSafeInteger) ||
Math.min(input,output,rank) <= 0 || rank > Math.min(input,output))
throw new Error("invalid shape");
return {full:input*output, trainable:rank*(input+output)};
}
const result = loraBudget(4096,4096,16);
assert.equal(result.trainable,131072);
assert.equal(result.full/result.trainable,128);训练与验证记录
保存基础模型标识、数据集清单、裁剪方式、分辨率、随机种子、学习率、优化器和采样参数。同一主题的近重复图片可能造成记忆化;应预留不同构图和不同提示词的验证样本。
参数预算并不等于总训练显存预算。优化器状态、激活、梯度与基础模型权重都占用内存。推理合并权重时,应验证缩放系数和数值精度;反复在已合并权重上合并会重复施加更新。
来源与范围
- LoRA: Low-Rank Adaptation of Large Language Models:低秩适配方法来源。本文只说明参数计算与适配检查,没有声称复现特定 FLUX 版本的结构或训练结果。
感谢阅读本文
如果你觉得内容有帮助,欢迎点赞支持或分享给同行开发者。
325 次阅读86 人赞过