Transformer — 手算一遍注意力
라이브러리 없이 순수 파이썬으로 어텐션·마스크·멀티헤드·위치 인코딩·LayerNorm 을 직접 구현합니다. 스케일링이 없으면 소프트맥스가 실제로 포화되는 것, 위치 인코딩이 없으면 순서를 섞어도 결과가 같아지는 것을 숫자로 확인합니다. 마지막에 요즘 모델 지형과 비전·오디오 인코더가 하는 일을 정리합니다.
고급 · 레슨 31 · 实验 10
커리큘럼
注意力的内部
- 注意力就是加权平均 reading
- 不用库实现注意力 lab
- 当下的模型地貌与那些编码器 reading
- Transformer 确认 quiz
分词与词表
- 同一句话,token 数却不一样 reading
- 亲手做一个分词器 lab
- 测验:分词与词表 quiz
旋转位置编码(RoPE)
- 位置不是加上去的,是转出来的 reading
- 用旋转把位置放进去 lab
- 测验:旋转位置编码 quiz
温度、top-k 与 top-p
- 同一个提示词,每次答案都不同 reading
- 亲手实现温度、top-k 与 top-p lab
- 测验:温度、top-k 与 top-p quiz
上下文长度与代价
- 上下文翻倍,什么会变成四倍 reading
- 亲手数出上下文长度的代价 lab
- 测验:上下文长度与代价 quiz
KV 缓存减少的计算量
- 多生成一个 token 时,什么被重新计算了 reading
- 数一数 KV 缓存省下的乘法 lab
- 测验:KV 缓存减少的计算量 quiz
嵌入、权重共享与 logits
- 编号变成向量,向量再变成分数 reading
- 从嵌入表到 logits lab
- 测验:嵌入与 logits quiz
整数量化对精度的影响
- 折进 int8 再展开,究竟变了多少 reading
- 亲手算一遍 int8 的算术 lab
- 测验:整数量化误差 quiz
MHA、MQA 与 GQA
- 查询头保持不变,只减少键值头 reading
- 只把键值头减下来 lab
- 测验:MHA、MQA 与 GQA quiz
交叉熵与困惑度
- 把模型的好坏变成一个数字 reading
- 亲手算出一个损失 lab
- 测验:交叉熵与困惑度 quiz