Компьютерное зрение

CV на собеседовании (FAANG)

ML Engineer в Meta зарабатывает $350-500k в год. Что отличает их от junior? Не знание архитектур - это гуглится. Умение рассуждать о trade-offs: 'ViT лучше CNN когда данных >10M и есть GPU бюджет, но MobileNetV3 правильный выбор для мобильного деплоя с 100ms бюджетом'. CV-интервью в FAANG - это system design + ML fundamentals + production experience. Эта структура разбирает что именно спрашивают и как отвечать.

  • **Google Photos** - system design вопрос: дублирующиеся фото для 15B изображений; ответ: perceptual hashing (pHash) + FAISS + SimCLR embeddings; обсудить offline vs online, precision/recall trade-off
  • **Tesla Autopilot** - деплой на embedded GPU (Drive Orin, 254 TOPS); INT8 quantization обязательна; latency <10ms для lane detection; on-device retraining невозможен
  • **Meta Content Moderation** - imbalanced dataset: 0.01% harmful content; focal loss + class weights; recall@precision=0.999 как KPI; активное обучение на uncertain samples

Предварительные знания

  • Архитектуры CNN и Vision Transformer и их trade-offs
  • Основы обучения: overfitting, регуляризация, аугментация
  • Production деплой: ONNX, TensorRT, serving и мониторинг из урока 18
  • CV System Design
  • Vision-Language Models

Когда CV-собеседования стали собеседованиями по deep learning

Найм в computer vision резко изменился после 2012 года. Когда AlexNet с большим отрывом выиграл соревнование ImageNet, deep learning почти мгновенно заменил вручную сконструированные признаки, и вопросы к CV-кандидатам изменились вместе с ним. Собеседования перестали крутиться вокруг SIFT, HOG и классических пайплайнов и начали проверять архитектуры CNN, динамику обучения, а позже трансформеры. По мере того как глубокие модели в конце 2010-х входили в продукты в масштабе, крупные компании добавили в CV-интервью раунд system design: от кандидата стали ожидать рассуждений о serving latency, индексировании миллиардов изображений, data drift и retraining loop, а не только об accuracy модели. К началу 2020-х senior CV-интервью обрело узнаваемую форму: trade-offs архитектур, рассуждения об обучении и аугментации, деплой и end-to-end system design при явных ограничениях по latency и стоимости.

Архитектурные вопросы

Типичный вопрос на CV-интервью в Google: «Спроектируйте систему поиска дублирующихся изображений для Google Photos (15 млрд фото, 1.5 млрд пользователей)». Интервьюер ожидает не просто 'использовать CNN', а полноценный system design с trade-offs.

Частые архитектурные вопросы: **Чем ViT лучше CNN?** (global attention vs local receptive field, масштабирование с данными), **Когда ResNet лучше EfficientNet?** (legacy системы, известный поведение), **Как работает transfer learning и когда fine-tune все слои?** (малые данные - freeze backbone, большие - fine-tune все).

На интервью спрашивают: 'Когда следует предпочесть CNN перед ViT?' Какой ответ наиболее полный?

Аугментация данных

Датасет кожных заболеваний: 10,000 изображений, 8 классов. Некоторые классы - 50 образцов. Как предотвратить overfitting? Аугментация - создание новых обучающих примеров из существующих преобразованиями, инвариантными к классу.

Стандартные аугментации: **геометрические** (flip, rotate, crop, resize), **фотометрические** (brightness, contrast, saturation, hue), **advanced** (Cutout, MixUp, CutMix, RandAugment, AutoAugment). Для медицинских изображений: осторожнее с flip (left/right lung важны), color jitter может уничтожить диагностически важный цвет.

АугментацияУлучшение на ImageNetКогда применять
Flip + Crop+1-2%Всегда (baseline)
ColorJitter+0.5-1%Натуральные изображения
MixUp+0.5-1%Большие датасеты, классификация
CutMix+1-1.5%Объекты с чёткими границами
RandAugment+1.5-2%Замена ручного тюнинга аугментаций
AutoAugment+2%Когда есть вычислительный бюджет для поиска

Почему CutMix часто превосходит MixUp для object detection задач?

Деплой CV-моделей

PyTorch-модель обучена, accuracy отличная. Следующий шаг: деплой в продакшн с требованием latency <50ms на GPU. Тренировочный checkpoint напрямую - не вариант: Python overhead, нет батчинга, нет оптимизаций. Нужна цепочка: PyTorch -> ONNX -> TensorRT.

Стек деплоя CV: **ONNX** - аппаратно-независимый формат (export из PyTorch, import в TensorRT/ORT), **TensorRT** - NVIDIA-оптимизация: layer fusion, INT8/FP16 quantization, 2-4x speedup. **ONNX Runtime** - CPU/GPU serving без TensorRT. **Triton Inference Server** - production: dynamic batching, multi-model, gRPC/HTTP.

Команда хочет ускорить inference ResNet50 с 80ms до 20ms на NVIDIA A100 без переобучения. Какой порядок действий?

Trade-offs на интервью

CV-интервью в FAANG - это не 'угадай правильный ответ'. Интервьюер ищет понимание trade-offs. Не 'ViT лучше CNN', а 'ViT лучше CNN когда..., но хуже когда...' Структурированное мышление через trade-offs показывает senior-level мышление.

Ключевые trade-offs которые нужно знать: **precision vs recall** (moderation: низкий FPR важнее высокого recall), **model size vs accuracy** (мобильный vs серверный деплой), **real-time vs batch** (fraud detection vs ночные отчёты), **generalization vs specialization** (zero-shot CLIP vs fine-tuned domain model).

На CV интервью достаточно знать архитектуры (ResNet, ViT, YOLO)

FAANG CV интервью проверяет system design (как масштабировать до 1B изображений), ML fundamentals (bias-variance, overfitting), production знания (monitoring, retraining, quantization) и domain reasoning (precision vs recall в контексте задачи).

Junior знает архитектуры. Senior знает когда какую архитектуру выбрать и почему, как её задеплоить за 50ms, как мониторить в продакшне и что делать при деградации. Интервьюер Google и Meta явно спрашивает 'what are the trade-offs?' - это ключевой сигнал что нужен не правильный ответ, а структурированное рассуждение.

На интервью: 'Команда строит CV-систему для обнаружения рака на снимках. Что важнее: precision или recall?' Лучший ответ:

Ключевые идеи

  • **Архитектуры**: CNN при малых данных (inductive biases); ViT при >10M данных (global attention); MobileNet для mobile; всегда обосновать выбор через trade-offs
  • **Аугментация**: baseline = flip+crop+colorjitter; advanced = MixUp/CutMix/RandAugment; медицинские изображения - осторожно с семантически значимыми преобразованиями
  • **Деплой**: PyTorch -> ONNX -> TensorRT FP16 (2-3x speedup); Triton для batching; мониторить embedding drift + precision/recall на holdout
  • **Trade-offs**: recall vs precision (зависит от cost of FP vs FN); real-time vs batch; on-device vs server; generalization vs specialization

Связанные темы

CV интервью проверяет знания из нескольких областей:

  • CV System Design — System design вопросы - ключевая часть FAANG CV интервью
  • Vision-Language Models — VLM вопросы (CLIP, GPT-4V) всё чаще появляются на senior ML интервью

Вопросы для размышления

  • Интервьюер спрашивает: 'Как построить систему обнаружения поддельных документов для банка (100K загрузок/день, latency <1s)?' Какие компоненты и trade-offs обсудить?
  • Датасет для медицинской CV: 500 изображений рака, 50,000 здоровых. Какие техники аугментации применить и почему CutMix может быть опасен для этой задачи?
  • Модель работает 95% accuracy на тесте, но в продакшне через 6 месяцев accuracy упала до 87%. Как диагностировать причину и что исправить - это классический вопрос на ML Engineer интервью?

Связанные уроки

  • cv-17 — Внутренности Vision Transformer обязательная тема senior CV-интервью
  • cv-15 — Архитектуры детекции (YOLO, DETR) встречаются в system design
  • cv-16 — Self-supervised и ViT pretraining частые вопросы ML-design
  • arch-19-memory-bandwidth — Latency-бюджеты и сжатие моделей требуют знания железа
  • la-01-vectors-intro
CV на собеседовании (FAANG)

0

1

Войти