Aivaro
  • Оглавление
  • Вопросы
  • Практика
  • Вики
  • Материалы сообщества
  • Тесты
  • Поиск
✈Telegram @ai_varo
RUEN中文
…
Оглавление/Вопросы/#933

Что такое Teacher Forcing при обучении декодера? В чем проблема Exposure Bias?

Краткий тезис

Teacher Forcing — техника обучения Seq2Seq-моделей, при которой на каждом шаге декодирования в качестве входного токена подаётся истинный (ground truth) токен из обучающей последовательности, а не собственное предсказание модели. Это ускоряет сходимость, но порождает Exposure Bias: на инференсе модель сталкивается с собственными ошибками, которых не видела во время тренировки.

2. Быстрая сходимость

Teacher Forcing обеспечивает несколько ключевых преимуществ:

ПреимуществоОбъяснение
Стабильность градиентовИстинные токены не содержат шума от ошибок модели, градиенты гладкие
ПараллелизацияВсе шаги декодирования можно вычислять одновременно (Parallel Decoding), так как входные токены известны заранее
Быстрая сходимостьМодель учится на "идеальных" контекстах, что снижает количество итераций обучения
Предотвращение дрейфаОшибки на ранних шагах не накапливаются, так как модель всегда "исправляется" истинными токенами

На практике Teacher Forcing позволяет обучить базовую Seq2Seq-модель за 1-2 эпохи на небольших датасетах (например, IWSLT для перевода).


3. Exposure Bias: на тесте модель получает свои ошибки

Проблема: во время инференса модель генерирует последовательность авторегрессивно, используя собственные предсказания как вход для следующего шага. Если на шаге t модель ошиблась (выдала неверный токен), то на шаге t+1 она получит "мусорный" контекст, что может привести к каскадному уходу от правильной последовательности.

Формальное определение:

  • Тренировка: ( p(y_t \mid y_{<t}^{[text](/wiki/text){true}}, x) ) — модель учится на истинных префиксах.
  • Инференс: ( p(y_t \mid \hat{y}_{<t}, x) ) — модель использует свои предсказания ( \hat{y} ).

Разрыв между распределениями ( p_{[text](/wiki/text){train}} ) и ( p_{[text](/wiki/text){infer}} ) называется Exposure Bias. Чем длиннее последовательность, тем сильнее эффект: ошибки накапливаются экспоненциально.

Пример:

  • При переводе "I am a student" → "Я студент".
  • На шаге 1 модель ошибочно предсказывает "Я есть" вместо "Я".
  • На шаге 2 модель получает "есть" как контекст и генерирует "студент есть" — полный бред.

4. Решения: Scheduled Sampling, RL

4.1 Scheduled Sampling

Scheduled Sampling — гибридный подход, где во время обучения с вероятностью ( [epsilon](/wiki/Epsilon) ) на вход подаётся собственное предсказание модели, а с вероятностью ( 1-[epsilon](/wiki/Epsilon) ) — истинный токен. Вероятность ( [epsilon](/wiki/Epsilon) ) растёт по эпохам (например, линейно от 0 до 0.5).

# Scheduled Sampling
epsilon = min(1.0, epoch / total_epochs * 0.5)
for t in range(1, max_len):
    if random.random() < epsilon:
        decoder_input = model_prediction[t-1]  # своё предсказание
    else:
        decoder_input = true_tokens[t-1]
    logits = decoder(decoder_input, hidden_state)
    loss += cross_entropy(logits, true_tokens[t])

Плюсы: плавно адаптирует модель к собственным ошибкам. Минусы: требует настройки расписания ( [epsilon](/wiki/Epsilon) ), может ухудшить сходимость на ранних этапах.

4.2 Обучение с подкреплением (RL)

RL-подходы (например, REINFORCE, Policy Gradient) рассматривают генерацию как последовательность действий. Награда — метрика качества (BLEU, ROUGE). Модель учится максимизировать ожидаемую награду, что автоматически учитывает Exposure Bias.

Проблемы RL:

  • Высокая дисперсия градиентов.
  • Необходимость в baseline (например, Self-Critical Sequence Training).
  • Вычислительная стоимость.

4.3 Beam Search и его модификации

Хотя Beam Search не решает Exposure Bias напрямую, он снижает его влияние, сохраняя несколько гипотез. Однако при длинных последовательностях beam search может порождать "безопасные" короткие переводы (Length Bias).


5. Пет-проект для закрепления

Задача: Реализовать простой Seq2Seq-трансформер для перевода с английского на русский (датасет Tatoeba) и сравнить Teacher Forcing vs Scheduled Sampling.

Инструменты:

  • Python, PyTorch или JAX
  • Hugging Face Datasets для загрузки Tatoeba
  • SacreBLEU для оценки

Шаги:

  1. Загрузите 10k пар предложений, токенизируйте через BPE (YouTokenToMe).
  2. Реализуйте Transformer Decoder с 2 слоями, d_model=128.
  3. Обучите с Teacher Forcing (5 эпох, lr=1e-3).
  4. Обучите с Scheduled Sampling (epsilon от 0 до 0.4 за 5 эпох).
  5. На тестовой выборке (1k пар) сравните BLEU и визуально проверьте 10 случайных примеров.

Ожидаемый результат:

  • Teacher Forcing: BLEU ~15-20, но на длинных предложениях (>10 токенов) качество падает.
  • Scheduled Sampling: BLEU ~18-25, более стабильные результаты на длинных последовательностях.
  • Вы увидите, что модель с Teacher Forcing генерирует "обрывочные" переводы на тесте, а с Scheduled Sampling — более связные.

Связь с другими вопросами

ВопросТема
931Архитектура Seq2Seq и механизм внимания
932Проблема vanishing gradient в RNN-декодерах
934Beam Search и его модификации

Навигация

  • Предыдущий: 932
  • Следующий: 934
  • Индекс: 00. Индекс разборов