附录 A 术语表


文档摘要

附录 A 术语表 按字母顺序排列的知识蒸馏与深度学习术语速查。每条给出简明定义与本项目中的关联。 A 部分 AdamW 带权重衰减的 Adam 优化器变体。本项目用它优化学生模型,配合余弦退火调度学习率。 alpha(α,硬标签权重) 蒸馏总损失中硬标签交叉熵的权重,取值 01。 退化为普通训练, 为纯蒸馏。 attention(注意力) Transformer 的核心机制,让模型在每个位置关注序列中的其他位置。本项目复用 GPT2 的实现,不手写。 B 部分 blocksize(上下文长度) 模型一次能看到的最大 token 数。本项目默认 128,影响显存与长程依赖能力。

附录 A 术语表

按字母顺序排列的知识蒸馏与深度学习术语速查。每条给出简明定义与本项目中的关联。

A 部分

AdamW

带权重衰减的 Adam 优化器变体。本项目用它优化学生模型,配合余弦退火调度学习率。

alpha(α,硬标签权重)

蒸馏总损失中硬标签交叉熵的权重,取值 0~1。α=1 退化为普通训练,α=0 为纯蒸馏。

attention(注意力)

Transformer 的核心机制,让模型在每个位置关注序列中的其他位置。本项目复用 GPT2 的实现,不手写。

B 部分

block_size(上下文长度)

模型一次能看到的最大 token 数。本项目默认 128,影响显存与长程依赖能力。

BPE(Byte Pair Encoding)

tiktoken 使用的子词分词算法,高频词整体编码、低频词拆成子词,平衡词表大小与覆盖率。

C 部分

causal LM(因果语言模型)

只看左侧上下文预测下一个 token 的语言模型,GPT2 即属此类。区别于掩码语言模型(MLM)。

checkpoint

训练过程中保存的模型快照,含权重、优化器状态、配置等。本项目支持断点续训。

CE(Cross Entropy,交叉熵)

分类/语言建模的标准损失,衡量预测分布与真实标签的差异。蒸馏的硬标签项即 CE。

dataclass

Python 标准库装饰器,自动生成 __init__ 等。本项目用它定义配置类。

D 部分

Dark Knowledge(暗知识)

Hinton 提出的概念,指教师软标签中次优选项的相对关系,是蒸馏提供额外监督信号的核心。

Distillation(知识蒸馏)

用大模型(教师)指导小模型(学生)训练的技术,目标是压缩与加速。

DistilBERT

经典蒸馏实践,把 BERT-base 蒸馏到 60% 参数,保留约 97% 性能,推理快 60%。

dropout

训练时随机丢弃部分神经元,防过拟合。本项目学生用 0.1 的 dropout。

E 部分

embedding(嵌入)

把离散 token id 映射为连续向量。GPT2 的嵌入维度由 n_embd 配置。

epoch

把训练集完整遍历一遍。本项目按「步数」而非 epoch 控制训练长度。

eval mode(评估模式)

模型 .eval() 后的状态,关闭 dropout 与 batchnorm 训练行为。教师加载后即处于此模式。

F 部分

from_pretrained

transformers 的方法,从 Hub 加载预训练权重。本项目用它加载教师 GPT2。

from scratch(从零训练)

权重随机初始化后训练,不加载预训练。本项目学生即从零训练。

G 部分

GPT2

OpenAI 的经典自回归语言模型。本项目教师用预训练 GPT2,学生用自定义小 GPT2。

grad clip(梯度裁剪)

把梯度整体范数限制在阈值内,防梯度爆炸。本项目用 1.0 的裁剪阈值。

H 部分

hard label(硬标签)

单一的正确答案(如「下一个 token 是 X」),与软标签相对。

hidden state(隐藏状态)

Transformer 各层输出的连续向量表示。中间层蒸馏对齐的就是它。

Hinton

Geoffrey Hinton,知识蒸馏奠基论文(2015)的作者,也是深度学习先驱之一。

I 部分

inference(推理)

用训练好的模型做预测/生成。本项目推理模块支持温度采样与 top-k。

ignore_index

交叉熵中标记「忽略此位置」的特殊值(通常 -100),padding 位置用它排除。

K 部分

KL divergence(KL 散度)

衡量两个概率分布差异的非负、不对称度量。蒸馏软标签项即 KL(教师‖学生)。

KD(Knowledge Distillation 缩写)

知识蒸馏的常用缩写,kd_loss 即软标签损失。

L 部分

lambda LR

PyTorch 的学习率调度器,用 lambda 函数定义每步学习率比例。本项目用它实现余弦退火。

logits

模型最后一层输出、softmax 之前的原始值。蒸馏对齐的就是师生 logits。

LoRA

低秩适配微调方法,可作为教师/学生参数高效训练的扩展方向。

M 部分

masked LM(掩码语言模型)

随机遮盖部分 token 让模型预测的预训练任务,BERT 即属此类。与因果 LM 相对。

MiniLM

微软提出的蒸馏方法,引入注意力分布对齐,属于中间层蒸馏。

MSE(Mean Squared Error,均方误差)

回归/对齐常用损失。中间层蒸馏对齐隐藏状态时常用 MSE。

N 部分

no_grad

torch.no_grad() 上下文,禁用梯度计算。教师前向用它省显存。

n_embd / n_layer / n_head

GPT2 架构三要素:嵌入维度、层数、注意力头数。

O 部分

optimizer(优化器)

根据梯度更新模型权重的算法。本项目用 AdamW。

P 部分

perplexity(PPL,困惑度)

平均交叉熵的指数,语言模型核心指标,越低越好。

pin_memory

DataLoader 选项,用锁页内存加速 CPU→GPU 数据拷贝。

R 部分

reduction

损失函数的聚合方式(sum/mean/batchmean)。蒸馏 KL 用 batchmean 避免被词表维度稀释。

requires_grad

张量/参数是否需要梯度的标志。教师参数全部设为 False(冻结)。

S 部分

scheduler(学习率调度器)

按规则调整学习率的组件。本项目用线性预热 + 余弦退火。

shift(对齐)

GPT2 约定下,logits 截末位、labels 截首位以对齐 next-token 预测。

softmax

把 logits 转为概率分布的函数。带温度版本 softmax(z/T) 用于蒸馏软化。

student(学生模型)

蒸馏中体积小、被训练的模型,学习模仿教师。本项目默认约 10M 参数。

supervised learning(监督学习)

从带标签数据学习。蒸馏可视为用教师的软标签做「软监督」。

T 部分

teacher(教师模型)

蒸馏中体积大、被冻结的模型,提供软标签。本项目用预训练 GPT2(约 124M)。

temperature(温度 T)

软化 softmax 分布的超参。T 越大分布越平坦,暗知识越明显。

TinyBERT

加入中间层(隐藏状态 + 注意力)对齐的蒸馏方法,DistilBERT 的进阶。

token

分词后的最小单元。本项目用 tiktoken 切词,词表 50257。

top-k

生成时只保留概率最高的 k 个 token 的采样策略,过滤长尾低质词。

top-1 accuracy

预测 argmax 恰为真实标签的比例,评估指标之一。

W 部分

warmup(预热)

训练初期学习率从 0 线性升到峰值的阶段,稳定训练初期。

weight decay(权重衰减)

AdamW 的正则化项,防止权重过大。本项目用 0.1。

若有未收录的术语,可在项目对应章节中检索。本术语表会随教程迭代持续更新。


发布者: 作者: 转发
评论区 (0)
U