NLP на собеседовании Data Scientist
Содержание:
Что спрашивают про NLP
NLP — частый блок на собесе DS. Глубина зависит от роли:
- Общий DS — базы (что такое токенизация, embeddings, BERT)
- NLP-специалист — фундамент transformers, fine-tuning, evaluation
- LLM-инженер — prompt engineering, RAG, alignment
Базовый минимум: токенизация, word embeddings, transformers, BERT/GPT, классификация текста.
Токенизация
Текст превращается в последовательность токенов (id числа в словаре). Подходы:
Word-level
Каждое слово — токен. Просто, но проблемы:
- Огромный словарь
- OOV (out-of-vocabulary) — новое слово неизвестно
Character-level
Каждый символ — токен. Маленький словарь, но длинные последовательности.
Subword (BPE, WordPiece, SentencePiece)
Компромисс. Часто встречающиеся слова — одним токеном; редкие — разбиваются на subword'ы.
- BPE (Byte-Pair Encoding) — итеративно объединяет частые пары. GPT.
- WordPiece — похож на BPE, отличается метрикой выбора. BERT.
- SentencePiece — работает на raw text без предварительной токенизации. T5, mBART.
На собесе: «Зачем subword?» Ответ: решает OOV (новое слово разбивается на known subword'ы), уменьшает словарь, лучше работает на агглютинативных языках (русский).
Word embeddings
Word2Vec, GloVe, fastText
Векторные представления слов в пространстве, где близкие по смыслу слова — близкие в пространстве.
- Word2Vec — обучается через предсказание слова по контексту (CBOW) или контекста по слову (Skip-gram)
- GloVe — на основе матрицы со-встречаемости
- fastText — Word2Vec на subword'ах, лучше для редких слов
Известный пример: vector("король") - vector("мужчина") + vector("женщина") ≈ vector("королева").
Контекстные embeddings
Word2Vec даёт один вектор на слово. Но «коса» в «коса девочки» и «коса на пляже» — разные смыслы. Контекстные модели (BERT, ELMo) дают разные векторы под контекст.
Сейчас almost все NLP — контекстные. Word2Vec используется как baseline.
BERT и encoder-модели
BERT (Bidirectional Encoder Representations from Transformers) — encoder-only архитектура. Обучается на задачах:
- Masked Language Model (MLM) — маскирует случайные токены и предсказывает их
- Next Sentence Prediction (NSP) — предсказывает, идут ли два предложения подряд (в новых моделях часто убирают)
Применяется для:
- Классификация текста (sentiment, spam, intent)
- NER (named entity recognition)
- QA (question answering) — predicting answer span
- Embeddings sentences (Sentence-BERT)
На собесе: «Зачем bidirectional?» Ответ: при понимании смысла слова важен контекст с обеих сторон. GPT (left-to-right) хуже на classification, лучше на generation.
GPT и decoder-модели
GPT (Generative Pre-trained Transformer) — decoder-only архитектура. Обучается на causal language modeling — предсказывает следующий токен.
Подходит для:
- Генерация текста
- Few-shot/zero-shot задачи через prompts
- Чат-боты, LLM-сервисы
GPT-1 (2018) — 117M параметров. GPT-2 (2019) — 1.5B. GPT-3 (2020) — 175B. GPT-4 (2023) — точное число неизвестно, оценивается в 1T+.
В РФ — YandexGPT, Sber GigaChat.
Fine-tuning vs prompt engineering
Fine-tuning
Берём pretrained модель, дообучаем на нашей задаче. Нужны:
- Размеченный датасет (для классификации — десятки/сотни тысяч примеров)
- Compute (GPU)
- Время и навыки
Виды:
- Full fine-tuning — обновляем все веса. Дорогое, лучшее качество
- LoRA, adapters — обновляем малую часть весов. Дешевле, на больших моделях
- Prompt tuning — обучаем только embeddings промпта
Prompt engineering
Не обновляем модель. Подбираем входной промпт так, чтобы модель решала задачу. Подходы:
- Zero-shot — даём задачу описанием
- Few-shot — даём 2-5 примеров в промпте
- Chain-of-thought — просим модель рассуждать пошагово
- RAG (Retrieval Augmented Generation) — даём в промпт релевантные документы из векторной БД
На собесе: «Когда fine-tuning, когда prompts?» Ответ:
- Fine-tuning — стабильное качество, оффлайн-задачи, узкие домены
- Prompts — быстрая итерация, новые задачи, отсутствие данных
- Гибрид (RAG + small fine-tuning) — production-стандарт сейчас
Базовые задачи NLP
Text classification
Sentiment, spam, intent, topic. Решается BERT + classification head.
Метрики: accuracy, F1 (на несбалансированных классах).
NER (Named Entity Recognition)
Найти в тексте имена, локации, даты. BERT + token classification head.
Метрики: precision, recall, F1 по spans (точная граница важна).
Summarization
Сократить длинный текст. Extractive (выбираем предложения) vs abstractive (генерируем).
Метрики: ROUGE (overlap n-gram).
QA (Question Answering)
Extract answer span в контексте. SQuAD-стиль.
Translation
Encoder-decoder архитектуры (T5, mBART, Marian).
Метрики: BLEU, METEOR.
Частые ошибки
Не учитывать особенности языка. Русский — агглютинативный. Subword-токенизация лучше word-level. Стандартные предобработки (лемматизация, стоп-слова) обычно вредят на современных моделях.
Использовать accuracy на несбалансированной классификации. F1 или PR AUC — стандарт.
Игнорировать длину контекста. BERT — 512 токенов. Текст длиннее обрезается. Long-context модели — Longformer, BigBird, Flash Attention.
Использовать GPT-3+ для классификации. Дорого и хуже, чем дообученный BERT. LLM — для генерации и сложных задач.
Не думать про языковую модель. Английский BERT не работает на русском. Используйте multilingual или language-specific (RuBERT, RuRoBERTa).
FAQ
Что такое attention простыми словами?
Механизм взвешенного учёта частей последовательности. Когда модель «читает» слово, она не равномерно учитывает остальные слова, а взвешивает их по релевантности.
Embeddings — это про слова или предложения?
И то, и другое. Word embeddings (Word2Vec) — про слова. Sentence embeddings (Sentence-BERT) — про предложения/абзацы.
Сколько NLP-практики нужно для junior DS?
1-2 проекта: классификация текста с BERT, embedding-based search или RAG.
Это официальная информация?
Нет. Статья основана на ключевых публикациях (Vaswani 2017, Devlin 2018, Brown 2020) и опыте кандидатов.