Перейти к основному содержимому
  1. Теория на русском языке/
  2. Начало работы/

Дообучение LLM (fine-tuning)

·908 слов·5 минут
Оглавление

Дообучение (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)
#

Чем дообучение отличается от инференса?
#

Дообучение — это форма обучения: вы обновляете часть весов модели на своём датасете. Инференс веса не меняет — только запускает модель для генерации вывода.

Сравнение:

ПунктИнференсДообучение
ЦельГенерация ответов (текст, изображения и т.д.)Адаптация модели под задачу или домен
Обновление весовНет, веса неизменныДа, обновляются некоторые или все веса
ДанныеТолько входной промптДатасет (часто размеченный) под вашу задачу
ВычисленияНизкие (один прямой проход)Высокие (несколько эпох обучения)
ВремяМиллисекунды — секундыМинуты — дни (зависит от размера модели и данных)
Изменения моделиМодель прежняяПоявляется новая версия/чекпойнт
ПримерыВопрос LLMLlama 3, дообученная на внутренних документах или медицине

Чем дообучение отличается от prompt engineering?
#

Prompt engineering — это изменение формулировки запроса для лучшего ответа. Это быстро, дёшево и не требует обучения, но есть ограничения: длинные подсказки неудобны, поведение модели может быть нестабильным.

Дообучение реально меняет модель: вы показываете примеры «как надо», и она учится следовать этому шаблону. Это надёжнее для долгосрочного использования, если нужен стабильный тон, экспертиза или строгий формат.

Вкратце: prompt engineering хорош для экспериментов, а дообучение даёт стабильное качество в масштабе.

Сколько данных нужно для дообучения LLM?
#

Зависит от задачи. Часто достаточно нескольких тысяч качественных примеров. Для сложных доменов — десятки или сотни тысяч. Качество важнее количества.

Нужны ли мощные GPU для дообучения LLM?
#

Не всегда. Фреймворки вроде Unsloth, Axolotl, LLaMA Factory поддерживают эффективные методы (LoRA, QLoRA), позволяющие дообучать большие модели на одной потребительской GPU или даже в Google Colab. Полное дообучение требует более мощного железа.