BERT vs GPT на собеседовании Data Scientist
Карьерник — 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 → softmaxBERT для NER:
Input: [CLS] tok1 tok2 tok3 ... [SEP]
Output: hidden state каждого токена → linear → tagBERT для 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.
Когда что выбирать
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.
Связанные темы
- Transformer на собесе DS
- Attention механизм для DS
- Embeddings на собесе DS
- NLP на собесе DS
- Подготовка к собесу Data Scientist
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+ вопросами для собесов.