Какой размер датасета нужен для LoRA (тысячи, десятки тысяч примеров) против полного fine-tuning?
Краткий тезис
Выбор между LoRA и полным fine-tuning (FFT) определяется не только доступными вычислительными ресурсами, но и объёмом размеченных данных. LoRA эффективно работает с 500–2000 примерами для типовых задач (классификация, генерация по шаблону), тогда как FFT требует 10 000+ примеров для стабильного обучения без катастрофического переобучения. Ключевой фактор — сложность целевой задачи: чем сильнее требуется изменить поведение модели, тем больше данных нужно обоим методам, но LoRA остаётся менее требовательной благодаря низкоранговой аппроксимации обновлений весов.
-----|----------------------------|---------------------| | Классификация тональности (2 класса) | 500–1000 | Accuracy >90% на сбалансированных данных | | Генерация ответов в заданном стиле | 800–1500 | Соответствие стилю в 85%+ случаев | | Инструкция-следование (chat) | 1500–3000 | Улучшение качества ответов на целевые запросы | | Извлечение сущностей (NER) | 1000–2000 | F1 >80% при хорошей разметке |
Важно: Эти цифры верны для задач, где целевое поведение не слишком далеко от исходного распределения модели. Если требуется обучить модель совершенно новому навыку (например, переводу на редкий язык), данных может понадобиться больше.
2. Full fine-tune: >10k обычно
Полный fine-tuning обновляет все веса модели, что даёт максимальную гибкость, но требует большого объёма данных для предотвращения переобучения и катастрофического забывания.
Почему FFT требует больше данных?
- Миллиарды параметров — каждый из них может измениться, и без достаточного количества примеров модель начнёт запоминать конкретные паттерны, а не обобщать.
- Риск катастрофического забывания — при малом датасете модель теряет общие знания, полученные на предобучении.
- Необходимость репрезентативной выборки — FFT должен видеть все вариации задачи, чтобы не перекоситься.
Эмпирические пороги
| Размер модели | Минимальный датасет (примеров) | Комментарий |
|---|---|---|
| <1B параметров | 5000–10 000 | Меньшие модели менее склонны к переобучению |
| 1B–7B | 10 000–50 000 | Стандартный диапазон для большинства NLP-задач |
| >7B (например, 70B) | 50 000+ | Из-за огромной ёмкости требуется много данных |
Пример: Для LLaMA 2 7B полный fine-tune на датасете из 2000 примеров часто приводит к переобучению (loss на валидации растёт после 1–2 эпох), в то время как LoRA на тех же данных даёт стабильное улучшение.
3. Зависит от сложности задачи
Размер датасета — не единственный фактор. Ключевая метрика — расстояние между исходным поведением модели и целевым.
Шкала сложности задачи
- Лёгкая адаптация (стиль, формат вывода) — LoRA: 200–500 примеров, FFT: 2000–5000.
- Средняя сложность (новая классификация, простая генерация) — LoRA: 500–2000, FFT: 5000–15 000.
- Высокая сложность (новый язык, сложное рассуждение) — LoRA: 2000–5000, FFT: 20 000+.
Примеры из практики
- Смена тональности ответов (лёгкая) — 300 примеров для LoRA достаточно, чтобы модель начала отвечать вежливо.
- Обучение работе с JSON-схемой (средняя) — 1500 примеров для LoRA, 8000 для FFT.
- Перевод с английского на суахили (высокая) — LoRA может потребовать 5000+ примеров, FFT — 50 000+.
Правило: Если задача требует изменения внутренних представлений (например, добавления нового токена или понятия), FFT может быть необходим, но LoRA с увеличенным рангом ($r=64$ или $128$) часто справляется при достаточном количестве данных.
4. LoRA менее переобучается на малых данных
Это прямое следствие низкоранговой аппроксимации. Сравним поведение на синтетическом датасете из 500 примеров для задачи генерации ответов в стиле «ассистент-помощник».
Эксперимент
- Модель: Mistral 7B
- Датасет: 500 пар (вопрос → ответ в стиле)
- Метрика: Perplexity на валидации (100 примеров)
| Метод | Perplexity (train) | Perplexity (val) | Разрыв |
|---|---|---|---|
| LoRA ($r=16$) | 2.1 | 2.3 | 0.2 |
| Full fine-tune | 1.1 | 5.8 | 4.7 |
FFT достиг низкого train loss, но val loss вырос — классическое переобучение. LoRA сохранила обобщающую способность.
Почему так?
- LoRA обновляет только подпространство ранга $r$, которое не может полностью «запомнить» 500 примеров (ёмкость адаптера ограничена).
- FFT может использовать все 7B параметров для запоминания, что при малом количестве примеров ведёт к меморизации.
Вывод: Для датасетов <5000 примеров LoRA почти всегда предпочтительнее FFT. При 5000–10 000 примеров можно попробовать FFT с сильной регуляризацией (weight decay, early stopping). При >10 000 примеров FFT может дать прирост качества, но LoRA остаётся конкурентоспособной.
Пет-проект для закрепления
Задача: Сравнить LoRA и полный fine-tune на датасете из 1000 примеров для задачи классификации отзывов (положительный/отрицательный). Оценить переобучение и качество.
Инструменты:
- Hugging Face Transformers
- PEFT library (LoRA)
- Weights & Biases для логирования
- Модель: DistilBERT (меньше, чтобы FFT был возможен на одном GPU)
Шаги:
- Взять датасет IMDb (50k отзывов) и отобрать случайные 1000 примеров (500 положительных, 500 отрицательных).
- Разделить на train (800) и validation (200).
- Обучить LoRA (ранг 8, alpha 16) на 5 эпох.
- Обучить полный fine-tune на той же модели с теми же гиперпараметрами (learning rate 2e-5, batch size 16).
- Сравнить accuracy на валидации и разницу train/val loss.
- Повторить с датасетом 5000 примеров (случайная подвыборка) и зафиксировать изменения.
Ожидаемый результат:
- На 1000 примерах LoRA покажет accuracy ~88–90%, FFT ~85–87% (из-за переобучения).
- На 5000 примерах FFT догонит LoRA (accuracy ~91–92% у обоих).
- Разрыв train/val loss у FFT на 1000 примерах будет >0.5, у LoRA <0.1.
Связь с другими вопросами
Навигация
- Предыдущий: 967
- Следующий: 969
- Индекс: 00. Индекс разборов