Skip to content

Daily Plan

更新: 3/27/2026 字数: 0 字 时长: 0 分钟

#todo

  • [ ]
  • [ ]

Daily Study

更新: 3/27/2026 字数: 0 字 时长: 0 分钟

Transformer学习

主要介绍结构:Transformer模型详解(图解最完整版) - 知乎 待看:Transformer 架构全解析:从 Attention 机制到编码器 - 解码器,一文吃透核心原理 - 知乎

每一层的功能

自注意力机制:它的核心功能是让模型在处理序列中的某个元素时,能够动态计算该元素与序列中其他元素的关联程度(即 “注意力权重”),从而聚焦于对当前元素最相关的信息,忽略无关信息。

问题

每一层的功能是什么 mask矩阵怎么算出来的 Q、K、V矩阵怎么算出来的 lora微调具体参数设置 学习率 批次大小 优化器 超参数

Lora

一句话概括:LoRA (Low-Rank Adaptation) 是一种参数高效微调技术 (PEFT)。 它的核心思想是:冻结预训练好的大模型权重,只在每一层旁边增加一个旁路(Bypass),这个旁路通过两个低秩矩阵(Low-Rank Matrices)相乘来模拟参数的更新量。

核心原理

  1. 假设前提:低秩假设 (Low Intrinsic Rank)研究发现,大模型虽然参数很多(几十亿),但在适应特定任务(比如你的安全告警分析)时,参数的改变量($\Delta W$)并不需要满秩。也就是说,真正起作用的参数变化,存在于一个极低的维度空间里。
  2. 矩阵分解。假设模型原本的一个全连接层权重是 $W_0$(维度 $d \times k$)。全量微调就是求 $W = W_0 + \Delta W$。LoRA 将这个巨大的 $\Delta W$ 分解为两个小矩阵 $A$ and $B$ 的乘积:$$\Delta W = B \times A$$其中:$B$ 的维度是 $d \times r$,$A$ 的维度是 $r \times k$,$r$ 是秩 (Rank),这是一个超参数,通常很小(比如 8, 16, 64),远小于 $d$ 和 $k$(通常是 4096)。
  3. 前向传播公式$$h = W_0 x + \Delta W x = W_0 x + B A x$$训练时:$W_0$ 被冻结(不更新梯度),只训练 $A$ 和 $B$。初始化:$A$ 使用高斯分布初始化,$B$ 初始化为 0。这样训练刚开始时,$BA=0$,模型输出等于原始模型,保证训练稳定性。

为什么用Lora

  1. 显存占用极低 (Training Efficiency)全量微调:需要存储 $W_0$ 的梯度、优化器状态(Adam 需要存 2 倍参数量)。7B 模型全量微调可能需要 100GB+ 显存。LoRA:只更新 $A$ 和 $B$。参数量通常只有原模型的 0.1% 到 1%。显存需求大幅下降,单张消费级显卡(如 RTX 4090)就能跑。
  2. 无推理延迟 (Zero Inference Latency)Adapter 等其他微调方法:通常在层之间插入额外的网络层,会增加推理的计算链路,导致推理变慢。LoRA:在生产部署时,我们可以把训练好的 $BA$ 矩阵直接加回 $W_0$ 中:$$W_{final} = W_0 + (B \times A)$$这样模型结构没有发生任何变化,推理速度和原模型完全一致。
  3. 多租户/多任务切换 (Storage Efficient)你可以在同一个基础模型(Base Model)上,挂载不同的 LoRA 模块。
    1. LoRA_1:专门分析 SQL 注入。
    2. LoRA_2:专门分析 DDoS 攻击。切换任务时,只需要替换几百 MB 的 LoRA 权重,而不需要重新加载几十 GB 的大模型,非常适合 SaaS 平台。

关键超参数

  1. Rank ($r$)

    • 秩的大小。一般设为 8 或 16 就足够了。对于非常复杂的任务,可以尝试 64,但再大收益就不明显了。
  2. Alpha ($\alpha$)

    • 缩放系数。LoRA 的更新量会乘以 $\frac{\alpha}{r}$。通常设置 $\alpha$ 为 $r$ 的倍数(如 1倍或 2倍)。它类似于学习率的放大器。
  3. Target Modules

    • 应用 LoRA 的层。通常对 Attention 层的 q_proj, v_proj 做 LoRA 效果最好。如果显存够,对 k_proj, o_proj, gate_proj 等全做,效果会更好。

菜就多练

本站访客数 人次 本站总访问量