下面这套顺序是我自己单变量一个个试出来的,换个数据集未必成立,当参考看就行。
1. 先定 r(秩)。 r 决定这套低秩权重能装下多少信息,同时直接吃显存,所以它得第一个定,后面几项都是在它划出来的框里调。不是越大越好:简单风格本身要学的东西就不多,小 r 装得下;给太大,显存先上去了,学到的还未必更对路。
2. r 定了再配 alpha。 alpha 是缩放,可真正起作用的不是它的绝对值,是它跟 r 的比值,比值决定这套低秩权重叠回去时有多强。所以两个必须联动着看。只拎 alpha 改,等于你动了 r 又悄悄改了强度,出来的图好坏都归不了因,等于白跑一轮。
3. 挑 target_modules。 也就是往哪些层注入,这步很关键。注多了没必要还慢,注少了压根学不动。下手前先想清楚你要改的是画风还是结构,这两件事落的层不是一回事,搞混了参数再准也是在错地方使劲。
4. dropout 看数据量给。 防过拟合用的,小数据集才明显用得上——样本少,模型容易把噪声当特征背下去;数据量上来基本感觉不到。
5. 显存实在不够再上 QLoRA。 量化适配能把显存压下来,代价是精度得权衡,属于拿质量换可行性,显存够就别主动上。
剩一个我没定论:r 和 alpha 那个比例区间到底怎么取,我这边全是手试出来的,有系统调过的佬来指点一下。