带团队踩过一个坑,记下来。我们一直默认 LoRA 就是全量微调的低配版,预算不够就把 rank 调小塞进显存,结果偏好优化那块反复翻车。后来想明白了:低秩约束不是在近似全量微调会走的那条梯度,而是逼模型去解一个不同的问题——在一个很小的子空间里找最优更新。
做 SFT、教格式教语气教领域词,这些信号本身就低维,LoRA 抓得很好。但 DPO、RLHF 这种偏好信号是弥散的,要在整个输出分布上小幅度地挪很多方向,低秩子空间根本表示不了,于是它只能去学那些跟奖励高相关的表层特征:长度、客套话、格式习惯。
评测集刷得漂亮,一换分布就莫名其妙退化。如果你的目标行为是窄领域词表、固定输出结构、工具调用格式,LoRA 就是对的工具;但要做广泛偏好对齐,要么上全量,要么把 rank 开到远超直觉的高,要么就认了它在学捷径、专门设计能戳穿风格模仿的留出测试。
方法选型是建模决定,不是算力预算决定。