Hook — মন কোথায়?
একটা বাক্য পড়ার সময় তুমি প্রতিটি শব্দে সমান মন দাও না — কিছু শব্দে বেশি focus করো। Attention Mechanism সেই idea এর গাণিতিক রূপ — model কে শেখানো কোন input এর কোন অংশে কতটুকু মন দেবে।
Query, Key, Value — তিন ভূমিকা
- Query (Q) — ‘আমি কী খুঁজছি?’
- Key (K) — ‘আমার কাছে কী আছে?’
- Value (V) — ‘আসল content।’
Library তে বই খোঁজার মতো — Query হলো প্রশ্ন, Key হলো বইয়ের shelf label, Value হলো বইয়ের content। Q ও K এর মিল যত বেশি, সেই V তত বেশি weight পায়।
Scaled Dot-Product Attention
- Q·Kᵀ — similarity score।
- √dₖ দিয়ে scale — softmax saturation এড়াতে।
- Softmax — probability distribution।
- V এর সাথে weighted sum — context vector।
Self vs Cross Attention
- Self-Attention — Q, K, V একই sequence থেকে। প্রতিটি token নিজের sequence এর অন্যদের দেখে।
- Cross-Attention — Q এক sequence থেকে, K/V অন্য sequence থেকে। Decoder যখন encoder এর output ‘দেখে’।
- Masked Self-Attention — future token দেখা যাবে না (GPT)।
Multi-Head Attention
একটা attention মানে একটাই ‘দৃষ্টিভঙ্গি’। Multi-Head মানে অনেকগুলো parallel attention — একটা head syntax শিখতে পারে, আরেকটা semantic, আরেকটা long-range।
Code — Scratch Implementation
import torch
import torch.nn.functional as F
def scaled_dot_attention(Q, K, V, mask=None):
d_k = Q.size(-1)
scores = Q @ K.transpose(-2, -1) / d_k ** 0.5
if mask is not None:
scores = scores.masked_fill(mask == 0, float("-inf"))
weights = F.softmax(scores, dim=-1)
return weights @ V, weights
# Toy example
Q = torch.randn(1, 4, 64) # 4 token, 64 dim
K = torch.randn(1, 4, 64)
V = torch.randn(1, 4, 64)
out, w = scaled_dot_attention(Q, K, V)
print(out.shape, w.shape) # [1,4,64] [1,4,4]Modern Variants
- Flash Attention — memory efficient, GPU optimized।
- Sparse Attention — সব token এর সাথে নয়।
- Linear Attention — O(n) complexity।
- Grouped Query Attention (GQA) — LLaMA 2/3 এ ব্যবহৃত।
- Rotary Position Embedding (RoPE) — position attention এর সাথে integrate।
Intuition — কেন এত শক্তিশালী?
RNN এ ১০০তম token পর্যন্ত পৌঁছাতে ১০০ step লাগে। Attention এ যেকোনো দুটি token এর মধ্যে দূরত্ব সব সময় ১ — তাই long-range dependency সহজ।
Common Mistakes
- Padding token attend করা — mask দরকার।
- Causal mask না দেয়ায় decoder ‘cheat’ করে।
- Scaling factor √dₖ ভুলে যাওয়া।
Summary
Attention = Q·K similarity → softmax → V এর weighted sum। Modern AI এর সবচেয়ে গুরুত্বপূর্ণ মেকানিজম।