Двунаправленный энкодер, предобученный на восстановлении замаскированных .
Ключевые тезисы
- Видит контекст с обеих сторон, что критично для понимания смысла.
- с небольшой головой решает классификацию, и QA.
- Дистиллированные версии (DistilBERT, RuBERT-tiny) удобны для прода.
Какую задачу решает
показал, что для понимания текста нужен двусторонний контекст: значение слова определяется и тем, что было до, и тем, что после. Авторегрессионные модели по построению видят только прошлое — BERT снял это ограничение, заменив задачу «предскажи следующее слово» на «восстанови замаскированные слова».
Практический результат — семейство энкодеров, которые до сих пор остаются лучшим выбором для задач понимания: классификации, извлечения сущностей, . Они на порядки дешевле генеративных моделей, работают на CPU, дают детерминированный ответ и не галлюцинируют, потому что ничего не порождают.
Классификация 5 млн обращений в месяц. Через API большой модели это заметный ежемесячный счёт и в секунду на запрос. Альтернатива: разметить большой моделью 2000 примеров (один раз), дообучить на них компактный энкодер, получить качество в пределах 1–2 процентных пунктов и на CPU со скоростью тысячи документов в секунду. Правильный паттерн почти всегда такой: большая модель — источник разметки и эталон качества, маленький энкодер — рабочая лошадка в проде.
Подробный разбор
Если модель видит контекст с обеих сторон, предсказывать следующее слово бессмысленно — оно уже видно. Поэтому 15% маскируются, и задача — восстановить именно их.
- Из этих 15%: 80% заменяются на
[MASK], 10% на случайный , 10% остаются нетронутыми — чтобы модель не полагалась на наличие маски. -
[CLS]агрегирует представление всего текста и используется для классификации. - NSP (предсказание следующего предложения) в поздних работах признали малополезным; RoBERTa от него отказалась.
Для русского языка есть ruBERT, ruRoBERTa и лёгкие дистиллированные версии (rubert-tiny), которые работают на CPU с приемлемой скоростью.
- Для классификации берут выход
[CLS]и линейный слой поверх. - Для не берите сырой
[CLS]— он плохо приспособлен для косинусной близости; используйте mean pooling или модели, обученные контрастно (E5, SBERT). - Максимальная длина — 512 ; длинные документы режут на окна или берут Longformer.
- обычно 2–4 эпохи с lr ; больше почти всегда ведёт к .
emb = model(**tokens).last_hidden_state # (B, L, H)
mask = tokens["attention_mask"].unsqueeze(-1)
sent = (emb * mask).sum(1) / mask.sum(1) # mean pooling с учётом паддингаГде применяется
- Классификация текстаТональность, тематика, спам: энкодер точнее и в сотни раз дешевле .
- Извлечение сущностей: разметка , где двусторонний контекст критичен.
- для поискаSentence-BERT и его наследники — основа индексов.
- Реранкинг в Cross-encoder на паре «запрос — документ» даёт лучшее качество ранжирования.
- Извлечение ответа из текстаQuestion answering по абзацу: модель указывает фрагмент, а не сочиняет.
Плюсы, минусы и альтернативы
Плюсы
- Двусторонний контекст даёт лучшее качество на задачах понимания.
- На порядки дешевле и быстрее генеративных моделей.
- Работает на CPU и умещается в скромную память.
- Детерминированный вывод — удобно тестировать и воспроизводить.
- Не галлюцинирует: выдаёт метку или фрагмент, а не свободный текст.
Минусы
- Не умеет генерировать текст.
- Требует под каждую задачу — zero-shot почти не работает.
- Ограниченное контекста (обычно 512 ).
- Нужна размеченная выборка, пусть и небольшая.
- Уступает большим моделям на задачах, требующих рассуждения.
Брать, если
- Задача — понимание: классификация, разметка, извлечение, поиск.
- Есть хотя бы несколько сотен размеченных примеров.
- Важны стоимость, скорость и предсказуемость.
Не брать, если
- Нужна генерация текста.
- Размеченных данных нет вовсе — начните с большой модели.
- Текст длиннее нескольких страниц и его нельзя разбить.
Чем заменяют
Связанные темы
Прикладные задачи NLP · Внимание и трансформеры
Attention85%
Механизм внимания · Глубокое обучениеКаждая позиция смотрит на все остальные и взвешивает их по релевантности — прямой доступ к контексту без рекуррентности.
Transformers85%
Трансформеры · Глубокое обучениеАрхитектура целиком на внимании: параллельная обработка последовательности вместо пошаговой.
Attention85%
Внимание в NLP · Обработка естественного языкаИзначально придумано, чтобы декодер перевода мог смотреть на нужные слова исходного предложения.
Transformers85%
Трансформеры в NLP · Обработка естественного языкаОснова всех современных языковых моделей: encoder, decoder или их комбинация.
GPT85%
GPT · Обработка естественного языкаАвторегрессионный декодер: предсказывает следующий токен, что оказалось достаточно универсальной задачей.
Vision Transformers85%
Vision Transformers · Компьютерное зрениеИзображение режется на патчи, которые обрабатываются как последовательность токенов.
Transformer forecasting85%
Трансформеры для прогноза · Временные рядыВнимание над длинными горизонтами: Informer, Autoformer, PatchTST, TFT.
LLM85%
Большие языковые модели · Генеративный ИИТрансформеры-декодеры, обученные на огромных корпусах предсказывать следующий токен.
Text classification75%
Классификация текстов · Обработка естественного языкаОтнесение документа к одной или нескольким категориям: от спам-фильтра до маршрутизации тикетов.
NER75%
Извлечение именованных сущностей · Обработка естественного языкаРазметка последовательности: находим в тексте имена, организации, даты, суммы.
Sentiment Analysis75%
Анализ тональности · Обработка естественного языкаОпределение эмоциональной окраски текста — от бинарной оценки до аспектной тональности.
Embeddings75%
Эмбеддинги · Обработка естественного языкаПлотные векторные представления объектов, где геометрическая близость означает смысловое сходство.
F175%
F1-мера · МетрикиГармоническое среднее точности и полноты — компромисс между ними одним числом.
Precision75%
Точность · МетрикиКакая доля объектов, предсказанных положительными, действительно положительна.
Recall75%
Полнота · МетрикиКакая доля реально положительных объектов найдена моделью.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Masked Language Modeling
15% маскируются, модель восстанавливает их по обеим сторонам контекста.
Разбор ниже: Masked Language ModelingДвусторонний контекст
Каждый видит всю последовательность — отсюда сила на задачах понимания.
Разбор ниже: Masked Language ModelingТокен [CLS]
Служебный первый , чьё представление используется как всего текста.
Разбор ниже: Практика примененияДообучение под задачу
Голова поверх энкодера плюс несколько эпох на своих данных — стандартный рецепт.
Разбор ниже: Практика примененияСемейство моделей
RoBERTa, DeBERTa, ruBERT и другие: те же идеи с улучшенным обучением и данными.
Разбор ниже: Практика примененияСпрашивают на собеседовании: Яндекс — NLP, Сбер — NLP и LLM, HeadHunter — Тексты вакансий и резюме.
Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.
Глава «Обработка естественного языка» последний раз правилась . Нашли ошибку — напишите.