大模型参数项目笔记
- 创建于:2026-05-04
- 更新于:2026-05-04

# 大模型参数项目的意义是什么?
好好想想先 😌
参考链接
简述
- 降低微调成本
- 全量微调:所有参数都要更新,计算和存储成本高
- 高效微调:只更新部分参数,大幅降低训练资源消耗
- 避免灾难性遗忘
- 全量微调可能导致模型遗忘预训练学到的知识
- 高效微调通过只更新少量参数来保留预训练知识
- 快速适配新任务
- 不同任务可能需要不同的微调策略
- 降低微调成本
# 主流的高效微调方法有哪些?
好好想想先 😌
参考链接
简述
- LoRA (Low-Rank Adaptation)
- 冻结预训练权重,在旁路添加低秩矩阵
W' = W + ΔW = W + BA,其中B和A是低秩矩阵- 只训练
B和A,参数量大幅减少
- QLoRA (Quantized LoRA)
- 将预训练模型量化到 4-bit 再进行 LoRA 微调
- 进一步降低显存占用
- Adapter
- 在 Transformer 层之间插入适配器模块
- 只训练适配器参数
- Prefix Tuning / Prompt Tuning
- 在输入序列前添加可学习的前缀 token
- 不需要修改模型权重
- LoRA (Low-Rank Adaptation)
# LoRA 的工作原理是什么?
好好想想先 😌
参考链接
简述
- 核心思想:预训练模型的权重矩阵具有低 intrinsic rank
- 实现方式
- 冻结原始权重
W - 添加两个低秩矩阵
B和A - 前向传播:
h = Wx + BAx - 只更新
B和A,原始W保持冻结
- 冻结原始权重
- 秩的选择
- rank 越低,参数量越少,但表达能力可能不足
- 通常 rank 在 4-64 之间选择
- 优势
- 参数量大幅减少(约为全量参数的 0.1%-1%)
- 可以为不同任务训练不同的 LoRA 模块,灵活切换
- 推理时可以将 LoRA 权重合并到原始权重,无额外推理延迟
# LoRA 的秩 rank 如何选择?有什么影响?
好好想想先 😌
参考链接
简述
- rank 越小
- 参数量越少,训练越快,显存占用越低
- 表达能力受限,可能欠拟合
- rank 越大
- 表达能力更强,效果可能更好
- 参数量增加,训练成本上升
- 实际建议
- 从较小的 rank(如 4-8)开始尝试
- 如果效果不佳,逐步增加 rank
- 不同层可能需要不同的 rank
- rank 越小
# QLoRA 相比 LoRA 有什么改进?
好好想想先 😌
参考链接
简述
- 量化技术
- 将预训练模型从 16-bit 量化到 4-bit NormalFloat (NF4)
- 大幅降低模型存储空间
- 量化感知训练
- 在量化后仍然进行微调
- 通过梯度更新弥补量化带来的精度损失
- 分页优化器
- 处理梯度过程中的内存峰值
- 类似 CPU 和 GPU 之间的分页内存
- 效果
- 可以在 48GB GPU 上微调 65B 模型
- 效果接近全量 16-bit 微调
- 量化技术
# Adapter 方法和 LoRA 有什么区别?
好好想想先 😌
参考链接
简述
- 结构
- LoRA:在权重矩阵旁边添加低秩分支,并联方式
- Adapter:在 Transformer 层之间插入新模块,串行方式
- 参数量
- 两者参数量相近,都属于高效微调
- Adapter 约需 1%-5% 的原始参数量
- 灵活性
- LoRA 可以轻松合并权重,推理时无额外开销
- Adapter 需要保留额外模块,推理时有轻微额外计算
- 训练稳定性
- Adapter 通常更稳定
- LoRA 对学习率和初始化更敏感
- 结构
# 高效微调的实践建议有哪些?
好好想想先 😌
参考链接
简述
- 数据集
- 通常 1K-10K 样本即可见到效果
- 数据质量比数量更重要
- 注意数据多样性和分布平衡
- 学习率
- LoRA 通常使用比全量微调更高的学习率
- 如全量用 1e-5,LoRA 可用 1e-3
- Rank 选择
- 从 8 开始尝试,效果不好再调大
- 不同任务可能需要不同的 rank
- 模块选择
- 可以只对部分层应用 LoRA
- 通常对 Q/V attention 层效果较好
- 多任务学习
- 可以同时训练多个任务的 LoRA
- 使用路由机制动态选择
- 数据集