К обычному разбору
Тренировка по собеседованиюТехническое собеседованиеWaymo2026-03-05

Waymo: ML System Design

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

Шагов
11
Вопросов
11
Задач
0
1Кейс13 мин

Как сформулировать text-to-scene retrieval задачу

Есть большой архив дорожных сцен автономного автомобиля. По текстовому запросу нужно находить релевантные сегменты, например редкие ситуации с пешеходами или необычным трафиком. Как начать ML System Design?

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

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

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

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

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

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

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

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

Сначала фиксируем unit retrieval: кадр, клип или segment; типы запросов; offline/online latency; top-K; требования к recall. Baseline: metadata/rules + embeddings, потом two-stage retrieval и reranking.

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

Начать нужно с требований. Кто пользователь системы: ML researcher, safety analyst, simulation team? Какие запросы: "pedestrian crossing at night", "unusual roadworks", "left turn with cyclist"? Что возвращаем: отдельные frames, 5-20 секундные clips, route segments или уже размеченные events?

Дальше фиксируем метрики: recall@K для найденных релевантных сцен, precision@K для ручной проверки, latency запроса, freshness индекса, coverage редких сценариев. Для safety-oriented поиска обычно recall важнее, потому что пропустить редкий важный кейс дороже, чем показать лишние кандидаты.

Baseline можно начать с существующих perception metadata: объекты, road type, weather, time, location, scenario tags. Следующий слой - multimodal embeddings: text encoder для query и visual/temporal encoder для клипов. Production-система обычно two-stage: ANN retrieval по embedding index, затем reranker с богатыми признаками.

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

  • Не определить, что именно индексируется: кадр или temporal segment.
  • Сразу уйти в CLIP без требований и baseline по metadata.
  • Оптимизировать только latency и забыть про recall редких safety cases.

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

  • Сначала уточни user, query types, retrieval unit и top-K.
  • Предложи two-stage architecture: candidates by ANN, final quality by reranker.
2Вопрос11 мин

Как использовать текущую AV-систему в scene retrieval

В Waymo уже есть perception, prediction и map stack. Как использовать этот контекст при проектировании поиска дорожных сцен по тексту?

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

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

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

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

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

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

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

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

Текущий AV-stack дает слабые labels и фильтры: объекты, траектории, road graph, weather, time, location, сценарии и версии perception. Эти признаки помогают отбирать кандидатов и объяснять результат.

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

Текущая система автономного автомобиля уже извлекает много полезного до отдельной retrieval-модели. Perception находит пешеходов, машины, велосипедистов, светофоры и полосы. Prediction хранит траектории и маневры. Map stack знает тип дороги, перекрестки, повороты и зоны. Логи содержат время, место, погоду, версию модели и качество сенсоров.

Эти данные дают две вещи. Во-первых, они ускоряют MVP: запрос "pedestrian at night near crosswalk" можно частично обработать metadata-фильтрами. Во-вторых, они помогают обучать и проверять retrieval: existing tags становятся weak labels, а rare scenario buckets становятся срезами качества.

Важно не путать metadata search с финальной мультимодальной моделью. Metadata хорошо ловит заранее известные признаки, а text-to-scene embeddings нужны для более свободных запросов и комбинаций условий. Production-система обычно соединяет оба слоя: фильтры и ANN retrieval отбирают кандидатов, reranker собирает финальный порядок.

3Вопрос9 мин

Как выбрать text encoder для запросов к дорожным сценам

Пользователь пишет запросы вроде "pedestrian crossing at night". Как выбрать и адаптировать text encoder для поиска дорожных сцен?

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

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

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

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

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

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

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

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

Стартует general sentence encoder или CLIP text tower, затем добавляются domain vocabulary, query normalization и fine-tuning на query-segment pairs с hard negatives.

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

Для первого слоя можно взять готовый sentence transformer или text tower мультимодальной модели. Он быстро кодирует короткие запросы и дает baseline для semantic matching. Затем команда проверяет, понимает ли модель доменные слова: crosswalk, lane merge, unprotected left turn, occlusion, cyclist, emergency vehicle.

Если general encoder путает важные детали, его дообучают на внутренних query-segment pairs. Пары приходят из ручной разметки, scenario tags, query logs и synthetic captions после проверки. Hard negatives особенно важны: например, сцена с пешеходом днем должна быть близкой, но ниже сцены с пешеходом ночью, если запрос явно про night.

Перед encoder полезно поставить простую нормализацию запроса: синонимы, доменные термины, spelling, фильтры по времени/локации и language handling. Это снижает нагрузку на модель и делает поведение поиска понятнее.

4Кейс12 мин

Как получить пары текстовый запрос — дорожный сегмент

Для обучения retrieval нужны пары текстовый запрос и релевантный дорожный сегмент из последовательностей изображений. Где взять такие labels и как не утонуть в ручной разметке?

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

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

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

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

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

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

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

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

Источники labels: существующие perception tags, simulation/scenario metadata, human annotations, query logs, synthetic captions от VLM с human review. Для обучения нужны positives, hard negatives и контроль качества разметки.

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

Данные можно собирать несколькими путями. Если в autonomous driving stack уже есть perception outputs, они дают weak labels: pedestrian, cyclist, traffic light, lane change, weather, road type, time of day. Из них можно генерировать текстовые шаблоны и positive pairs.

Более качественный слой - ручная разметка или review редких сценариев. Можно дать annotator'ам clips и набор scenario labels, либо попросить писать natural-language captions. Query logs от внутренних пользователей тоже полезны: если analyst искал "pedestrian at night" и выбрал конкретные clips, это сильный implicit feedback.

VLM может помочь с synthetic captions, но нужен human review и фильтрация. Для retrieval особенно важны hard negatives: похожие сцены с другим объектом, похожая погода без нужного event, соседние temporal segments. Без hard negatives модель будет хорошо ловить общую семантику, но плохо различать важные детали.

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

  • Предположить, что все labels уже есть идеально.
  • Не обсудить hard negatives.
  • Использовать VLM captions как ground truth без проверки.

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

  • Перечисли несколько источников labels и скажи, какие слабые/сильные.
  • Обязательно упомяни hard negative mining.
5Кейс13 мин

Как устроить dual encoder retrieval для последовательностей изображений

Нужно индексировать не одиночные картинки, а последовательности дорожных кадров. Как сделать retrieval-модель и embedding index для text-to-scene search?

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

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

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

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

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

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

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

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

Делаем text encoder и visual/temporal encoder, который агрегирует кадры в segment embedding. Индексируем segment embeddings в ANN/HNSW/ScaNN, а query embedding ищет top-K кандидатов.

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

Базовая архитектура - dual encoder. Text encoder превращает запрос в embedding. Visual side обрабатывает temporal segment: можно взять кадры с шагом, прогнать image encoder, затем агрегировать pooling'ом, temporal transformer/GRU или lightweight attention. Результат - один embedding на segment или несколько embeddings на segment, если нужно покрыть разные моменты.

Индекс строится по segment embeddings. Для большого архива нужен ANN: HNSW, IVF/PQ, ScaNN, FAISS-подходы. Важно хранить metadata рядом с embedding: timestamp, route, weather, perception tags, model version, source clip id. Это помогает фильтровать и rerank.

Обучение - contrastive loss на positive text-segment pairs и negatives. Для temporal данных надо решить window size: 5, 10, 20 секунд. Слишком короткое окно теряет контекст, слишком длинное размывает сигнал и увеличивает стоимость.

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

  • Индексировать каждый frame без temporal aggregation и получить шум.
  • Забыть про размер индекса, versioning и metadata filters.
  • Предложить cross-encoder как первый retrieval stage на весь архив.

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

  • Назови windowing и segment embedding.
  • Разделяй candidate retrieval через ANN и дорогой reranking.
6Вопрос11 мин

Как агрегировать frame embeddings в segment vector

Архив дорожных сцен состоит из последовательностей кадров. Как из кадров получить вектор сегмента для поиска по тексту?

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

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

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

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

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

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

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

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

Сначала выбирается window: например, 5-20 секунд. Кадры кодируются image encoder-ом, затем pooling, attention или temporal model собирает один или несколько segment embeddings.

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

Система сначала выбирает единицу индексации. Для road-scene search удобнее сегмент, а не одиночный кадр: кадр может не показать весь маневр, а слишком длинный клип размывает смысл. Практичный старт - sliding windows по 5-20 секунд с overlap.

Дальше image encoder считает embeddings для выбранных кадров. Самый простой вариант агрегирует их mean/max pooling. Более точный вариант использует temporal attention, transformer или lightweight sequence model, которая понимает порядок кадров и выделяет важный момент внутри сегмента. Иногда сегмент хранит несколько vectors, чтобы не потерять разные события внутри одного окна.

Рядом с segment vector нужно хранить metadata: время, route id, camera, weather, perception tags, map context, версии моделей и quality flags. Эти признаки помогают фильтровать, объяснять выдачу и обучать reranker.

7Вопрос10 мин

Как применять Vision Transformer к последовательности изображений

Vision Transformer обычно работает с 2D image patches. Как перенести такой подход на дорожные video segments?

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

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

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

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

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

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

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

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

Есть три уровня: кодировать кадры отдельно и агрегировать, добавить temporal tokens/positional encoding или использовать video transformer на подвыборке кадров. Выбор ограничивает compute.

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

Самый дешевый путь - применять image ViT к каждому выбранному кадру, брать CLS или pooled embedding и потом агрегировать кадры отдельным temporal layer. Такой вариант проще индексировать и масштабировать на большой архив.

Более связанный вариант добавляет temporal positional encoding и attention между кадрами. Модель видит, что объект появился, пересек дорогу и исчез, а не просто набор похожих картинок. Полный video transformer обрабатывает spatio-temporal tokens, но он быстро становится дорогим по памяти и времени, особенно если архив огромный.

Для retrieval production обычно начинают с экономного stage: sparse frame sampling, cached frame embeddings, segment aggregation и ANN index. Дорогие video transformer или cross-attention модели оставляют для reranking top-K или для offline reindexing критичных срезов.

8Кейс10 мин

Что договорить в retrieval до reranker

До добавления reranker нужно закончить candidate retrieval. Какие решения нужны по embedding index, freshness, фильтрам и quality evaluation?

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

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

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

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

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

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

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

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

Нужно зафиксировать unit индекса, ANN backend, metadata store, reindex cadence, filter semantics, recall@K на labeled queries и fallback, если индекс устарел или пустой.

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

До reranker у системы уже должен быть надежный candidate generator. Команда выбирает, что индексируется: сегмент, событие или несколько windows на поездку. Для каждого элемента хранятся embedding, source clip id, временной интервал, metadata, версия encoder-а и дата индексации.

ANN backend выбирается под масштаб и требования: HNSW/ScaNN/FAISS-подходы, шардирование, compression и metadata filters. Важно заранее определить freshness: как быстро новые поездки попадают в индекс, что происходит при смене версии encoder-а и можно ли смешивать embeddings разных версий.

Quality gate для candidate stage - recall@K на labeled queries и slice recall по редким сценариям. Если нужный segment не попал в top-K, reranker уже не поможет. Поэтому candidate generator отдельно мониторит empty-result rate, index lag, latency и деградацию recall на fixed regression set.

9Кейс12 мин

Как добавить reranker и мониторить деградацию retrieval

После ANN retrieval нужно улучшить качество выдачи и понять, когда система деградирует. Как спроектировать reranker, evaluation и monitoring?

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

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

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

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

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

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

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

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

Reranker берет top-K кандидатов, query, segment embedding, perception metadata и temporal features. Оцениваем nDCG/Recall@K/MRR на labeled queries, мониторим score distributions, embedding drift, zero-result rate и human feedback.

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

Reranker можно сделать как learning-to-rank модель поверх кандидатов: query embedding, segment embedding, similarity scores, perception tags, object counts, weather/time, scenario metadata, temporal features, freshness и quality flags. Более дорогой вариант - cross-encoder/multimodal model для top-50/top-100.

Offline evaluation: curated query set, релевантные clips, nDCG@K, Recall@K, Precision@K, MRR, coverage редких сценариев. Для safety/search задач полезны slice metrics: ночь, дождь, пешеходы, перекрестки, редкие дорожные условия.

Monitoring: распределение query и retrieval scores, embedding drift, доля пустых результатов, latency, index freshness, версии encoder/reranker, human feedback по top-K. Drift сам по себе не доказывает деградацию, но это сигнал для ревью и переоценки на свежем labeled set.

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

  • Не отделить retrieval metrics от latency/index freshness.
  • Считать drift единственной метрикой качества.
  • Не оценивать редкие safety-critical slices.

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

  • Опиши reranker features и expensive top-K reranking.
  • Для мониторинга назови score drift, embedding drift, zero-result rate и human feedback.
10Вопрос11 мин

Какие metadata-признаки добавить в reranker дорожных сцен

ANN retrieval вернул top-K дорожных сегментов. Какие metadata и model signals стоит добавить в reranker, чтобы лучше упорядочить результаты?

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

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

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

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

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

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

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

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

Reranker использует similarity scores, object counts, perception labels, trajectories, map context, weather/time, scenario tags, freshness, quality flags и user/query history.

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

Reranker получает top-K сегментов от ANN и добавляет признаки, которые дорого или неудобно использовать в первом retrieval stage. Базовые признаки - cosine similarity, rank в candidate generator, query metadata и длина сегмента. Дальше идут perception signals: классы объектов, counts, confidence, trajectories, lane changes, braking, occlusion и interactions.

Map и context признаки добавляют смысл: intersection, crosswalk, road type, speed limit, turn type, weather, time of day, location bucket, construction zone. Для качества нужны source flags: свежесть индекса, версия perception, sensor quality, missing metadata и whether segment already reviewed by humans.

Обучить reranker можно на ручной разметке, query logs и pairwise preferences. В выдаче продукту стоит вернуть не только clips, но и причины: совпавшие tags, key frames, confidence и ссылку на исходный segment. Это ускоряет работу инженера, который проверяет найденные сцены.

11Вопрос9 мин

Где bottleneck при генерации simulation data

Для редких дорожных сценариев можно генерировать synthetic/simulation data. Где главный bottleneck и как использовать такие данные в retrieval-системе?

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

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

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

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

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

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

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

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

Bottleneck не только в rendering. Команда задает сценарий, покрывает вариации, проверяет реализм, размечает outcome и контролирует gap между simulation и реальными логами.

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

Simulation помогает закрывать редкие события, но она не создает бесплатную истину. Сначала инженер задает сценарий: кто движется, где находится crosswalk, какая погода, скорость, видимость, поведение других участников. Затем нужно покрыть вариации, отрендерить или проиграть сцену, проверить физическую правдоподобность и записать labels.

Главный bottleneck часто находится в сценарном дизайне и validation. Если synthetic сцены слишком чистые, модель учится на красивых примерах и хуже ищет шумные реальные логи. Если сценарии задаются узко, система переобучается на шаблон и не ловит неожиданные варианты.

Для retrieval такие данные полезны как augmentation и hard negatives: похожие сцены с одним измененным условием помогают модели различать детали запроса. Финальное качество все равно проверяется на реальных логах и human-reviewed редких slices.