BERT vs GPT на собеседовании Data Scientist

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Зачем разбирать на собесе

BERT и GPT — две самые цитируемые архитектуры NLP. На собесе DS: «отличие encoder от decoder», «зачем MLM», «когда BERT, когда GPT». Senior — нюансы tokenization, decoding strategies, encoder-decoder моделей (T5).

Главная боль без понимания — DS использует BERT для генерации текста и удивляется, почему результат странный.

Архитектура: encoder vs decoder

BERT (Bidirectional Encoder Representations from Transformers).

  • Encoder-only.
  • Видит весь вход целиком (bidirectional self-attention).
  • Каждый токен «знает» контекст слева и справа.
  • Не умеет генерировать токены последовательно (нет authoregressive head).

GPT (Generative Pre-trained Transformer).

  • Decoder-only.
  • Causal masking — токен видит только себя и предшествующих.
  • Авторегрессионная генерация: predict next token.
BERT:
[CLS] The quick [MASK] fox jumps [SEP]
       ↓ bidirectional attention для всех токенов
       MLM: предсказать [MASK] → "brown"

GPT:
The quick brown fox
       ↓ causal masking (i видит только j ≤ i)
       LM: предсказать "jumps" по предыдущим

T5, BART — encoder-decoder. Универсальные seq2seq.

Pre-training: MLM vs causal LM

Masked Language Modeling (BERT).

  • Случайно скрыть 15% токенов в инпуте.
  • Из этих 15%: 80% заменить на [MASK], 10% на случайный токен, 10% оставить как есть.
  • Модель учится предсказывать оригинальный токен.

Next Sentence Prediction (NSP) — оригинальный BERT. Бинарная задача: следующее предложение или нет. Позже признана малоэффективной (RoBERTa убрала).

Causal LM (GPT).

  • На каждом токене предсказывать следующий.
  • Целевая функция = sum log P(t_i | t_<i).

Permutation LM (XLNet). Гибрид — случайные перестановки токенов.

Свойства:

  • MLM сильнее в understanding-задачах (классификация, NER, QA-extractive).
  • Causal LM генерирует текст и сильнее в generation, suммирование, перевод.

Tokenization

NLP-модели работают с tokens — sub-word units.

BPE (Byte-Pair Encoding). Итеративно объединяет наиболее частые пары символов / sub-words.

"low" → ["l", "o", "w"]
... после обучения BPE словаря ...
"low" → ["low"]
"newer" → ["new", "er"]

WordPiece (BERT). Похоже на BPE, но критерий объединения — likelihood gain.

SentencePiece (T5, XLNet). Не требует пред-токенизации, работает с raw текст.

Tiktoken (OpenAI). Быстрый BPE-токенизатор для GPT-моделей.

Размеры словарей: BERT ~30k, GPT-2 ~50k, GPT-4 ~100k+, multilingual (XLM-R) — 250k+.

Fine-tuning: классические схемы

BERT для классификации:

Input:  [CLS] sentence [SEP]
Output: hidden state of [CLS] → linear classifier → softmax

BERT для NER:

Input:  [CLS] tok1 tok2 tok3 ... [SEP]
Output: hidden state каждого токена → linear → tag

BERT для QA:

Input:  [CLS] question [SEP] paragraph [SEP]
Output: для каждого токена paragraph — два числа (start_logit, end_logit)

GPT для классификации.

Классически — finetune c генерацией ответа («Sentiment: positive / negative»). С GPT-3.5+ — zero/few-shot prompting вместо fine-tuning.

GPT для генерации.

Continue-from-prompt. С RLHF / DPO — alignment к instruction-following.

LoRA / QLoRA. Параметрически-эффективный fine-tuning — обучение маленьких adapter-матриц вместо full модели. Стандарт для open-source LLM в 2026.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Когда что выбирать

BERT (или его производные — RoBERTa, DistilBERT, DeBERTa):

  • Классификация текста.
  • NER, POS tagging.
  • Extractive QA.
  • Sentence embeddings (через mean pooling или sentence-transformers).
  • Когда нужна классификация и низкая latency.

GPT (или Llama, Mistral, Qwen):

  • Генерация текста (suммирование, рерайтинг).
  • Open-ended QA.
  • Code generation.
  • Chat-боты.
  • Любая задача, выражаемая через prompt.

T5 / BART (encoder-decoder):

  • Перевод.
  • Суммаризация.
  • Когда вход и выход — разные тексты (seq2seq).

В 2026 практика:

  • Большинство NLP-задач решаются prompted GPT/Llama (быстрее в pipeline, чем fine-tuning).
  • BERT-based encoders для production search / re-ranking / embeddings (low latency, cheap inference).
  • Fine-tune только когда есть домен / privacy / cost concerns.

Современные модели

Encoder-only (BERT-style):

  • BERT (2018) — оригинал.
  • RoBERTa (2019) — без NSP, больше данных, сильнее.
  • DistilBERT — 40% меньше, 60% быстрее, 97% качества.
  • DeBERTa v3 — disentangled attention, SOTA на GLUE.
  • ModernBERT (2024) — оптимизирован под современный hardware.

Decoder-only (GPT-style):

  • GPT-2/3/4 / GPT-5 (OpenAI).
  • Llama 2/3 (Meta) — open weights.
  • Mistral 7B, Mixtral 8x7B, Mistral Large.
  • Qwen 2/3 (Alibaba) — сильный multilingual.
  • Phi-3/4 (Microsoft) — small, but mighty.
  • DeepSeek-V3 / R1 — strong reasoning.
  • Claude (Anthropic), Gemini (Google) — closed weights.

Encoder-decoder:

  • T5, FLAN-T5 — instruction-tuned.
  • BART, mBART.

Частые ошибки

Использовать BERT для генерации. BERT не умеет — это encoder. Для генерации — GPT / T5.

Сравнивать perplexity BERT и GPT. PPL для causal LM имеет смысл, для MLM — нестандартно. Не сравниваются напрямую.

Игнорировать tokenization. Длина prompt в токенах ≠ символах. Учитывай для context window.

Fine-tune full модели. Дорого. LoRA / адаптеры — стандарт для большинства downstream задач в 2026.

Брать [CLS] embedding для similarity напрямую. Из обычного BERT — слабо. Используй sentence-transformers (специально fine-tuned).

Mixing tokenizers. Tokenizer обучается с моделью. Подставить токенизатор от другой модели — катастрофа.

Учить с zero-shot ожиданиями на маленьких моделях. Llama-7B уступает GPT-4 на сложных тасках. Под задачу подбирай размер.

Игнорировать language coverage. Не все BERT работают на русском. Используй ruBERT, BLOOM, multilingual BERT, XLM-R, или русско-ориентированные модели от Yandex / Sber.

Связанные темы

FAQ

Что выбрать для классификации в проде?

DistilBERT / DeBERTa-base fine-tuned. Дешёво, быстро, хорошее качество. Большие LLM через API — overkill для классификации в production volume.

BERT понимает русский?

Multilingual BERT — слабо на длинных текстах. Лучше — RuBERT (DeepPavlov), ruRoBERTa (Sber), USER-bge-m3, multilingual e5.

Можно ли использовать GPT для NER?

Можно через prompt: «Найди именованные сущности в тексте». Но точнее на production — fine-tuned BERT-based NER.

Что такое [CLS] токен?

В BERT — специальный токен в начале последовательности. Hidden state этого токена используется как embedding всего предложения для классификации.

Sequence length у BERT?

Дефолт 512. Для длинных текстов — Longformer, BigBird (sparse attention), или разбивка на чанки.

Это официальная информация?

Нет. Статья основана на оригинальных статьях (Devlin 2018 BERT, Radford 2018 GPT, Vaswani 2017 Transformer) и документации Hugging Face.


Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.