Дообучение (fine-tuning) — один из самых эффективных способов адаптировать LLM под конкретную задачу. Это продолжение обучения уже предобученной модели на новых, специализированных данных. Можно обновлять как всю модель, так и отдельные слои.
Главное преимущество тонкой настройки — эффективность. Вместо того чтобы обучать модель с нуля (что очень затратно), проще и дешевле дообучить уже существующую модель, которая выучила общие языковые паттерны на больших датасетах. Fine-tuning позволяет «заточить» эти широкие возможности под вашу задачу.
Например, дообучение может значительно улучшить:
- Экспертизу в домене: адаптация модели для юридических, медицинских или программных задач.
- Следование инструкциям: чтобы модель придерживалась нужного формата, стиля или тона.
- Безопасность и соответствие требованиям: усиление контроля над тем, как модель отвечает на чувствительные или рискованные запросы.
Популярные фреймворки для дообучения#
Дообучение LLM не обязательно означает, что нужно строить всё с нуля. Существует несколько open-source фреймворков, которые упрощают процесс.
Эти инструменты позволяют обучать модели с открытыми весами на своих датасетах и применять современные оптимизации без сложного кода.
Многие из них ориентированы на эффективность: уменьшают потребление памяти и ускоряют обучение даже на ограниченном железе.
Axolotl#
Axolotl — удобный фреймворк для дообучения LLM. Поддерживает полное дообучение, instruction tuning, LoRA/QLoRA и alignment. Axolotl скрывает внутреннюю сложность и позволяет быстро начать работу.
Он построен поверх Hugging Face Transformers и использует YAML-конфигурации. Вы описываете датасеты, модель и стратегию обучения в одном файле — остальное делает Axolotl.
Ключевые возможности:
- Поддержка популярных моделей: Llama, Pythia, Falcon, MPT.
- Гибкие варианты обучения: полное дообучение, LoRA, QLoRA, ReLoRA, GPTQ.
- Совместимость с xFormers, FlashAttention, ROPE scaling, Liger kernel, sample packing.
- Масштабирование от одной GPU до мульти-GPU (FSDP, DeepSpeed).
- Лёгкий запуск локально (Docker) или в облаке.
Axolotl подходит тем, кто хочет сосредоточиться на данных и задачах, а не на деталях реализации. С разумными настройками по умолчанию, сильным сообществом и интеграциями — это частый выбор для практического дообучения.
Unsloth#
Unsloth — фреймворк для ускорения и упрощения дообучения LLM, особенно на ограниченном железе (например, бесплатные GPU Google Colab).
Unsloth глубоко оптимизирован на уровне ядра. Использует кастомную реализацию внимания на Triton, что ускоряет обучение в 2 раза и снижает потребление памяти до 80%.
Команда Unsloth сотрудничала с разработчиками моделей Llama 4, Mistral, Qwen, Gemma, Phi, внося улучшения для устойчивости и точности.
Ключевые возможности:
- Поддержка моделей Llama, Mistral, Phi, Gemma и др.
- Поддержка LoRA, QLoRA, полного дообучения, RL (DPO, ORPO).
- Гибкая настройка: шаблоны чата, форматы датасетов, конфиги обучения.
- Совместимость с Ollama, llama.cpp, vLLM.
- Запуск на Google Colab, Kaggle, старых GPU.
Если вы дообучаете модель в условиях ограниченных ресурсов — Unsloth отличный выбор.
Torchtune#
Torchtune — библиотека для дообучения LLM на PyTorch. Для тех, кто хочет полный контроль над pipeline без лишних абстракций.
Torchtune следует принципам PyTorch: простота, минимум скрытой логики, акцент на прозрачность кода.
- нативные компоненты PyTorch
- композиция вместо наследования
- прозрачная логика обучения
- тестируемость и корректность
Ключевые возможности:
- Модульные реализации LLM на чистом PyTorch.
- Рецепты для полного дообучения, LoRA, QLoRA.
- Простая конфигурация через YAML.
- Совместимость с model zoo (конверсия чекпойнтов).
Torchtune подойдёт тем, кто предпочитает работать напрямую с PyTorch и настраивать каждый аспект обучения.
LLaMA Factory#
LLaMA Factory — open-source тулкит для дообучения, ориентированный на простоту и эффективность. Поддерживает более 100 LLM, есть CLI и Web UI для работы без кода.
В отличие от многих инструментов для экспертов, LLaMA Factory дружелюбна к новичкам: через веб-интерфейс можно выбрать модель, загрузить датасет, задать параметры и запустить обучение без кода.
Но это не только для новичков: под капотом поддерживается широкий набор методов настройки.
Ключевые возможности:
- Методы дообучения: supervised SFT (в т.ч. мультимодальные), reward modeling, RL (PPO, DPO, ORPO, KTO).
- Квантизация и адаптеры: 16-битное дообучение, freeze-tuning, LoRA, QLoRA (2–8 бит) через GPTQ, AWQ, HQQ, AQLM.
- Продвинутые оптимизации: GaLore, DoRA, LongLoRA, LoftQ, LLaMA Pro, Mixture-of-Depths и др.
Вместо самостоятельного дообучения часто можно начать с уже готовой fine-tuned или instruction-tuned модели на Hugging Face. Там много сообществных и официальных моделей, готовых к использованию. Также доступны базовые модели и чекпойнты, если нужен полный контроль. На практике команды часто изучают оба варианта, прежде чем выбрать — использовать готовую модель или инвестировать в кастомное дообучение.
Часто задаваемые вопросы (FAQ)#
Чем дообучение отличается от инференса?#
Дообучение — это форма обучения: вы обновляете часть весов модели на своём датасете. Инференс веса не меняет — только запускает модель для генерации вывода.
Сравнение:
| Пункт | Инференс | Дообучение |
|---|---|---|
| Цель | Генерация ответов (текст, изображения и т.д.) | Адаптация модели под задачу или домен |
| Обновление весов | Нет, веса неизменны | Да, обновляются некоторые или все веса |
| Данные | Только входной промпт | Датасет (часто размеченный) под вашу задачу |
| Вычисления | Низкие (один прямой проход) | Высокие (несколько эпох обучения) |
| Время | Миллисекунды — секунды | Минуты — дни (зависит от размера модели и данных) |
| Изменения модели | Модель прежняя | Появляется новая версия/чекпойнт |
| Примеры | Вопрос LLM | Llama 3, дообученная на внутренних документах или медицине |
Чем дообучение отличается от prompt engineering?#
Prompt engineering — это изменение формулировки запроса для лучшего ответа. Это быстро, дёшево и не требует обучения, но есть ограничения: длинные подсказки неудобны, поведение модели может быть нестабильным.
Дообучение реально меняет модель: вы показываете примеры «как надо», и она учится следовать этому шаблону. Это надёжнее для долгосрочного использования, если нужен стабильный тон, экспертиза или строгий формат.
Вкратце: prompt engineering хорош для экспериментов, а дообучение даёт стабильное качество в масштабе.
Сколько данных нужно для дообучения LLM?#
Зависит от задачи. Часто достаточно нескольких тысяч качественных примеров. Для сложных доменов — десятки или сотни тысяч. Качество важнее количества.
Нужны ли мощные GPU для дообучения LLM?#
Не всегда. Фреймворки вроде Unsloth, Axolotl, LLaMA Factory поддерживают эффективные методы (LoRA, QLoRA), позволяющие дообучать большие модели на одной потребительской GPU или даже в Google Colab. Полное дообучение требует более мощного железа.
