К обычному разбору
Тренировка по собеседованиюТехническое собеседованиеWisebits / xHamster2025-10-02

Wisebits / xHamster: Техническое собеседование

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

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

Дискриминативные и генеративные модели

Есть дискриминативные и генеративные модели. Чем они отличаются с математической точки зрения? Приведите примеры современных генеративных моделей.

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

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

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

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

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

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

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

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

Дискриминативная модель учит предсказание target по input, часто p(y|x) или decision boundary. Генеративная модель учит распределение данных или механизм сэмплирования: p(x), p(x|y) или joint distribution. Примеры: diffusion models, GAN, VAE, normalizing flows, autoregressive transformers.

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

Дискриминативная постановка фокусируется на предсказании: classification, regression, ranking, detection. В вероятностной форме это часто p(y|x), то есть распределение ответа при данном input, либо напрямую decision function.

Генеративная модель описывает, как данные могли быть порождены, и позволяет сэмплировать новые объекты. В зависимости от family она может моделировать p(x), p(x|y) или joint distribution. VAE задает latent distribution и decoder, normalizing flows используют invertible transformations, GAN обучает generator против discriminator, diffusion учит reverse denoising process, autoregressive transformers раскладывают генерацию по tokens.

Разные family имеют разные tradeoffs: GAN быстрые на inference, но нестабильны в обучении и могут страдать mode collapse; diffusion обычно стабильнее и качественнее, но сэмплирует итеративно; autoregressive models гибкие для sequence generation, но декодируют последовательно.

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

  • Говорить, что все generative models точно учат p(x, y).
  • Перечислять GAN и diffusion без различия в обучении.
  • Путать обычный autoencoder и VAE.

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

  • Возьмите p(y|x) vs modeling/sampling x как anchor.
  • Дайте примеры из нескольких model families, не только LLM.
2Вопрос8 мин

IoU вместо MSE для bounding boxes

В object detection почему для box regression часто используют IoU-style loss, а не обычный MSE по координатам углов bounding box?

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

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

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

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

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

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

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

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

MSE по координатам плохо совпадает с качеством детекции и зависит от масштаба объекта. IoU напрямую измеряет overlap predicted и ground-truth box, поэтому одна и та же ошибка в пикселях оценивается относительно размера объекта и качества локализации.

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

Обычный MSE считает координаты углов независимыми regression targets. Сдвиг на 10 пикселей дает похожий coordinate loss для маленького и большого объекта, хотя влияние на detection quality будет разным. MSE также напрямую не измеряет overlap, containment и aspect-ratio quality.

IoU считает intersection over union, поэтому ближе к тому, как обычно оценивают object detectors. Он нормирован на размер box и показывает, насколько хорошо predicted box совпал с ground truth. Современные варианты вроде GIoU, DIoU и CIoU добавляют terms для non-overlap, расстояния между центрами и aspect ratio.

MSE не запрещен полностью: в некоторых parameterizations, например offsets относительно anchors, он может работать. Но raw corner MSE - слабый proxy для localization quality.

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

  • Говорить, что MSE вообще никогда не работает.
  • Забывать пример small object vs large object.
  • Не упоминать zero-gradient/non-overlap problem, из-за которой появились GIoU-like variants.

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

  • Используйте пример одного pixel shift для маленького и большого box.
  • Если интервьюер спрашивает edge cases, упомяните IoU variants.
3Вопрос7 мин

BatchNorm на обучении и инференсе

Зачем используют BatchNorm? Как он работает во время training и чем поведение отличается на inference?

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

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

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

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

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

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

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

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

BatchNorm нормализует activations по batch statistics, затем применяет обучаемые gamma/beta. На training он считает mean/variance по текущему mini-batch и обновляет running statistics; на inference использует замороженные running mean/variance.

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

BatchNorm помогает оптимизации: стабилизирует распределения activations и часто позволяет использовать больший learning rate. Для каждого channel слой вычитает mean, делит на standard deviation плюс epsilon, затем применяет обучаемые scale и shift - gamma и beta.

На training mean и variance считаются по текущему mini-batch, а running estimates обновляются с momentum. Gamma и beta обучаются через backpropagation как обычные differentiable parameters.

На inference batch может быть маленьким или нерепрезентативным, поэтому слой использует накопленные running mean и running variance. Практический bug - забыть переключить модель в eval mode: тогда BatchNorm и dropout будут вести себя как на training.

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

  • Забывать running mean и variance.
  • Говорить, что gamma/beta задаются руками, а не обучаются.
  • Запускать inference в training mode.

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

  • Упомяните epsilon, gamma/beta и running stats.
  • Назовите eval mode как production detail.
4Вопрос8 мин

LoRA и нулевая начальная добавка

Что такое LoRA? Почему она полезна для fine-tuning больших моделей? Как обычно инициализируют low-rank матрицы, чтобы не исказить базовую модель на старте?

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

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

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

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

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

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

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

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

LoRA замораживает базовый weight и обучает низкоранговую additive update. Чтобы начальный output совпадал с base model, одну low-rank матрицу обычно инициализируют случайно, а вторую нулями: initial delta равна нулю, но градиенты могут пойти в LoRA path.

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

LoRA представляет обновление веса как low-rank product, часто delta W = B A со scaling factor. Большая исходная матрица остается frozen, а обучаются только маленькие matrices A и B. Это снижает память, optimizer state и GPU cost.

Инициализация важна. Если обе матрицы случайные, adapted layer уже на первой итерации меняет output базовой модели. Поэтому обычно одну матрицу инициализируют random, а другую zeros. Их произведение изначально равно нулю, так что модель стартует ровно как base model, но low-rank path остается обучаемым.

LoRA особенно полезна, когда full fine-tuning слишком дорогой или нужно хранить несколько task-specific adapters. Full SFT может быть лучше, если есть много качественных данных, compute и не нужно сохранять shared base model неизменной.

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

  • Инициализировать обе LoRA matrices случайно и не обсудить initial output drift.
  • Говорить, что LoRA всегда лучше full fine-tuning.
  • Забывать, что base weights обычно frozen.

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

  • Четко скажите: initial delta is zero.
  • Обсудите, когда full SFT все еще предпочтительнее.
5Вопрос8 мин

CLIP и SigLIP-style обучение image-text моделей

Как работает CLIP-модель и как она обучается? В чем high-level отличие SigLIP-style обучения от классического CLIP?

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

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

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

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

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

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

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

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

CLIP обучает энкодер изображений и энкодер текста на парных image-text данных: настоящие пары должны быть близко в embedding space, несовпадающие - далеко. SigLIP сохраняет эту идею, но использует sigmoid pairwise loss вместо softmax contrastive loss по batch.

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

CLIP состоит из двух encoders: image encoder и text encoder. В batch есть пары image-caption; модель проецирует обе модальности в общее embedding space. Contrastive objective повышает similarity настоящей пары и снижает similarity для остальных пар в batch.

После такого обучения image и text можно сравнивать по cosine similarity или dot product. Поэтому CLIP полезен для zero-shot classification, retrieval и embedding-based matching.

SigLIP-style training концептуально близок к CLIP, но меняет loss. Вместо softmax contrastive normalization по всему batch используется sigmoid loss для image-text pairs, как для более независимых binary labels. На уровне интервью ключевая разница - softmax contrastive loss vs sigmoid pairwise loss.

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

  • Описывать CLIP как модель, которая всегда конкатенирует image и text tokens.
  • Забывать negative pairs в contrastive training.
  • Говорить, что SigLIP не связан с CLIP, вместо loss/training variant.

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

  • Начните с two encoders и shared embedding space.
  • Для SigLIP четко скажите “sigmoid pairwise loss”.
6Вопрос10 мин

Self-distillation и DINO

Что такое self-distillation и зачем модель учить на собственных предсказаниях? Как устроен DINO-style teacher-student подход?

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

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

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

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

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

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

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

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

Self-distillation использует teacher-версию той же модели, прошлый checkpoint или EMA-копию как источник мягких target. В DINO student и teacher видят разные аугментации одного изображения: teacher обновляется через EMA от student, а student учится совпадать с распределением teacher.

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

В distillation student учится не только на hard labels, а на более мягких targets от teacher. В self-distillation teacher может быть той же архитектурой, previous checkpoint, averaged copy или EMA-версией student. Soft targets помогают regularization и могут сохранить полезную структуру, которую hard labels теряют.

DINO - self-supervised vision setup. Берутся разные augmented views одного изображения; student и teacher получают разные views, а student учится совпадать с output distribution teacher. Teacher не обучается прямым gradient descent: его веса обновляются как exponential moving average от student weights.

Это заставляет representation быть устойчивым к аугментациям без явных labels. Важные interview points: augmented views, teacher-student targets, stop-gradient на teacher и EMA teacher update.

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

  • Говорить, что teacher и student обновляются одним и тем же gradient.
  • Забывать augmentations в DINO.
  • Объяснять только classic supervised distillation и пропустить self-supervised usage.

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

  • Назовите stop-gradient и EMA teacher.
  • Объясните, почему soft targets regularize noisy training.
7Вопрос18 мин

Поиск safe/unsafe видеофрагментов на большом масштабе

Представьте два видеосервиса с миллиардами роликов: в одном нужно быстро находить safe-фрагменты внутри в основном unsafe-контента, в другом - unsafe-фрагменты внутри в основном safe-контента. Разметки почти нет, ресурсов и времени мало. Как бы вы строили pipeline?

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

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

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

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

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

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

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

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

Нужен каскад поиска кандидатов: редкое семплирование кадров, дешёвые эвристики и лёгкие модели для recall, сигналы из metadata/text, затем более сильная VLM/frame model или human review для кандидатов. Отдельно нужны валидация с учётом class imbalance, временная агрегация и разные thresholds под риск.

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

Сначала нужно разделить product risk. “Safe inside mostly unsafe” и “unsafe inside mostly safe” - обе rare-event mining задачи, но цена false negative/false positive разная. Во втором случае риск часто выше: пользователь не ожидает unsafe content на safe-площадке.

На масштабе миллиардов видео нельзя гонять тяжелую VLM по каждому frame. Первый stage должен быть дешевым: decode с низким sample rate, low resolution, scene-change detection, person/object detectors, простые visual classifiers, OCR/text metadata, title/category signals. Цель первого stage - candidate generation, а не финальное решение.

Второй stage запускает более сильную frame/clip model или VLM на candidate windows, агрегирует frame scores во временные segments и отправляет uncertain/high-impact cases на human labeling. Active learning должен добирать borderline examples, rare categories и случаи disagreement между metadata и model.

Для launch нужен balanced validation set с realistic prevalence slices, temporal smoothing, minimum segment length, thresholds по product surface, drift monitoring и feedback loop из moderation/appeals. При высоком риске лучше стартовать консервативно и отдельно измерять precision/recall по source domain, region и content type.

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

  • Предложить размечать каждый frame тяжелой VLM.
  • Игнорировать class imbalance и realistic validation prevalence.
  • Использовать один global threshold без учета product risk.
  • Забыть temporal aggregation и segment-level metrics.

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

  • Начните с risk и class imbalance.
  • Опишите two-stage или three-stage cascade, затем labels и metrics.