Обсуждение участника:Imil Baltaniazov

Материал из MachineLearning.

Перейти к: навигация, поиск
Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Imil Baltaniazov 16:49, 10 июля 2026 (MSD)


Дообучение нейронных сетей (fine-tuning) — способ обучения модели, при котором в качестве начального приближения параметров берётся не случайная инициализация, а веса модели, уже предобученной на некоторой большой вспомогательной задаче, после чего эти веса дополнительно настраиваются (дообучаются) на данных целевой задачи. Дообучение — центральный приём трансферного обучения и на сегодняшний день стандартный способ адаптации крупных предобученных моделей — как в компьютерном зрении, так и в обработке естественного языка — к конкретным прикладным задачам.

Содержание

Введение

Идею дообучения проще всего пояснить на бытовом уровне: человек, уже умеющий играть на фортепиано, осваивает орган значительно быстрее, чем человек, никогда не сидевший за клавишным инструментом — общие навыки (координация рук, чтение нот, чувство ритма) переносятся, доучить нужно лишь специфику нового инструмента (педали, регистры). Ровно так же нейронная сеть, обученная на большом и разнообразном датасете, приобретает общие представления о структуре данных предметной области (в изображениях — границы, текстуры, части объектов; в текстах — синтаксис, семантика слов, мировые знания), которые затем достаточно лишь адаптировать под конкретную задачу, а не выучивать заново.

Формально дообучение задаётся так. Пусть \theta_0 — параметры модели, полученные в результате предобучения на вспомогательной задаче с большим датасетом D_{pre}. Дообучение находит

 \theta^* = \arg\min_{\theta} \frac{1}{n}\sum_{i=1}^n L(f_\theta(x_i), y_i), \qquad \text{инициализация: } \theta = \theta_0

на датасете целевой задачи D_{target} = \{(x_i,y_i)\}_{i=1}^n, который, как правило, на порядки меньше D_{pre}.

Дообучение стало стандартом по трём причинам. Во-первых, обучение крупной модели «с нуля» на каждую новую задачу требует огромных вычислительных ресурсов и датасетов сопоставимого объёма, которых для большинства прикладных задач просто нет. Во-вторых, эмпирически показано, что признаки, извлекаемые нижними и средними слоями предобученной сети, во многом универсальны и слабо зависят от конкретной целевой задачи (см. классическую работу Йосински и соавторов). В-третьих, появление больших моделей (больших языковых моделей, крупных сверточных сетей и трансформеров зрения), предобученных на веб-масштабных корпусах, сделало дообучение практически безальтернативным способом получить качественную модель под задачу с ограниченным бюджетом на данные и вычисления.

Постановка задачи

Типичный сценарий дообучения выглядит следующим образом.

  1. Берётся модель, предобученная на большом, обычно слабо- или самообучаемом датасете общего назначения: ImageNet (14 млн размеченных изображений) для моделей компьютерного зрения, Wikipedia и Common Crawl (сотни миллиардов токенов) для языковых моделей, пары «изображение — подпись» из веба для мультимодальных моделей.
  2. Задача предобучения (классификация на 1000 классов ImageNet, предсказание замаскированного токена, контрастное сопоставление изображения и текста) как правило не совпадает с целевой задачей практика, но заставляет модель выучить содержательные внутренние представления данных.
  3. У модели заменяется «голова» (последний слой или несколько слоёв), специфичная для предобучения, на новую голову, соответствующую целевой задаче (например, классификатор на нужное число классов, слой для регрессии, декодер для генерации).
  4. Модель дообучается на датасете целевой задачи, который может состоять из нескольких сотен — нескольких десятков тысяч примеров, что на порядки меньше объёма датасета предобучения.

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

Стратегии дообучения

По степени вовлечённости параметров предобученной модели в обновление принято выделять три стратегии.

Полное дообучение

При полном дообучении (full fine-tuning) обновляются все параметры модели, включая предобученные слои. Это даёт максимальную гибкость адаптации и, как правило, наилучшее итоговое качество при достаточном объёме данных целевой задачи, но сопряжено с наибольшим риском переобучения на малых датасетах и наибольшими вычислительными затратами — по памяти и по времени приходится хранить и обновлять градиенты по всем параметрам, а для по-настоящему больших моделей (десятки и сотни миллиардов параметров) это становится попросту недоступно на рядовом оборудовании.

import torch
from transformers import AutoModelForSequenceClassification
 
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
optimizer = torch.optim.AdamW(model.parameters(), lr=2e-5)
# все параметры модели, включая предобученные слои трансформера, обновляются

Дообучение только последних слоёв (feature extraction)

Противоположный по духу подход — заморозить все предобученные слои (использовать их как неизменный экстрактор признаков) и обучать только новую голову модели. Такой режим требует минимума вычислений и хорошо работает, когда целевая задача близка по природе данных к задаче предобучения, а датасет очень мал.

for param in model.base_model.parameters():
    param.requires_grad = False
 
for param in model.classifier.parameters():
    param.requires_grad = True
 
optimizer = torch.optim.AdamW(
    filter(lambda p: p.requires_grad, model.parameters()), lr=1e-3
)

Дообучение с заморозкой части слоёв

Промежуточный вариант — заморозить нижние слои (кодирующие наиболее общие, задаче-независимые признаки) и дообучать верхние слои вместе с новой головой. Часто применяется постепенная разморозка (gradual unfreezing, предложенная в ULMFiT): обучение начинается с замороженными всеми предобученными слоями, затем слои размораживаются постепенно, от верхних к нижним, на протяжении нескольких эпох, что снижает риск разрушения полезных предобученных представлений на ранних, наименее стабильных шагах обучения.

Выбор скорости обучения

Скорость обучения (learning rate) при дообучении, как правило, выбирается существенно меньше, чем при обучении с нуля — типичные значения лежат в диапазоне 10^{-5}10^{-4} против 10^{-3}10^{-2} для обучения с нуля. Причина в том, что предобученные веса уже находятся в содержательной области пространства параметров, и большой шаг градиентного спуска рискует «разрушить» выученные представления раньше, чем модель успеет их полезно адаптировать под новую задачу.

Для новой, случайно инициализированной головы модели, напротив, оправдана более высокая скорость обучения — её веса ещё не несут полезной информации, и их можно (и нужно) обучать быстрее. Этот принцип формализуется в виде дифференциальных скоростей обучения (discriminative learning rates, введены в работе Ховарда и Рудера, ULMFiT): каждому слою l назначается собственная скорость обучения, убывающая от верхних слоёв к нижним:

 \eta_l = \eta_L \cdot \xi^{\,L-l}

где L — номер последнего слоя, \eta_L — скорость обучения для последнего (нового) слоя, \xi < 1 — коэффициент затухания (в оригинальной работе \xi \approx 1/2.6).

optimizer = torch.optim.AdamW([
    {"params": model.encoder.layer[:6].parameters(),  "lr": 1e-5},
    {"params": model.encoder.layer[6:].parameters(),  "lr": 3e-5},
    {"params": model.classifier.parameters(),          "lr": 1e-3},
])

Дополнительно на первых шагах дообучения часто применяется разогрев (warm-up) скорости обучения — плавный линейный рост от нуля до целевого значения на протяжении первых 5–10 % шагов, — что снижает риск дестабилизации предобученных весов в самом начале обучения, когда статистика градиентов ещё нестабильна.

Регуляризация при дообучении

Так как датасет целевой задачи обычно значительно меньше датасета предобучения, риск переобучения при дообучении выше, а привычные для обучения с нуля значения гиперпараметров регуляризации, как правило, требуют пересмотра.

  • Ранняя остановка (early stopping) — обучение прерывается по достижении минимума ошибки на отложенной выборке; при дообучении переобучение может наступать уже после одной-двух эпох, поэтому контроль по валидации особенно важен.
  • Меньший вес регуляризации. Так как модель стартует из уже хорошо регуляризованной, содержательной точки пространства параметров, а не из случайной инициализации, типичные веса L_2-регуляризации (weight decay) при дообучении берут меньше, чем при обучении с нуля, чтобы не «стягивать» полезные предобученные веса к нулю.
  • Меньший размер батча. Малый датасет целевой задачи ограничивает разумный размер батча снизу и сверху одновременно: слишком большой батч на малом датасете даёт мало шагов оптимизации за эпоху и грубую оценку градиента по немногочисленным примерам; на практике для дообучения часто используют батчи меньшего размера, чем при предобучении, компенсируя это большим числом эпох или накоплением градиента (gradient accumulation).
  • Dropout и слой-specific регуляризация обычно сохраняются на уровне значений, использованных при предобучении, либо слегка увеличиваются, если целевой датасет заметно меньше.
  • Аугментация данных — дополнительный источник эффективной регуляризации при малом объёме целевых данных, подробно описанный в статье Аугментация данных.

Связь с объёмом данных

Выбор между дообучением и обучением с нуля, а также выбор конкретной стратегии дообучения (полное, частичное, feature extraction) существенно зависит от соотношения объёма целевого датасета и степени сходства целевой задачи с задачей предобучения.

  • Малый датасет, задача близка к предобучению (например, классификация нового набора классов естественных изображений). Оправдано дообучение только последних слоёв или дообучение с заморозкой большей части сети — риск переобучения при полном дообучении на малом датасете высок, а признаки нижних слоёв уже достаточно универсальны.
  • Малый датасет, задача далека от предобучения (например, дообучение модели, предобученной на естественных фотографиях, для задачи на рентгеновских снимках). Это наиболее сложный случай: заморозка нижних слоёв может помешать адаптации к специфике новых данных, но полное дообучение на малом датасете рискует переобучиться. На практике здесь часто выигрывают частичная заморозка с постепенной разморозкой, сильная аугментация и параметро-эффективные методы (см. ниже).
  • Большой датасет, задача близка к предобучению. Полное дообучение обычно даёт наилучший результат — данных достаточно, чтобы аккуратно адаптировать все параметры без переобучения.
  • Большой датасет, задача далека от предобучения. При достаточно большом объёме целевых данных выигрыш от предобучения снижается, а иногда обучение с нуля даёт сопоставимое или лучшее качество (см. обсуждение в работе Корнблита и соавторов о переносимости моделей ImageNet), хотя предобучение обычно всё равно ускоряет сходимость.

Общее эмпирическое правило: чем меньше целевой датасет и чем ближе он по природе данных к датасету предобучения, тем осторожнее (меньше обучаемых параметров, меньшая скорость обучения, сильнее регуляризация) должно быть дообучение.

Параметро-эффективные методы дообучения

Полное дообучение крупных моделей (сотни миллионов — сотни миллиардов параметров) требует хранения градиентов и состояний оптимизатора для каждого параметра, что для по-настоящему больших моделей становится вычислительно неподъёмным, а при необходимости хранить отдельную копию весов под каждую задачу — ещё и неподъёмным по памяти на диске. Параметро-эффективные методы дообучения (parameter-efficient fine-tuning, PEFT) решают эту проблему, замораживая почти все веса предобученной модели и добавляя небольшое число новых, обучаемых параметров.

Адаптеры (Adapters)

Метод, предложенный Хоулсби и соавторами, вставляет в каждый блок трансформера небольшие полносвязные модули-«бутылочные горлышки» (adapter modules), которые обучаются, тогда как исходные веса модели остаются замороженными:

 h \leftarrow h + f\bigl(h\, W_{down}\bigr) W_{up}

где W_{down} \in \mathbb{R}^{d \times r}, W_{up} \in \mathbb{R}^{r \times d}, r \ll d, f — нелинейность. Число обучаемых параметров пропорционально r и составляет обычно единицы процентов от размера исходной модели, при почти сопоставимом с полным дообучением качестве.

Префиксное обучение (Prefix-Tuning)

Ли и Лян предложили не изменять веса модели вовсе, а добавлять к последовательности небольшое число обучаемых «виртуальных токенов» (префикс), которые подаются на вход каждого слоя внимания трансформера в качестве дополнительных ключей и значений. Модель как таковая остаётся полностью замороженной, а под задачу обучается лишь сам префикс — это даёт наибольшую экономию памяти на хранение весов (одна копия базовой модели обслуживает множество задач с разными префиксами), но обычно уступает адаптерам и LoRA в качестве на сложных генеративных задачах.

LoRA (Low-Rank Adaptation)

LoRA (Ху и соавторы) исходит из наблюдения, что эффективное изменение весов при дообучении обладает низким рангом: вместо явного обновления матрицы весов W_0 целиком, LoRA представляет добавку в виде произведения двух малоранговых матриц:

 W = W_0 + \Delta W = W_0 + BA, \qquad B \in \mathbb{R}^{d\times r},\ A \in \mathbb{R}^{r\times k},\ r \ll \min(d,k)

Матрица W_0 остаётся замороженной, обучаются только A и B, число параметров которых на порядки меньше числа параметров W_0. После обучения матрицы A и B можно слить с W_0 (W_0 + BA), что не добавляет дополнительной задержки на этапе применения модели — в отличие от адаптеров, которые вносят небольшой, но ненулевой оверхед на инференсе. Это свойство сделало LoRA одним из самых распространённых способов дообучения больших языковых моделей на потребительском оборудовании.

from peft import LoraConfig, get_peft_model
 
config = LoraConfig(
    r=8,
    lora_alpha=16,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
    bias="none",
    task_type="CAUSAL_LM",
)
 
model = get_peft_model(base_model, config)
model.print_trainable_parameters()

Сравнение стратегий дообучения

Сравнение стратегий дообучения нейронных сетей
Стратегия Что обучается Доля обучаемых параметров Требования к данным Риск переобучения Типичное применение
Полное дообучение Все веса модели 100 % Умеренный — большой датасет Высокий на малых датасетах Достаточно большой целевой датасет, задача существенно отличается от предобучения
Дообучение последних слоёв (feature extraction) Только новая голова Доли процента Малый датасет достаточен Низкий Малый датасет, задача близка к предобучению
Дообучение с частичной заморозкой Верхние слои и голова От единиц до десятков процентов Небольшой — умеренный датасет Средний Промежуточный случай, постепенная адаптация
Параметро-эффективные методы (LoRA, адаптеры, prefix-tuning) Небольшой набор добавленных параметров Обычно менее 1 % Малый — умеренный датасет Низкий Дообучение очень крупных моделей при ограниченных вычислительных ресурсах, многозадачное обслуживание одной базовой модели

Примеры из практики

Дообучение BERT для задач NLP

Модель BERT, предобученная на задачах предсказания замаскированного токена и предсказания следующего предложения на текстах Wikipedia и BookCorpus, дообучается под конкретную задачу добавлением небольшой головы поверх векторного представления специального токена (классификация текста, определение сходства пары предложений) либо поверх представлений отдельных токенов (извлечение именованных сущностей, ответы на вопросы). Типичное дообучение BERT занимает 2–4 эпохи со скоростью обучения порядка 2\cdot 10^{-5}5\cdot 10^{-5}; более длительное обучение на небольших датасетах, как правило, приводит к переобучению.

Дообучение ResNet для классификации медицинских изображений

Сети семейства ResNet, предобученные на ImageNet, широко используются как основа для классификации медицинских изображений (рентгеновские снимки, гистологические срезы), несмотря на существенное различие статистики естественных фотографий и медицинских изображений. Типичная практика — заморозить нижние сверточные блоки (кодирующие универсальные примитивы вроде границ и текстур) и дообучать верхние блоки вместе с новой головой классификации, дополнительно применяя специфичную для медицинских изображений аугментацию и усиленный контроль по валидационной выборке ввиду типично небольшого объёма размеченных медицинских данных.

Дообучение CLIP для мультимодальных задач

CLIP, предобученный контрастным сопоставлением изображений и текстовых описаний на масштабном веб-корпусе пар «изображение — подпись», дообучается под специфические мультимодальные задачи (поиск изображений по тексту в узкой предметной области, классификация с нестандартным набором классов через текстовые запросы). Из-за масштаба модели и общей природы контрастной задачи предобучения для CLIP особенно часто применяют параметро-эффективные методы дообучения или дообучение исключительно линейного классификатора (linear probing) поверх замороженного визуального энкодера, что зачастую даёт качество, близкое к полному дообучению, при кратно меньших вычислительных затратах.

RLHF: дообучение с подкреплением из обратной связи человека

Особый случай дообучения — обучение с подкреплением из обратной связи человека (Reinforcement Learning from Human Feedback, RLHF), применяемое для приведения поведения больших языковых моделей в соответствие с предпочтениями людей после этапа предобучения и обычного дообучения с учителем (supervised fine-tuning, SFT). Метод, восходящий к работе Кристиано и соавторов и получивший широкую известность благодаря InstructGPT (Оуян и соавторы), состоит из трёх этапов.

  1. Supervised fine-tuning — обычное дообучение предобученной модели на датасете примеров «запрос — качественный ответ», размеченных людьми.
  2. Обучение модели вознаграждения (reward model) — на датасете пар ответов, ранжированных людьми по предпочтению, обучается отдельная модель, предсказывающая скалярную оценку качества ответа.
  3. Дообучение политики методом обучения с подкреплением (обычно PPO) — языковая модель дообучается так, чтобы максимизировать предсказанное моделью вознаграждения качество ответов, с дополнительным штрафом за отклонение от SFT-модели (обычно в виде KL-дивергенции), предотвращающим слишком резкий уход политики от исходного, лингвистически естественного распределения ответов.

RLHF отличается от рассмотренных выше стратегий не техникой обновления весов (это может быть как полное, так и параметро-эффективное дообучение), а природой обучающего сигнала: вместо фиксированной размеченной обучающей выборки используется сигнал, получаемый через обучаемую модель вознаграждения, что относит задачу к области обучения с подкреплением, а не классического обучения с учителем.

Ограничения и риски

  • Катастрофическое забывание (catastrophic forgetting) — при дообучении модель может утратить часть навыков, приобретённых на этапе предобучения или на предыдущих задачах, если новые данные существенно смещают распределение весов. Явление известно с конца 1980-х годов (Маккласки и Коэн) и остаётся актуальным для современных крупных моделей; частичные решения включают заморозку части слоёв, малую скорость обучения, регуляризацию весов относительно исходной точки (например, Elastic Weight Consolidation) и ограничение числа шагов дообучения.
 L(\theta) = L_{new}(\theta) + \frac{\lambda}{2}\sum_i F_i\,(\theta_i - \theta_{0,i})^2
  • Переобучение на малом датасете. Чем меньше целевой датасет, тем выше риск, что модель «запомнит» его специфические особенности вместо того, чтобы обобщить их; см. раздел «Регуляризация при дообучении».
  • Несоответствие распределений (distribution shift) между данными предобучения и целевой задачи снижает пользу от предобучения и в крайних случаях делает его бесполезным или даже вредным (отрицательный перенос, negative transfer).
  • Вычислительные и инфраструктурные затраты. Полное дообучение крупных моделей требует значительных объёмов видеопамяти для хранения градиентов и состояний оптимизатора; хранение отдельной полной копии весов под каждую дообученную задачу дорого масштабируется при большом числе задач — именно эта проблема мотивирует параметро-эффективные методы.
  • Чувствительность к выбору гиперпараметров. Качество дообученной модели существенно зависит от скорости обучения, числа эпох и стратегии заморозки слоёв; в отличие от обучения с нуля, здесь неудачный выбор гиперпараметров может не просто замедлить сходимость, а необратимо испортить полезные предобученные представления.

См. также

Литература

  1. Yosinski J., Clune J., Bengio Y., Lipson H. How Transferable Are Features in Deep Neural Networks? // Advances in Neural Information Processing Systems (NeurIPS). — 2014.
  2. Howard J., Ruder S. Universal Language Model Fine-tuning for Text Classification // Proceedings of ACL. — 2018.
  3. Devlin J., Chang M.-W., Lee K., Toutanova K. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding // Proceedings of NAACL-HLT. — 2019.
  4. Radford A., Kim J. W., Hallacy C. et al. Learning Transferable Visual Models From Natural Language Supervision // Proceedings of ICML. — 2021.
  5. Houlsby N., Giurgiu A., Jastrzebski S. et al. Parameter-Efficient Transfer Learning for NLP // Proceedings of ICML. — 2019.
  6. Li X. L., Liang P. Prefix-Tuning: Optimizing Continuous Prompts for Generation // Proceedings of ACL-IJCNLP. — 2021.
  7. Hu E. J., Shen Y., Wallis P. et al. LoRA: Low-Rank Adaptation of Large Language Models // International Conference on Learning Representations (ICLR). — 2022.
  8. Christiano P., Leike J., Brown T. et al. Deep Reinforcement Learning from Human Preferences // Advances in Neural Information Processing Systems (NeurIPS). — 2017.
  9. Ouyang L., Wu J., Jiang X. et al. Training Language Models to Follow Instructions with Human Feedback // Advances in Neural Information Processing Systems (NeurIPS). — 2022.
  10. McCloskey M., Cohen N. J. Catastrophic Interference in Connectionist Networks: The Sequential Learning Problem // Psychology of Learning and Motivation. — 1989. — Vol. 24.
  11. Kirkpatrick J., Pascanu R., Rabinowitz N. et al. Overcoming Catastrophic Forgetting in Neural Networks // Proceedings of the National Academy of Sciences (PNAS). — 2017.
  12. Kornblith S., Shlens J., Le Q. V. Do Better ImageNet Models Transfer Better? // Proceedings of CVPR. — 2019.
  13. Raffel C., Shazeer N., Roberts A. et al. Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer // Journal of Machine Learning Research (JMLR). — 2020.
  14. Goodfellow I., Bengio Y., Courville A. Deep Learning. — MIT Press, 2016.
Личные инструменты