大语言模型的终极之路
  • 大语言模型的终极之路
  • 更新计划
  • 大语言模型时代的NLP
    • 任务与评测
    • 参考资料
  • 基础知识
    • 负对数似然
    • Transformer
      • Cross Attention
      • 向量流动视角
      • Layer Normalization
      • Attention Block
    • 优化算法
      • 牛顿法
      • 梯度下降
  • 大语言模型
    • 大模型理论
      • Scaling Law
      • The Bitter Lesson
      • 思考,快与慢
    • 模型结构
      • MLP
      • Rotary Embedding
      • RMSNorm
      • Encoder-decoder
      • Decoder-only
      • MOE
      • 常见大模型
        • T5
        • GPT2
        • LLaMA
        • LLaMA 2
        • Mistral
        • GLM
        • Mixture
    • 如何训练一个ChatGPT
    • 微调
      • Instruction Tuning 指令微调
      • Domain Finetune 领域微调
    • 解码
      • 温度采样
      • Beam Search Decoding
  • Prompt 工程
    • Prompt, 一种技术路线
    • Prompt 写作规范
    • In-Context Learning
    • Chain-of-Thought
    • Generate Rather than Read
    • Program-of-Thought
    • Tree-of-Thought
    • 参考资料
  • 知识与幻觉
    • 知识边界
  • 大规模预训练
    • 计算资源消耗
    • Deepspeed
    • Megatron
    • 大规模数据处理
    • CUDA 算子优化
  • 强化学习
    • RLHF
      • RLHF
  • 大模型轻量化
    • 蒸馏
      • 黑盒蒸馏
      • 白盒蒸馏
        • KL 散度
    • 轻量化微调
      • LoRA
    • 量化
    • 剪枝
    • 推理加速
    • 参考资料
  • RAG-大模型检索
    • Page 3
  • 多智能体
    • Page 6
  • 多模态大模型
    • Page 1
  • 大模型安全与鲁棒
由 GitBook 提供支持
在本页
  1. 大模型轻量化
  2. 蒸馏
  3. 白盒蒸馏

KL 散度

好的,我们来详细讲解并推导KL散度(Kullback-Leibler divergence),这是信息论中的一个重要概念,用于衡量两个概率分布之间的差异。

首先,定义KL散度:给定两个概率分布P和Q,关于相同事件空间的分布,P对Q的KL散度定义为:

DKL(P∣Q)=∑x∈XP(x)log⁡(P(x)Q(x))D_{KL}(P | Q) = \sum_{x \in \mathcal{X}} P(x) \log\left(\frac{P(x)}{Q(x)}\right) DKL​(P∣Q)=x∈X∑​P(x)log(Q(x)P(x)​)

其中, X\mathcal{X} X表示所有可能事件的集合, P(x) 和 Q(x) 分别表示事件 xxx 在两个分布中的概率。这个公式的基本思想是衡量当你使用基于 QQQ 的分布的概率来编码来自 PPP 的分布的事件时,平均每个事件需要的额外的信息量(以比特为单位,如果对数底为2)。

KL散度(Kullback-Leibler divergence),也称为相对熵,是衡量两个概率分布(P)和(Q)之间差异的一个度量。其定义基于概率分布(P)和(Q)上的对数比值的期望。这里,我们假定(P)和(Q)是定义在同一个概率空间 (X)(\mathcal{X})(X)上的两个概率分布,且(P)是真实分布,(Q)是模型分布。以下是KL散度的数学推导。

KL散度的定义

对于离散概率分布,KL散度定义为:

[DKL(P∣Q)=∑x∈XP(x)log⁡(P(x)Q(x))][D_{KL}(P | Q) = \sum_{x \in \mathcal{X}} P(x) \log\left(\frac{P(x)}{Q(x)}\right)][DKL​(P∣Q)=x∈X∑​P(x)log(Q(x)P(x)​)]

对于连续概率分布,KL散度定义为:

[DKL(P∣Q)=∫Xp(x)log⁡(p(x)q(x))dx][D_{KL}(P | Q) = \int_{\mathcal{X}} p(x) \log\left(\frac{p(x)}{q(x)}\right)dx][DKL​(P∣Q)=∫X​p(x)log(q(x)p(x)​)dx]

这里,p(x) 和 q(x) 分别是连续随机变量的概率密度函数。

数学推导

以离散概率分布为例进行推导。根据定义:

[DKL(P∣Q)=∑x∈XP(x)log⁡(P(x)Q(x))][D_{KL}(P | Q) = \sum_{x \in \mathcal{X}} P(x) \log\left(\frac{P(x)}{Q(x)}\right)][DKL​(P∣Q)=x∈X∑​P(x)log(Q(x)P(x)​)]

我们可以把这个表达式分为两部分:

[DKL(P∣Q)=∑x∈XP(x)log⁡P(x)−∑x∈XP(x)log⁡Q(x)][D_{KL}(P | Q) = \sum_{x \in \mathcal{X}} P(x) \log P(x) - \sum_{x \in \mathcal{X}} P(x) \log Q(x)][DKL​(P∣Q)=x∈X∑​P(x)logP(x)−x∈X∑​P(x)logQ(x)]

第一部分 (∑x∈XP(x)log⁡P(x))(\sum_{x \in \mathcal{X}} P(x) \log P(x))(∑x∈X​P(x)logP(x))可以理解为分布(P)的熵的负值,而熵是衡量概率分布不确定性的度量。

第二部分 (−∑x∈XP(x)log⁡Q(x))(-\sum_{x \in \mathcal{X}} P(x) \log Q(x))(−∑x∈X​P(x)logQ(x))可以看作是交叉熵,它衡量的是,当模型假定概率分布为(Q)时,描述来自真实分布(P)的数据所需的平均比特数(如果对数底为2)。

因此,KL散度可以被解释为,当我们用模型分布(Q)来近似真实分布(P)时,信息损失的量。它衡量了(Q)分布与(P)分布之间的“距离”,尽管这不是一个真正的距离度量(因为它不是对称的,也不满足三角不等式)。

特性

  • 非负性:根据吉布斯不等式,KL散度总是非负的,即 (DKL(P∣Q)≥0)(D_{KL}(P | Q) \geq 0)(DKL​(P∣Q)≥0),等号成立当且仅当(P = Q)。

  • 非对称性: DKL(P∣Q)≠DKL(Q∣P)D_{KL}(P | Q) \neq D_{KL}(Q | P)DKL​(P∣Q)=DKL​(Q∣P),这意味着(P)相对于(Q)的KL散度不等于(Q)相对于(P)的KL散度。

KL散度广泛应用于信息论、统计学、机器学习等领域,用于概率分布的比较、模型选择、特征选择等。

KL散度在很多领域都有应用,包括机器学习(特别是在概率模型和信息论中)、统计推断以及其他需要衡量概率分布差异的领域。通过这种方式,它帮助我们了解不同概率分布之间的“距离”,虽然它自身不是一个真正的距离度量(因为它不满足对称性和三角不等式)。

上一页白盒蒸馏下一页轻量化微调

最后更新于1年前