Ко всем темам
Тематический маршрут

LLM: архитектура, вывод модели и RAG

Какие интервью пройти отдельно по устройству LLM, инференсу и RAG-системам?

Три взаимодополняющих собеседования: архитектура и обучение, high-load inference, затем retrieval и RAG System Design.

3 реальных собеседования25 вопросов6 подтем

Маршрут из трёх собеседований

Проходите по порядку: база → глубина → применение.

Начать отсюдамарт 2026 г.

Собирает основу темы и задаёт правильную структуру ответа.

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

Sber / GigaChat

Системный технический обзор Transformer: BERT/GPT, BPE, RoPE, attention, memory и DDP.

Senior Аудио · 67 мин 10 ключевых этапов 10 шагов практики

После прохождения

  • Собрать цельную картину архитектуры и обучения LLM
  • Объяснять вычислительные bottlenecks Transformer
АрхитектураТокены и эмбеддингиОбучениеВывод модели
Углубитьсямай 2026 г.

Добавляет сложные follow-up и проверяет глубину понимания.

Huawei: Техническое собеседование

Huawei

Одно из самых содержательных интервью по современному LLM inference и оптимизациям.

Senior Аудио · 76 мин 9 ключевых этапов 13 шагов практики

После прохождения

  • Разобрать serving pipeline по стадиям
  • Оценивать память KV cache и компромиссы decoding
АрхитектураВывод моделиОценка и эксплуатация
Закрепить на практикемарт 2026 г.

Переводит знания в coding или законченный прикладной кейс.

AgeCode: ML System Design

AgeCode

Законченный RAG/search-кейс: BM25 baseline, NDCG, hybrid retrieval, reranker и online signals.

Middle / Senior Аудио · 48 мин 7 ключевых этапов 9 шагов практики

После прохождения

  • Спроектировать retrieval до добавления LLM
  • Выбрать offline и online-метрики поиска
Поиск и RAGОценка и эксплуатация

Что покрывает каждое интервью

Матрица построена по конкретным вопросам и этапам, а не по совпадению слов в заголовке.

ПодтемаНачать отсюдаУглубитьсяЗакрепить на практике
АрхитектураTransformer, механизм внимания, позиционные представления и MoE.ГлубокоГлубоко
Токены и эмбеддингиBPE, эмбеддинги предложений и обучение представлений.Глубоко
ОбучениеФункции потерь, память, длинный контекст и распределённое обучение.Глубоко
Вывод моделиЭтапы prefill/decode, KV-кеш, пакетная обработка и декодирование.Рабочее пониманиеГлубоко
Поиск и RAGBM25, гибридный поиск, переранжирование и генерация.Глубоко
Оценка и эксплуатацияМетрики на исторических данных и в продукте, задержка и мониторинг.Рабочее пониманиеГлубоко

Отдельная практика по теме

Раскрывайте вопросы и сверяйте ответы прямо здесь. Задачи открываются отдельно в редакторе.

Ключевые вопросы маршрута

Формулировка

Объясните разницу между 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.

Полная карточка: теория, ошибки и прогресс

Формулировка

Нужно получить хорошие 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.

Полная карточка: теория, ошибки и прогресс

Формулировка

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 зависит от уже сгенерированного токена.

Полная карточка: теория, ошибки и прогресс

Формулировка

Почему современные 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.

Полная карточка: теория, ошибки и прогресс

Формулировка

Какие бывают 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 настройки.

Полная карточка: теория, ошибки и прогресс

Формулировка

Объясните 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).

Полная карточка: теория, ошибки и прогресс

Формулировка

При 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.

Полная карточка: теория, ошибки и прогресс

Формулировка

При обучении на сотнях тысяч токенов обычный/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 между сегментами.

Полная карточка: теория, ошибки и прогресс

Формулировка

На какие сущности уходит 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 не является базовой оптимизацией обучения.

Полная карточка: теория, ошибки и прогресс

Формулировка

Как работает 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.

Полная карточка: теория, ошибки и прогресс

На страницах собеседований есть ещё 15 связанных вопросов.

Задачи из этих интервью

Повторить теорию перед практикой