LogoCookLLM文档
LogoCookLLM文档
首页CookLLM

原理精讲

词元化
Tokenization 基础BPE 算法详解GPT 系列 TokenizerBPE 训练工程化
模型架构
Transformer LM
从 token ids 到 logitsEmbedding 与 LM Head
Attention 机制
Self-Attention 到 GQAAttention Sink
位置编码
位置编码基础RoPE 数学推导RoPE 代码实现长度外推
GPU 编程基础
GPU 架构基础张量布局Triton 入门:向量加法
FlashAttention
Flash Attention 原理详解从朴素实现到 Auto-TuningBlock Pointer 与多维支持Causal Masking 优化Grouped Query Attention反向传播实现
分布式训练
数据并行ZeRO 优化器全分片数据并行张量并行流水线并行多维混合并行
推理优化
KV CacheContinuous BatchingPagedAttention

动手训练

概述
预训练
预训练数据Tokenizer 训练模型架构数据流水线训练循环监控与验证
X (Twitter)
基础知识模型架构Attention 机制

Attention Sink

会员专享

第一个 token 为什么吸走绝大部分注意力,这一现象的机制、代价,以及为何消除它要留到 Gated Attention

在权益中心获取代码

GQA 之后还剩下的问题

上一章我们看到 GQA 把 KV cache 压到 MHA 的 1/4,代价是部分任务上略有质量下降。但 GQA 改的是 KV head 的数量,没有动 attention 本身的数学结构:还是 softmax,还是 causal mask,还是 。

登录以继续阅读

这是一篇付费内容,请登录您的账户以访问完整内容。

QKT/dQK^T / \sqrt{d}QKT/d​

如果换一个角度,绕过 KV cache,只盯着 attention 权重看,会发现一个跟 head 数、跟 group 数都无关的现象:推理时,绝大部分注意力都流向第一个 token。

这就是 Attention Sink。本章我们在 Qwen3-0.6B 上把它从头看到尾;而从机制上看,只要 attention 还是 softmax + causal 的组合,它就会出现。

Schematic: what an attention sink looks like
key j (attended position) →query t (attending) ↓012345678012345678sinkattention weighthighlow

Each row is a query, each column a key; under the causal mask a query only sees itself and the keys to its left (dashed cells are masked out). Notice column 0: almost every query puts most of its attention weight there, forming a vertical bright stripe across all queries. That stripe is the attention sink.

本章回答三个问题:

  1. 这个现象长什么样,数据上有多极端?
  2. 它为什么必然出现?
  3. 它给系统留下什么代价?

Self-Attention 到 GQA

从 Self-Attention 出发,依次拆开 Multi-Head、Causal Masking 与 GQA / MQA 的设计权衡

旋转位置编码

从位置编码基础到 RoPE 的数学推导、代码实现与长度外推

目录

GQA 之后还剩下的问题
现象:第一个 token 吸走了什么
一次直接观察
再拆一层:sink 来自模长还是角度
拆得更彻底:massive activation 落在哪
为什么会出现 sink
softmax 的"权重必须分完"约束
第一个 token 的"全局可见"特权
代价:KV cache 不能丢首 token
总结