К обычному разбору
Тренировка по собеседованиюТехническое собеседованиеSber / GigaChat2026-03-25

Sber / GigaChat: LLM подробный разбор, inference и distributed training

Идите сверху вниз: сначала попробуйте сами, затем откройте разбор. Если шаг с кодом, пишите решение прямо здесь и запускайте проверки на странице.

Шагов
10
Вопросов
10
Задач
0
1Вопрос10 мин

BERT vs GPT: в чем архитектурная разница

Объясните разницу между BERT-like encoder моделями и GPT-like decoder моделями, и почему они подходят для разных задач.

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

BERT - bidirectional encoder для представлений и понимания текста; GPT - causal decoder для autoregressive generation.

Подробный разбор

BERT использует encoder-style self-attention, где токен может смотреть на контекст слева и справа. Это удобно для классификации, retrieval embeddings, NER и задач понимания текста. Обучение обычно связано с masked language modeling или похожими self-supervised целями.

GPT использует causal mask: каждый токен видит только предыдущие. Такая модель учится предсказывать следующий токен и естественно подходит для генерации текста, диалога, completion и agentic reasoning.

На практике encoder модели часто дают компактные embeddings и быстрый scoring, а decoder модели лучше как генераторы и reasoning layer, но дороже на inference.

Типичные ошибки

  • Говорить, что BERT просто старая версия GPT.
  • Не упомянуть causal mask у GPT.
  • Не связать архитектуру с типом задач.

Как сказать на собеседовании

  • Скажи bidirectional encoder vs causal decoder.
  • Приведи примеры задач для каждого класса.
2Вопрос14 мин

Как обучать sentence embeddings

Нужно получить хорошие embeddings предложений для retrieval/semantic search. Какие данные и loss использовать?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Нужны positive/negative пары или triplets; типичный loss - contrastive / multiple negatives ranking loss / triplet loss.

Подробный разбор

Для semantic retrieval модель должна сближать тексты с одинаковым смыслом и разносить нерелевантные. Данные могут быть query-document клики, пары вопрос-ответ, paraphrase pairs, NLI entailment pairs или доменная разметка релевантности.

Один из практичных вариантов - bi-encoder: кодируем query и document отдельно, считаем cosine/dot product. Loss может быть multiple negatives ranking loss: правильный документ в batch является positive, остальные документы в batch - negatives. Для более контролируемой постановки используют triplet loss: anchor, positive, negative.

Качество embeddings нужно проверять retrieval-метриками: Recall@K, MRR, NDCG, а не только loss на train.

Типичные ошибки

  • Обучать embeddings только классификацией без retrieval eval.
  • Не подбирать hard negatives.
  • Смешивать cross-encoder и bi-encoder inference cost.

Как сказать на собеседовании

  • Назови multiple negatives ranking loss.
  • Обязательно скажи про hard negatives и Recall@K.
3Вопрос10 мин

Сколько forward-pass нужно GPT на train batch

GPT генерирует autoregressive, токен за токеном. Сколько forward-pass нужно сделать для одного training batch и почему?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Один forward-pass на всю последовательность: causal mask запрещает смотреть в будущие токены, а loss считается параллельно для всех next-token позиций.

Подробный разбор

На training decoder-only GPT не генерирует токены последовательно как на inference. Вся последовательность подается сразу, attention получает causal mask, поэтому позиция t видит только позиции <= t.

Модель параллельно предсказывает следующий токен для всех позиций, а cross-entropy считается по shifted targets. Последовательный decode нужен на autoregressive inference, потому что следующий input зависит от уже сгенерированного токена.

4Вопрос10 мин

Почему у BPE-токенизатора почти нет unknown tokens

Почему современные subword tokenizers вроде BPE/SentencePiece редко используют unknown token, и какие trade-off есть у такого подхода?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

BPE разбивает редкие слова на более частые subword units, вплоть до символов/байтов, поэтому OOV почти исчезает.

Подробный разбор

Идея BPE: начать с маленьких единиц и постепенно объединять частые пары. Поэтому незнакомое слово не обязано превращаться в unknown: его можно разложить на известные subwords, символы или bytes.

Плюс: модель может обрабатывать редкие слова, имена, новые термины и опечатки. Минус: редкий или странный текст может превращаться в много токенов, что увеличивает context length и inference cost. Еще один trade-off - разные языки и домены могут токенизироваться с разной эффективностью.

В интервью полезно связать токенизацию с latency/cost: чем больше токенов на тот же текст, тем дороже attention и generation.

Типичные ошибки

  • Думать, что vocabulary содержит все возможные слова.
  • Не упомянуть byte/character fallback.
  • Забыть про cost от длинной токенизации.

Как сказать на собеседовании

  • Скажи: subword decomposition solves OOV.
  • Добавь trade-off про token count.
5Вопрос10 мин

RoPE и positional embeddings в GPT

Какие бывают positional embeddings в Transformer и как работает RoPE?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

RoPE кодирует позицию поворотом пар координат в Q/K; dot product после поворота зависит от относительного расстояния между токенами.

Подробный разбор

Позиционная информация нужна, потому что self-attention сам по себе permutation-invariant. Классические варианты: sinusoidal embeddings, learned absolute embeddings, relative position bias.

RoPE применяет rotation к query и key векторам по парам координат с углом, зависящим от позиции. Когда считаем QK dot product, фазовая разница несет информацию об относительном расстоянии. Это удобно для decoder LLM и long-context scaling, но требует аккуратной extrapolation настройки.

6Вопрос14 мин

Attention complexity, GQA/MQA и Sliding Window Attention

Объясните scaled dot-product attention, его сложность, и зачем нужны GQA/MQA и Sliding Window Attention.

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Attention считает softmax(QK^T / sqrt(d_k))V и стоит примерно O(n^2 d). GQA/MQA уменьшают KV heads и KV cache, SWA ограничивает окно attention до W токенов.

Подробный разбор

Scaled dot-product attention строит Q, K, V, считает scores QK^T / sqrt(d_k), применяет softmax и взвешивает V. Квадратичная часть по длине последовательности возникает из attention matrix n x n.

GQA/MQA оптимизируют inference memory: query heads остаются многочисленными, но key/value heads шарятся между группами, поэтому KV cache уменьшается примерно пропорционально числу KV heads. Sliding Window Attention ограничивает каждому токену видимость последними W токенами, меняя cost с O(n^2) на примерно O(nW).

7Вопрос12 мин

Зачем нужен KV cache при inference LLM

При autoregressive generation модель генерирует токены по одному. Что такое KV cache и как он ускоряет inference?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

KV cache хранит key/value для уже обработанных токенов, чтобы на каждом decode step не пересчитывать весь prefix заново.

Подробный разбор

В decoder-only LLM каждый новый токен attends to предыдущие токены. Без cache на каждом шаге пришлось бы заново прогонять весь prefix через attention projections. KV cache сохраняет key и value для прошлых токенов по каждому layer/head, поэтому для нового токена считаются только его Q/K/V, а attention использует уже сохраненные K/V.

Это сильно ускоряет decode, но увеличивает memory footprint. Память растет с batch size, sequence length, числом layers, числом KV heads и head dimension. Поэтому для long context и high throughput KV cache становится одним из главных bottleneck.

Оптимизации: MQA/GQA уменьшают число KV heads, paged attention улучшает memory management, quantized KV cache снижает память, а continuous batching лучше использует GPU.

Типичные ошибки

  • Говорить, что KV cache ускоряет prefill так же, как decode.
  • Не учитывать memory cost.
  • Путать KV cache с embedding cache.

Как сказать на собеседовании

  • Раздели prefill и decode.
  • Назови memory scaling factors.
8Вопрос14 мин

Long-context training: почему не помещается attention

При обучении на сотнях тысяч токенов обычный/Flash Attention все равно не помещается в GPU. Что раздувает память и какие классы решений есть?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Главная проблема - активации и attention-related tensors, растущие с sequence length; помогают sparse/local attention, sequence parallelism и activation checkpointing.

Подробный разбор

Flash Attention снижает materialization n x n attention matrix и улучшает IO, но не отменяет фундаментальную стоимость очень длинной последовательности: Q/K/V, activations для backprop, MLP activations и коммуникация становятся огромными.

Решения зависят от цели: local/sparse/sliding attention меняет математическую структуру; sequence/context parallelism распределяет sequence dimension между GPU; activation checkpointing пересчитывает часть forward вместо хранения; tensor/pipeline/FSDP/ZeRO распределяют параметры, gradients и optimizer state. Важно не просто порезать sequence на независимые куски, иначе потеряется attention между сегментами.

9Вопрос12 мин

На что уходит GPU memory при training LLM

На какие сущности уходит GPU memory при обучении LLM, и почему KV cache обычно используют на inference, а не на training?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

Память уходит на weights, gradients, optimizer states и activations. KV cache полезен на autoregressive inference с фиксированными весами, а на training нужен backprop через parallel forward.

Подробный разбор

При обучении память занимают параметры модели, gradients, optimizer state вроде Adam moments, activations для backward, temporary buffers и batch/sequence-dependent tensors. Adam в mixed precision может добавлять кратный overhead к размеру параметров.

KV cache ускоряет decode на inference: прошлые K/V можно не пересчитывать, потому что веса фиксированы и токены генерируются по одному. На training вся последовательность обрабатывается параллельно с teacher forcing, нужно хранить или восстанавливать вычислительный граф для backprop, поэтому обычный inference-style KV cache не является базовой оптимизацией обучения.

10Вопрос15 мин

DDP и all-reduce overlap при distributed training

Как работает Distributed Data Parallel training и почему overlap gradient all-reduce с backprop помогает ускорить обучение?

Ответьте без подсказки

Сначала проговорите ответ вслух или тезисами.

Запишите черновик

Формулы, план решения, риски и примеры.

Сравните с разбором

Откройте разбор только после своей попытки.

Показать разбор

Короткий ответ

В DDP каждая GPU считает gradients на своем mini-batch, затем gradients синхронизируются all-reduce; overlap запускает коммуникацию для ранних слоев, пока backprop считает остальные.

Подробный разбор

В Distributed Data Parallel каждая replica модели получает свою часть batch, делает forward/backward и получает локальные gradients. Чтобы модели оставались одинаковыми, gradients усредняются между workers через all-reduce, после чего optimizer step одинаковый на всех replica.

Если ждать конца всего backward и только потом синхронизировать gradients, коммуникация добавляет отдельную задержку. DDP группирует gradients в buckets и может начинать all-reduce для bucket сразу, когда gradients в нем готовы. Пока сеть передает gradients ранних buckets, GPU продолжает считать backward для следующих слоев.

Эффект зависит от размера модели, bandwidth/latency interconnect, bucket size и баланса compute/communication.

Типичные ошибки

  • Думать, что DDP делит параметры модели между GPU.
  • Не отличать data parallel от tensor/model parallel.
  • Не понимать, зачем нужны gradient buckets.

Как сказать на собеседовании

  • Скажи: each worker has full model replica.
  • Объясни overlap через buckets during backward.