文章目录
- 概要
- 损失计算流程
- 小结
概要
Llama-7B模型的LoRA微调训练中,通过使用Cross-Entropy Loss来度量模型输出的预测分布和真实标签分布之间的距离,来衡量模型的准确性。 本文主要介绍LoRA中损失值的计算流程。
Cross-Entropy Loss作用:是深度学习和机器学习中常用的损失函数之一,主要用于分类任务。
损失计算流程
以下是 LLaMA-7B 模型中损失计算的三个步骤:
-
计算logits矩阵(生成分数):
模型最后一层MLP的输出与模型词表权重进行点乘计算生成一个行数(nvocab)为32,000 ,列数(seq)为4096的 logits 矩阵,每个元素对应词汇表中的一个词,表示生成该词的“分数”。 -
Softmax 转换(分数变概率):
将 logits 矩阵经过 Softmax 转换为概率分布矩阵 Y ^ ∈ 𝐹 𝒏 𝒗 𝒐 𝒄 𝒂 𝒃 ∗ 𝒔 𝒆 𝒒 \hat{{Y}}∈𝐹^{𝒏𝒗𝒐𝒄𝒂𝒃∗𝒔𝒆𝒒} Y^∈Fnvocab∗seq,使得logits矩阵每个位置上的元素转化为一个概率值 Y ^ 𝒕 , 𝒋 \hat{\mathcal{Y}}_{𝒕,𝒋} Y^t,j ,表示模型在该位置生成词的可能性。 -
交叉熵损失:
根据标签计算损失。在每个位置上,交叉熵损失只计算标签对应的词的概率,公式如下:
其中, Y 𝒕 , 𝒋 \mathcal{Y}_{𝒕,𝒋} Yt,j是标签的独热编码矩阵 Y ∈ 𝐹 𝒏 𝒗 𝒐 𝒄 𝒂 𝒃 ∗ 𝒔 𝒆 𝒒 {Y}∈𝐹^{𝒏𝒗𝒐𝒄𝒂𝒃∗𝒔𝒆𝒒} Y∈Fnvocab∗seq的元素,在该矩阵中,正确词的位置为1,其余为0。
小结
关键点
- logits 表示未归一化分数,用于生成概率。
- Softmax 将 logits 转为概率分布,确保总和为 1。
- 交叉熵损失仅计算正确标签的概率对数,以评估预测的准确性。