📚 সমস্ত অধ্যায় দেখুন
অধ্যায়/ফেজ 4 · Phase 4 · Deep Learning
4.6৩০ মিনিট পড়া31 / 68

Attention Mechanism

Attention

Query, key, value এর গণিত।

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

Attention(Q, K, V) = softmax(Q·Kᵀ / √dₖ) · V
  • 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।

MultiHead(Q,K,V) = Concat(head₁,...,headₕ) · W^O

Code — Scratch Implementation

attention.py
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 — কেন এত শক্তিশালী?

Direct connection

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 এর সবচেয়ে গুরুত্বপূর্ণ মেকানিজম।