Bosh sahifa Wiki LoRA

LoRA

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