💡一句話定義
注意力銳化(Sharpening)= 讓注意力分布更集中的技巧:把權重明確放在少數關鍵位置,而不是平均分散給每個詞。最常用 softmax 溫度調控——溫度低更尖銳、溫度高更平滑。
🌫️為什麼要銳化?
🎮互動:溫度 vs Top-K 稀疏化
中心詞是「銀行」。左滑桿調溫度(預設 T=3.0 模擬崩塌、分數被平均);右滑桿是 Top-K 稀疏化。試試在 T=3.0 的模糊狀態把 K 拉到 2——模型瞬間「清醒」,其餘權重被強制歸零。
Transformer:注意力崩塌與稀疏化約束 (Sparsity)
當前中心詞 (Query):【銀行】
模型正在決定「銀行」的注意力應該分配給句子中的哪些詞?
策略一:調整溫度 (Temperature)
T = 1.00
預設設定在 T=3.0 (模擬注意力崩塌:分數被平均化)。
策略二:施加稀疏化約束 (Top-K)
K = 7 (無)
保留前 K 個最高分的詞,其餘強制歸零 (Sparsity)。
⚖️溫度銳化 vs 稀疏化約束
| 面向 | 溫度銳化 (Temperature) | 稀疏化 (Top-K) |
|---|---|---|
| 做法 | 調 softmax 溫度,拉開高低分比例 | 只留前 K 高分,其餘強制歸零 |
| 無關詞 | 仍保有非零機率(雜訊沒切斷) | 直接變 0(雜訊消失) |
| 計算量 | 沒減少 | 可變稀疏矩陣、省記憶體與運算 |
| 長序列 | 幫助有限 | 友善(如 Sparse Transformer) |
重點:溫度只是「拉開比例」、雜訊還在;稀疏化「直接切斷」無關連結,既解決崩塌又省算。
⚠️銳化過頭的風險
銳化不是越尖越好。太尖銳會讓模型只盯單一位置、忽略其他有用的上下文,降低穩健性,甚至讓梯度不穩。要在「集中」與「分散」之間取得平衡——保留足夠上下文,同時突顯關鍵。
🎛️怎麼控制銳化程度
🌡️softmax 溫度
溫度低→更尖銳集中;溫度高→更平滑分散。
溫度低→更尖銳集中;溫度高→更平滑分散。
📊熵正則
對注意力的熵加懲罰,鼓勵更集中或更分散。
對注意力的熵加懲罰,鼓勵更集中或更分散。
✂️Top-K
只保留前 K 高分,其餘歸零。
只保留前 K 高分,其餘歸零。
🧱Sparse Attention
結構化稀疏,長序列省算的核心做法。
結構化稀疏,長序列省算的核心做法。
✅自我檢測
Q1. 注意力銳化在做什麼?為什麼需要?
讓注意力分布更集中、權重放在少數關鍵位置。因為 softmax 會給每個詞非零機率,深層時累積成雜訊、造成注意力崩塌;銳化能突顯重點、提升表現與可解釋性。
Q2. 怎麼用溫度控制銳化?
調 softmax 的溫度:溫度低→分布更尖銳(集中)、溫度高→更平滑(分散)。也可用熵正則、Top-K 等方式。
Q3. 溫度銳化和稀疏化最大的差別?
溫度只是拉開高低分比例,無關詞仍有非零機率、計算量沒減少;稀疏化把多數權重直接歸零,徹底切斷雜訊,還能變稀疏矩陣省算、對長序列友善。
Q4. 銳化過頭會怎樣?
太尖銳會只盯單一位置、忽略其他有用上下文、降低穩健性甚至梯度不穩。需在集中與分散間取平衡。
🎯重點整理
- 是什麼:讓注意力分布更集中,權重放少數關鍵位置。
- 為什麼:softmax 微小機率累積成雜訊 → 注意力崩塌。
- 溫度:低更尖、高更平;但雜訊沒切斷、不省算。
- 稀疏化:Top-K 歸零,切斷雜訊、省算、長序列友善。
- 取捨:過頭會忽略上下文、不穩,要平衡。