练 LoRA 的几个参数,我是按这个顺序定的

下面这套顺序是我自己单变量一个个试出来的,换个数据集未必成立,当参考看就行。

1. 先定 r(秩)。 r 决定这套低秩权重能装下多少信息,同时直接吃显存,所以它得第一个定,后面几项都是在它划出来的框里调。不是越大越好:简单风格本身要学的东西就不多,小 r 装得下;给太大,显存先上去了,学到的还未必更对路。

2. r 定了再配 alpha。 alpha 是缩放,可真正起作用的不是它的绝对值,是它跟 r 的比值,比值决定这套低秩权重叠回去时有多强。所以两个必须联动着看。只拎 alpha 改,等于你动了 r 又悄悄改了强度,出来的图好坏都归不了因,等于白跑一轮。

3. 挑 target_modules。 也就是往哪些层注入,这步很关键。注多了没必要还慢,注少了压根学不动。下手前先想清楚你要改的是画风还是结构,这两件事落的层不是一回事,搞混了参数再准也是在错地方使劲。

4. dropout 看数据量给。 防过拟合用的,小数据集才明显用得上——样本少,模型容易把噪声当特征背下去;数据量上来基本感觉不到。

5. 显存实在不够再上 QLoRA。 量化适配能把显存压下来,代价是精度得权衡,属于拿质量换可行性,显存够就别主动上。

剩一个我没定论:r 和 alpha 那个比例区间到底怎么取,我这边全是手试出来的,有系统调过的佬来指点一下。

联动这点我吃过亏,抬了 r 忘了跟着动 alpha,出图越练越淡。

QLoRA 我是显存实在不够才上的。同一份数据跑下来,量化那版在笔触细节上确实要软一点,风格大方向还在。显存够的话我还是走普通的,省下来的调参时间比省那点显存值钱。

8 个赞

抬了 r 忘记动 alpha 这坑我一模一样,后来干脆把 alpha 固定成 r 的一半