LoRA — katta pretrained modelni barcha weightlarini yangilamasdan, ayrim linear layerlarga past rankli kichik matrix update qo‘shish orqali moslashtiradigan parameter-efficient fine-tuning usuli. To‘liq nomi Low-Rank Adaptation. Base model weightlari odatda frozen qoladi, faqat LoRA parameterlari training qilinadi.
LoRA katta til, diffusion va boshqa Transformer modellarini kamroq GPU memory bilan fine-tuning qilishda keng qo‘llanadi.
Asosiy g‘oya
Original linear layer:
y = Wx
LoRA update bilan:
y = Wx + BAx
Bu yerda W katta frozen matrix, A va B esa kichik trainable matrixlar.
BA original weight bilan bir xil shape’ga ega, lekin ranki kichik.
Low-rank update
Agar original matrix o‘lchami juda katta bo‘lsa ham, update ikki kichik matrix orqali ifodalanadi.
Parameter soni taxminan original to‘liq update’dan ancha kam bo‘ladi.
Bu model moslashuvi past dimensional subspace’da yetarli bo‘lishi mumkin degan taxminga tayanadi.
Rank
Rank odatda r bilan belgilanadi.
Kichik rank:
Juda kichik rank vazifa uchun yetarli capacity bermasligi mumkin.
Rank layer va taskga qarab tanlanadi.
Alpha
LoRA update odatda scaling factor bilan ko‘paytiriladi.
alpha / rga o‘xshash nisbat ishlatilishi mumkin.
Alpha update kuchini boshqaradi.
Turli librarylarda parameter nomi va default qiymat farq qiladi.
Target module
LoRA qaysi layerlarga qo‘shilishi tanlanadi.
Transformerda:
- query projection;
- key projection;
- value projection;
- output projection;
- feed-forward;
- embedding;
- output head
target bo‘lishi mumkin.
Barcha layerga LoRA qo‘shish shart emas.
Frozen base model
Base model weightlari gradient olmaydi.
Shu sababli optimizer state va gradient memory kamayadi.
Activation memory baribir mavjud.
Gradient checkpointing va quantization bilan qo‘shimcha tejam olish mumkin.
Adapter artifact
LoRA training natijasi faqat kichik adapter weightlardan iborat bo‘lishi mumkin.
Base model alohida saqlanadi.
Adapter metadata:
ni ko‘rsatadi.
Merge
Inference oldidan LoRA update base weightga qo‘shilishi mumkin:
W_merged = W + BA
Merge qilinganda alohida adapter operationi talab qilinmaydi.
Biroq adapter almashtirish uchun yana original base weight kerak bo‘ladi.
Dynamic adapter
Serving tizimi bir base modelga turli LoRA adapterlarni request bo‘yicha yuklashi mumkin.
Masalan, har tenant yoki vazifa uchun boshqa adapter.
Bu GPU memoryni tejaydi.
Adapter isolation, cache va switch latency boshqariladi.
QLoRA
QLoRA quantized base model ustida LoRA trainingini bajarishga qaratilgan yondashuv.
Base weightlar past bitli formatda saqlanadi.
LoRA parameterlari yuqoriroq precisionda train qilinadi.
Bu juda katta modelni kamroq memory bilan fine-tuning qilishga imkon beradi.
Optimizer memory
Full fine-tuningda har trainable parameter uchun gradient va optimizer state saqlanadi.
LoRA trainable parameterlar sonini keskin kamaytiradi.
Shuning uchun optimizer memory ham kamayadi.
Activation memory training sequence uzunligiga bog‘liq qoladi.
Dropout
LoRA branchda dropout ishlatilishi mumkin.
Bu kichik datasetda regularization beradi.
Inference’da dropout o‘chiriladi.
Optimal qiymat dataset va rankga bog‘liq.
Diffusion modelda LoRA
Text-to-image modelda LoRA:
- style;
- character;
- product;
- visual concept;
- camera ko‘rinishi
ni o‘rgatishi mumkin.
Dataset kichik bo‘lsa overfitting va memorization xavfi bor.
Caption sifati conceptni boshqaradi.
LLMda LoRA
Til modelida:
- instruction;
- domain;
- format;
- tool call;
- uslub;
- til
uchun LoRA adapter yaratiladi.
Factlarni tez-tez yangilash uchun RAG ko‘proq mos bo‘lishi mumkin.
LoRA model behaviorini o‘zgartiradi.
Multiple adapter
Bir nechta LoRA update kombinatsiya qilinishi mumkin.
Oddiy weight addition har doim yaxshi natija bermaydi.
Adapterlar bir xil layer va behavior uchun qarama-qarshi update berishi mumkin.
Merge coefficient va evaluation zarur.
LoRA va adapter layer
Klassik adapter Transformer block ichiga qo‘shimcha bottleneck network qo‘shadi.
LoRA mavjud linear weight update’ini low-rank shaklda ifodalaydi.
Ikkalasi ham PEFT usuli.
Latency va artifact structure farq qiladi.
LoRA va full fine-tuning
Full fine-tuning maksimal moslashuv imkonini beradi, lekin qimmat.
LoRA:
Juda katta domain shift yoki architecture o‘zgarishida full fine-tuning kuchliroq bo‘lishi mumkin.
Security
LoRA adapter ham model behaviorini keskin o‘zgartirishi mumkin.
Noma’lum adapter:
- backdoor;
- zararli output;
- unsafe style;
- data memorization
saqlashi ehtimoli bor.
Adapter source, hash va evaluation bilan tekshiriladi.
Initialization
LoRA matrixlaridan biri odatda nolga yaqin, boshqasi random initializatsiya qilinadi. Shunda training boshlanishida BA update nolga teng bo‘lib, model base behaviorni saqlaydi. Ikkala matrix katta random qiymatdan boshlansa dastlabki output keskin o‘zgarishi mumkin.
Rank pattern
Barcha layer uchun bitta rank shart emas. Attention projectionlari va feed-forward layerlar vazifaga turlicha sezgir. Muhim layer yuqori rank, kam foydali layer past rank olishi mumkin. Bu adapter hajmini oshirmasdan capacityni to‘g‘ri taqsimlashga yordam beradi.
Adapter nomlash
Bir base model uchun ko‘p adapter bo‘lsa nom, task, til, owner va version aniq saqlanadi. Production request noto‘g‘ri adapter bilan ishlasa javob uslubi yoki domaini buziladi. Adapter registry compatibilityni tekshiradi.
Bog‘liq tushunchalar
Low-Rank Adaptation, Parameter-efficient fine-tuning, Rank, Adapter, QLoRA, Fine-tuning, Frozen model, Model merging, Transformer, Diffusion model