Обучение моделей 18 просмотров

LoRA

Low-Rank Adaptation

LoRA (Low-Rank Adaptation) — метод эффективной дообучения (fine-tuning) больших моделей, который обновляет только малые матрицы-адаптеры (0.1-1% параметров), сохраняя исходные веса замороженными.

Что такое LoRA

LoRA (Low-Rank Adaptation) — метод параметрически-эффективного fine-tuning (PEFT), предложенный Microsoft (2021). Вместо обновления всех весов модели, LoRA добавляет пару малых матриц (A и B) к каждому слою и обучает только их.

Принцип работы

Для весовой матрицы W ∈ R^{d×k}:

W' = W + ΔW = W + B × A

Где:
- W (d×k) — замороженные исходные веса
- A (d×r) — обучаемая матрица (понижение ранга)
- B (r×k) — обучаемая матрица (повышение ранга)
- r << min(d, k) — ранг (обычно 8, 16, 32, 64)

Экономия ресурсов

Метод Обучаемые параметры VRAM (7B) Качество
Full fine-tune 100% ~120 GB Лучшее
LoRA (r=16) 0.1-0.5% ~16 GB ~Full FT
QLoRA 0.1-0.5% ~6 GB ~LoRA

Ключевые гиперпараметры

  • rank (r) — ранг адаптера. Больше r = больше ёмкость, но больше VRAM
  • alpha — коэффициент масштабирования (обычно alpha = 2×rank)
  • target_modules — к каким слоям применять (q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj)

Пример с Hugging Face PEFT

from peft import LoraConfig, get_peft_model

config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj", "k_proj", "o_proj"],
    lora_dropout=0.05,
    task_type="CAUSAL_LM",
)

model = get_peft_model(base_model, config)
model.print_trainable_parameters()
# trainable params: 13M || all params: 7B || trainable%: 0.19%

QLoRA

QLoRA = квантизованная модель (4-bit NF4) + LoRA-адаптеры. Позволяет дообучать 70B модель на одной GPU с 24 GB VRAM.

Связанные термины

Является частью
Используется в

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу