Recurrent Neural Networks (RNNs) 1990s se lekar 2016 tak sequence modeling ke liye dominant architecture thi, lekin inme kuch fundamental architectural constraints hain jinhe overcome karne ke liye transformers ko explicitly design kiya gaya tha. RNNs kyun fail hote hain ye samajhna is baat ki appreciation ke liye critical hai ki transformer architecture kyun kaam karta hai.
Aao h3 directly compute karne ki koshish karte hain. Humein chahiye:
h3=tanh(Whhh2+Wxhx3+bh)
Lekin h2 ke liye chahiye:
h2=tanh(Whhh1+Wxhx2+bh)
Aur h1 ke liye chahiye:
h1=tanh(Whhh0+Wxhx1+bh)
Conclusion: ht compute karne ke liye, humein pehle h1,h2,…,ht−1 sequentially ZAROOR compute karne padte hain. "Skip ahead" karne ka koi tarika nahi hai kyunki har hidden state apne previous state ki ek non-linear function hai.
Socho tum ek lambi kahani ek ek word sun ke samajhne ki koshish kar rahe ho, lekin tumhari memory bahut kharab hai. Jab tak tum word 100 sunte ho, tab tak word 1 kya tha ye bhul chuke hote ho. Isi tarah RNNs kaam karte hain - unhe words ek order mein process karne padte hain aur wo bahut pehle ki cheezein bhool jaate hain.
Ab socho tum POORI kahani likhi hui dekh sako, aur jab bhi chaho uska koi bhi hissa dekh sako. Tum ek saath word 1 aur word 100 dekh sako! Tum kai logon ko alag-alag hisse simultaneously padhne bhi de sakte ho. Isi tarah transformers kaam karte hain - wo ek saath saare words "dekh" sakte hain aur kisi bhi word par dhyan de sakte hain, chahe words kitni bhi door hon.
Result? Transformers hain:
Way faster - jaise 100 log alag alag hisse padh rahe hon vs. 1 insaan ek ek word padh raha ho
Better memory - wo words ke beech connections yaad rakh sakte hain chahe wo bahut door hon
Smarter understanding - wo dekh sakte hain ki SAARE words ek doosre se kaise relate karte hain, sirf nearby words se nahi
RNNs mein sequential processing bottleneck kya hai? :: RNNs hidden states iteratively compute karte hain ht=f(ht−1,xt) ke roop mein, ek causal chain banate hain jahan ht tab tak compute nahi ho sakta jab tak ht−1 available na ho. Isse computation O(T) sequential steps ban jaata hai jo parallelize nahi ho sakta.
RNNs time ke across computation parallelize kyun nahi kar sakte?
Kyunki har hidden state ht, previous state ht−1 ki ek non-linear function hai, ht compute karne ka koi tarika nahi hai bina pehle h1,h2,…,ht−1 sab sequence mein compute kiye.
RNNs ke liye T timesteps mein vanishing gradient formula derive karo :: ∂ht−1∂ht=diag(tanh′(⋅))⋅Whh se shuru karte hue, hamare paas hai ∂ht−1∂ht≈σmax(Whh)⋅γ jahan γ<1. T steps mein, gradients (σmax(Whh)⋅γ)T−1 ke roop mein decay karte hain. Agar ye product 1 se kam hai, to gradients exponentially vanish hote hain.
Encoder ko poori input sequence x1,…,xT ko ek single fixed-size hidden state hT∈Rd mein compress karna padta hai. Isse ek information bottleneck banta hai: ek d-dimensional vector ki limited capacity hoti hai jabki sequence mein Tlog2V bits information ho sakti hai.
Transformers RNNs se long sequences par kitna faster ho sakte hain?
Transformers ki O(1) parallel time complexity hai RNNs ki O(T) sequential time ke comparison mein. T=1000 length ki sequences par sufficient parallel hardware ke saath, transformers wall-clock time mein ~1000× faster ho sakte hain.
LSTMs vanishing gradient problem fully kyun solve NAHI karte? :: LSTMs problem ko mitigate karte hain, eliminate nahi karte. Forget gate ft gradient ko abhi bhi multiply karta hai: ∂ct−1∂ct=ft. Agar ft<1 zyaadatar steps par hai, gradients abhi bhi exponentially decay karte hain, bas thoda slow. LSTMs effective range ko ~10 se ~100 steps tak extend karte hain, lekin 1000+ token sequences ke liye problems wapas aati hain.
RNNs ke liye effective context window formula kya hai?
Effective context wo distance k ke roop mein define karo jahan gradient 1% tak decay ho jaaye: γk=0.01, to k=log(γ)log(0.01). γ=0.95 wale vanilla RNN ke liye: k≈90 steps. γ=0.99 wale LSTM ke liye: k≈459 steps.
Self-attention long-range dependency problem kaise solve karta hai?
Self-attention saare positions ke beech direct connections create karta hai: position i, position j ko single matrix operation se attend karta hai, distance ∣i−j∣ se independent. Gradient path ki length 1 hai (length ∣i−j∣ nahi), distance ke saath exponential decay eliminate karta hai.