# LoRA-файнтюн на одной видеокарте: пошаговый гайд

> AI Release · @ai_release1 · https://ai-release.net/guides/lora-fayntyun-na-odnoy-videokarte.html

LoRA-файнтюн — это дообучение нейросети, при котором исходные веса модели не пересчитываются, а рядом с ними добавляются маленькие обучаемые матрицы. Такой подход сильно экономит память, поэтому его можно запускать на одной видеокарте. Гайд подходит для владельцев потребительских видеокарт и для малых языковых моделей (SLM — модели размером от нескольких миллионов до 10 млрд параметров). В подборке канала это Qwen3.5-0.8B, семейство Gemma (2–9B) и Phi-4 14B от Microsoft. Если вы ещё не запускали модель локально, сначала прочитайте [гайд по локальному запуску ИИ-моделей](https://ai-release.net/guides/kak-zapustit-ii-model-lokalno-na-svoem-kompyutere-gayd.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.net/guides/img/lora-fayntyun-na-odnoy-videokarte-ru-1.jpg)

- [ ] Видеокарта с достаточным объёмом памяти. Для SLM до 10 млрд параметров хватает потребительского железа.
- [ ] Установленное окружение Python и базовые навыки работы с терминалом.
- [ ] Датасет: текстовый файл с парами «вход — ожидаемый ответ».
- [ ] Интернет для скачивания модели.
- [ ] Понимание, какую узкую задачу вы решаете: LoRA не заменяет большую LLM, а дообучает SLM под конкретную функцию.

## Пошаговая инструкция
![Иллюстрация к разделу «Пошаговая инструкция»](https://ai-release.net/guides/img/lora-fayntyun-na-odnoy-videokarte-ru-2.jpg)

1. Выберите базовую модель. Чем меньше модель, тем меньше памяти нужно и тем быстрее идёт обучение. Для узкой задачи классификации подойдёт Qwen3.5-0.8B. Для генерации текста — Gemma 2B или 9B.  
   **Ожидаемый результат:** вы знаете название модели и её размер.

2. Подготовьте данные. Создайте два файла: `train.jsonl` и `val.jsonl`. Каждая строка — одна пара «вход-выход».  
   **Пример:**  
   ```json
   {"input": "Клиент хочет отменить заказ", "output": "Оформите возврат"}
   ```  
   **Ожидаемый результат:** у вас есть тренировочный и контрольный наборы в одинаковом формате. LoRA обучается не на сыром тексте, а на парах «запрос-ответ», поэтому от формата данных зависит качество.

3. Установите фреймворк для дообучения. В посте канала конкретные библиотеки не названы, поэтому выбирайте любую, которая умеет работать с LoRA-адаптерами и с вашей моделью. Обычно это делается через менеджер пакетов Python.  
   **Пример:**  
   ```bash
   python -m venv lora-env
   source lora-env/bin/activate
   ```  
   **Ожидаемый результат:** появилось изолированное окружение, в котором можно устанавливать пакеты.

4. Задайте LoRA-параметры. Главный параметр — ранг (rank): размер обучаемых матриц. Чем меньше ранг, тем меньше памяти нужно, но ниже способность модели запоминать данные. Начните с маленького ранга и увеличивайте, если качество не устроит. Масштаб (alpha) обычно берут в два раза больше ранга.  
   **Ожидаемый результат:** вы записали значения rank и alpha для запуска.

5. Запустите обучение. Команда зависит от выбранного фреймворка, но логика одинаковая: указать базовую модель, файлы данных и LoRA-параметры.  
   **Пример команды (имена флагов могут отличаться):**  
   ```bash
   python finetune_lora.py \
     --base_model Qwen3.5-0.8B \
     --rank 4 \
     --alpha 8 \
     --train_data train.jsonl \
     --val_data val.jsonl
   ```  
   **Ожидаемый результат:** в консоли появляется лог обучения, а значение потерь (loss) постепенно уменьшается. Это значит, что модель адаптируется к данным.

6. Сохраните LoRA-адаптер. После обучения сохраняется не вся модель, а только маленькие матрицы адаптера.  
   **Ожидаемый результат:** появился файл или папка, которую можно подключать к базовой модели при запуске.

7. Протестируйте модель на `val.jsonl`. Подайте несколько примеров и сравните ответы с ожидаемыми. Если качество низкое, вернитесь к шагу 4 и измените параметры. Как правильно оценивать качество нейросетей, смотрите в [гайде по QA для ML](https://ai-release.net/guides/kak-testirovat-i-otsenivat-kachestvo-ii-modeley-gayd-po.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## Возможные проблемы и решения

1. **Не хватает памяти видеокарты.**  
   Симптом: обучение падает с ошибкой вида «out of memory» или «недостаточно памяти».  
   Решение: возьмите модель меньше, например Qwen3.5-0.8B вместо Gemma-9B. Уменьшите ранг LoRA и размер батча — количество примеров, которые обрабатываются за один шаг.

2. **Потери не снижаются.**  
   Симптом: значение loss в логе стоит на месте или растёт.  
   Решение: проверьте, что в `train.jsonl` правильные пары «input-output». Уменьшите скорость обучения или увеличьте число проходов по данным. SLM плохо обучается на грязных данных, поэтому сначала исправьте датасет.

3. **Модель переобучилась.**  
   Симптом: на тренировочных примерах ответы идеальные, а на новых — случайные или повторяют тренировочные.  
   Решение: следите за метриками на `val.jsonl`, добавьте dropout в LoRA-слои и останавливайте обучение раньше. Переобучение — признак того, что модель запомнила данные, а не обобщила задачу.

## FAQ

**Что такое LoRA?**  
LoRA (Low-Rank Adaptation) — техника дообучения, при которой исходные веса модели замораживаются, а рядом добавляются маленькие обучаемые матрицы. Это сокращает объём вычислений и позволяет работать на одной видеокарте.

**Сколько памяти нужно для LoRA-файнтюна?**  
Точный объём зависит от модели. По данным канала, SLM от нескольких миллионов до 10 млрд параметров запускаются на потребительском железе. Для Phi-4 14B понадобится видеокарта с большим объёмом памяти.

**Какие модели можно дообучать таким способом?**  
Из подборки канала: Qwen3.5-0.8B, семейство Gemma (2–9B), Phi-4 14B. Gemini Nano-1 (1.8B) и Nano-2 (3.25B) тоже относятся к SLM, но их доступность для локального дообучения уточняйте в документации.

**Чем LoRA отличается от обычного файнтюна?**  
Обычный файнтюн обновляет все веса модели — это требует много памяти. LoRA обучает только маленькие матрицы, поэтому на одной видеокарте можно адаптировать модель до 10 млрд параметров.

**С какой модели начать новичку?**  
Возьмите Qwen3.5-0.8B. Это самая маленькая модель из списка, она быстро скачивается и обучается. Когда разберётесь в процессе, переходите на Gemma 9B или Phi-4 14B.
