LoRA模型的可训练参数解析(61)
LoRA模型的可训练参数解析
-
- LoRA模块解析
- LoRA模型的可训练参数有多少
- 好消息和坏消息
LoRA模块解析
get_peft_model()函数会将原始的 4 位量化线性层(Linear4bit)包装为其对应的 LoRA 版本(lora.Linear4bit)。原始层依然保留(以base_layer的形式存在),因为后续计算原始输出时需要用到它。在原始层旁边,我们能看到一些(希望大家)眼熟的层:
- lora_A 和 lora_B:对应本课程第一部分中讨论过的 A 矩阵和 B 矩阵。注意,A 矩阵的输出特征数与 B 矩阵的输入特征数完全相同 —— 这一数值正是我们在配置中选择的秩(rank)值。
- lora_embedding_A 和 lora_embedding_B:功能与上述 A、B 矩阵完全一致,但仅在被适配的层为nn.Embedding(嵌入层)时使用。
- lora_dropout:本质上就是一个 dropout 层(用于防止过拟合)。
- lora_magnitude_vector:仅在 LoRA 的变体 DoRA(Directional LoRA)中使用,本实践实验系列暂不涉及该内容。
LoRA模型的可训练参数有多少
你是否想知道此刻模型的可训练参数有多少?可以调用一个非常便捷的方法来查看:既能了解可训练参数的具体数量,也能知晓其占模型总参数的百分比。
peft_model.print_trainable_parame