Добавить в корзинуПозвонить
Найти в Дзене

LoRA: Апгрейд модели без затрат на миллионы параметров

#ai #dev (канал https://t.me/cybermerlin_pub) Адаптировать большую языковую модель под свою задачу (например, писать код в специфическом стиле) обычно стоит дорого: для полного дообучения (Full Fine-Tuning) LLama 3 70B потребовался бы кластер GPU. **LoRA (Low-Rank Adaptation)** решает эту проблему кардинально иначе: она не трогает исходные веса модели, а лишь добавляет к ним небольшую «поправочную» матрицу. Внутри трансформера находятся огромные матрицы весов (`W`). Вместо того чтобы обучать всю матрицу `W`, LoRA представляет её изменение как произведение двух маленьких матриц: `ΔW = B × A`. Их размерность `r × k` значительно меньше исходной `d × k`. Во время обучения базовые веса замораживаются, а обучаются только `A` и `B`. Это сокращает число обучаемых параметров в тысячи раз. К примеру, для GPT-3 LoRA уменьшает их в **10 000 раз**, а потребление VRAM падает примерно в 3 раза. Исследование на датасете PubMed Medical показало, что LoRA (0.6% обучаемых параметров) дала **ROUGE-1 43.52
Оглавление

#ai #dev

(канал https://t.me/cybermerlin_pub)

LoRA: Апгрейд модели без затрат на миллионы параметров

Адаптировать большую языковую модель под свою задачу (например, писать код в специфическом стиле) обычно стоит дорого: для полного дообучения (Full Fine-Tuning) LLama 3 70B потребовался бы кластер GPU. **LoRA (Low-Rank Adaptation)** решает эту проблему кардинально иначе: она не трогает исходные веса модели, а лишь добавляет к ним небольшую «поправочную» матрицу.

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

Внутри трансформера находятся огромные матрицы весов (`W`). Вместо того чтобы обучать всю матрицу `W`, LoRA представляет её изменение как произведение двух маленьких матриц: `ΔW = B × A`. Их размерность `r × k` значительно меньше исходной `d × k`.

Во время обучения базовые веса замораживаются, а обучаются только `A` и `B`. Это сокращает число обучаемых параметров в тысячи раз. К примеру, для GPT-3 LoRA уменьшает их в **10 000 раз**, а потребление VRAM падает примерно в 3 раза.

Исследование на датасете PubMed Medical показало, что LoRA (0.6% обучаемых параметров) дала **ROUGE-1 43.52**, в то время как Full Fine-Tuning (100% параметров) — лишь **40.67**. Более того, в условиях ограниченных ресурсов (4 ГБ RAM без свопа) LoRA завершила обучение, тогда как остальные методы крашнулись, требуя активного использования свопа.

QLoRA: Запуск на видеокарте с 4 ГБ памяти

**QLoRA (Quantized LoRA)** — это LoRA с 4-битным квантованием базовой модели. Вы можете дообучать Llama 2 7B на видеокартах с 4 ГБ памяти (например, RTX 3050).

Применение на практике

Обученные LoRA-адаптеры — это небольшие файлы (единицы МБ). Их легко переключать на лету во время инференса:

```python
from vllm import LLM, SamplingParams, LoRARequest
llm = LLM(model="meta-llama/Llama-2-7b-hf", enable_lora=True)
output = llm.generate(
"Hello, my name is",
lora_request=LoRARequest("sql_adapter", 1, "path/to/sql-lora")
)
```

LoRA — это способ превратить общую модель в узкоспециализированного эксперта с минимальными затратами. QLoRA делает это доступным даже на обычных видеокартах.