Setup. Ek linear layer h=Wx compute karta hai, jahan W∈Rd×k frozen hai.
Step 1 — Fine-tuning kya chahta hai.
Fine-tuning W ko W+ΔW mein badal deti hai, toh
h=(W+ΔW)x=Wx+ΔWx.Yeh step kyun? Koi bhi adaptation frozen weights mein ek additive correction ΔW hi hai.
Step 2 — ΔW ko low rank tak constrain karo.
Hum assume karte hain ki ΔW ka rank ≤r hai jahan r≪min(d,k). Koi bhi rank-r matrix factorize hoti hai as
ΔW=BA,B∈Rd×r,A∈Rr×k.Yeh step kyun? Intrinsic-dimension observation: useful update low rank hai, toh usse do thin matrices ke roop mein compressed store karo.
Step 3 — Parameters count karo.
Full ΔW: d⋅k params.
LoRA B,A: r(d+k) params.
d=k=4096, r=8 ke liye: full =16,777,216 vs LoRA =65,536 → 256× kam.
Step 4 — Initialization (kyun zaroori hai).A∼N(0,σ2), B=0. Toh step 0 par, BA=0, isliye h=Wx — model bilkul pretrained wale jaisa hi start karta hai. Training sirf corrections add karti hai, init par pehle se maujood knowledge kabhi destroy nahi karti.
Step 5 — Inference cost ZERO hai.
Training ke baad tum merge kar sakte ho: W′=W+rαBA. Ab inference ek hi matrix use karta hai — zero extra latency, adapters ke unlike jo sequential layers add karte hain.
Yeh kyun kaam karta hai: frozen weights ko sirf forward pass ke liye read kiya jaata hai — wahan precision loss tolerable hai — jabki learning tiny adapters ke andar full precision mein hoti hai.
Recall Feynman: 12 saal ke bachche ko explain karo
Socho ek bahut badi textbook (pretrained model) jo already sab kuch jaanti hai. Apne history test ke liye, tum poori book dobara nahi likhte — tum bas margins mein kuch sticky notes chipkaate ho jinmein sirf woh extra bits hain jo tumhe chahiye. Book same rehti hai; sticky notes tiny hote hain aur tum unhe doosre test ke liye swap kar sakte ho. Yahi PEFT hai: giant ko frozen rakho, tiny add-ons train karo.
PEFT kaunsi problem solve karta hai?
Bade LLMs ko tasks ke liye adapt karna, bina saare parameters update karne ki memory/storage/compute cost ke.
LoRA forward equation batao.
h=Wx+rαBAx, jahan W frozen hai aur A,B trainable hain.
ΔW low rank kyun assume kiya jaata hai?
Task adaptation ki low intrinsic dimension hoti hai, isliye update ko do thin matrices mein compress kiya ja sakta hai.
LoRA full ΔW ke comparison mein kitne params train karta hai?