Найти в Дзене
Цифровая Переплавка

🧬 Когда BERT стал диффузионной моделью: новое дыхание старого трансформера

Оглавление

Казалось бы, эпоха BERT — уже в прошлом. Время принадлежит гигантам вроде GPT-4, Gemini и Claude, которые умеют генерировать тексты, рассуждать и даже писать код. Но исследователь Нэйтан Барри показал, что старый добрый RoBERTa может… стать генеративной моделью — без единого изменения в архитектуре.

Да, вы не ослышались: BERT — это просто один шаг текстовой диффузии.

🌫️ От маскировки к диффузии

Классическая BERT-парадигма строится на задаче Masked Language Modeling (MLM): часть токенов заменяется на <MASK>, модель должна восстановить их. Это обучает её понимать контекст во всех направлениях.

Но Барри задался вопросом: а что, если маскировать не одну фиксированную долю токенов, а случайную — от 0 % до 100 % — и делать это поэтапно?

📉 Тогда процесс «маскирования → предсказания → ремаскирования» превращается в дискретную диффузию — аналог генерации изображений в Stable Diffusion, только для текста.

Получается цепочка шагов:

🌀 Шаг 1: весь текст замаскирован — чистый шум (<MASK>).
💡
Шаг 5: модель начинает угадывать смысловые куски.
Шаг 10: весь текст восстановлен — полное «денойзинг-заклинание».

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

🧩 Минимальный код — максимум инсайта

Эксперимент Барри — это пример гениальности в простоте. Он не трогал слои трансформера, не менял attention-механику, не внедрял decoder. Всё держится на кастомном data_collator в Hugging Face, который случайно выбирает процент маскировки при каждой итерации.

🧠 Главная идея:

  • первые 16 токенов всегда сохраняются (контекст или «промпт»),
  • остальные — частично маскируются,
  • RoBERTa учится постепенно «додумывать» текст при разных уровнях шума.

Пример кода из статьи:

mask_prob = random.choice([1.0, 0.9, 0.8, ..., 0.1])
maskable = batch.input_ids[:, PREFIX_LEN:]
mask = torch.rand(maskable.shape) < mask_prob
batch.input_ids[:, PREFIX_LEN:][mask] = tokenizer.mask_token_id

⚙️ Для генерации:

  • создаётся последовательность длиной 256 токенов,
  • первые 16 — это подсказка, остальные <MASK>,
  • модель проходит 10 циклов, на каждом шаге предсказывая часть токенов.

🕒 Время генерации — около 13 секунд против 9 секунд у GPT-2, но результат удивительно связный:

“Following their victory in the French and Indian War, Britain began to assert greater…”
— и дальше вполне осмысленный исторический фрагмент.

🔬 Почему это важно

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

🧩 BERT = один шаг диффузии
🧩 GPT = итеративное предсказание токенов
🧩 DiffusionLM = пошаговое восстановление смысла из шума

По сути, все они разные приближения одной и той же функции — аппроксимации распределения языка.

⚡ Технические детали

💾 Модель: roberta-base
📚
Датасет: WikiText-2
🧮
Длина блока: 256 токенов (из них 16 — контекст)
💻
Аппарат: Nvidia H200
Дообучение: 30 минут
📈
Результат: осмысленный текст, но уступает GPT-2 по когерентности и скорости

💭 Моё мнение

Меня особенно поразило, что никаких новых архитектур не понадобилось. Только изменённый collator — и классический BERT превратился в генератор текста. Это как если бы кто-то показал, что калькулятор умеет писать музыку, если нажимать кнопки с нужной частотой.

Такой подход открывает интересные перспективы:
💬 генерация с контролем семантической плотности,
🧠 гибриды типа “BERT-Diffusion-GPT”,
⚗️ и, возможно,
новый класс генеративных моделей без декодеров — где весь текст рождается «одновременно» из смысла, а не токен за токеном.

🧭 Заключение

Эта работа — не просто хак, а мост между эпохами трансформеров.
BERT, забытый ветераном эпохи LLM, вдруг показал, что всё ещё способен удивлять.

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

🔗 Источники: