HUM KYA TRADE KARTE HAIN? Hum har weight ko freely reshape karne ki ability chhodte hain, aur bet lagate hain ki ek low-capacity add-on kaafi hai ek aise model ko specialise karne ke liye jo pehle se general features seekh chuka hai. Empirically, yeh bet zyaadatar jeet jaati hai.
Hum chahte hain ek aisa module jo (1) pretrained forward pass ko tod ke bina insert ho sake, (2) ke paas kam parameters hon, (3) ek useful transformation express kar sake.
Sasti capacity → factorize karo. Ek full learned map Rd→Rd mein d2 params lagte hain. Ise ek bottleneck r se force karo: down-project d→r, phir up-project r→d. Params 2dr ho jaate hain. Jab r≪d, yeh bahut chhota hai.
Yeh step kyun?2dr≪d2 jab r≪d. d=1024,r=16 ke liye: 2dr=32,768 vs d2≈106.
Nonlinearity add karo. Do stacked linears ek linear map mein collapse ho jaate hain. σ insert karo taaki adapter ek nonlinear correction seekh sake.
Kyun?σ ke bina, WupWdown sirf ek rank-r linear map hai — kam expressive.
Kyun? Agar adapter near-identity se shuru hota hai, toh frozen model ka behaviour step 0 par preserve rehta hai, isliye training ek known-good point se shuru hoti hai aur pretrained knowledge destroy nahi hogi.
Real token queries Q ab extra learned key/value slots par attend karte hain. Kyunki softmax saare keys par mix karta hai, prefix har position mein task-specific information inject kar sakta hai.
K,V parametrize kyun karo aur sirf embeddings prepend kyun nahi? Raw embeddings prepend karna ("prompt tuning") sirf layer 0 ko affect karta hai; har layer par directly keys/values likhna zyaada control deta hai aur zyaada stably train hota hai. (Practice mein ek chhota MLP prefix ko training ke dauran stability ke liye reparametrize karta hai.)
Woh 20% jo aapko pata hona chahiye: dono backbone freeze karte hain; adapters ek bottleneck FFN add karte hain residual init-to-identity ke saath; prefix tuning learned key/value vectors prepend karta hai; dono ~0.1–3% weights train karte hain aur ek shared model + tiny per-task deltas dete hain.
Recall Feynman: ek 12-saal ke bachche ko samjhao
Socho ek bahut smart robot hai jo pehle se har kitaab padh chuka hai. Tum nahi chahte ki sirf apna homework karwaane ke liye usse sab kuch dobara sikhao. Toh tum uspe ek chhota helper gadget clip karte ho (adapter) ya usse ek secret cheat-note dete ho jo woh har jawab se pehle padhta hai (prefix). Robot ka bada brain bilkul waise ka waisa rehta hai — tum sirf chhota gadget ya chhoti note train karte ho. Yeh sasta hai, fast hai, aur tum 100 alag gadgets 100 alag kamon ke liye rakh sakte ho, sab usi ek robot pe clip karke.
PEFT (adapters / prefix tuning) kaunsi problem solve karta hai?
Full fine-tuning har task ke liye ek full model copy chahta hai (O(W) params); PEFT backbone freeze karta hai aur sirf ~0.1–3% nayi params train karta hai, ek shared model + tiny deltas.
Steel-man: full fine-tuning PEFT se hamesha behtar kyun NAHI hota?
Chhote data par yeh overfit karta hai aur bhool jaata hai; PEFT ki low capacity regularize karta hai aur aksar FT se match karta hai ~100× lower storage par.
Length-p prefix ka length-n sequence par compute cost kya hai?
Attention O((n+p)2) ban jaata hai — har token ke liye lamba effective sequence.