Как сформулировать 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.
Как использовать текущую 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 собирает финальный порядок.
Как выбрать 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. Это снижает нагрузку на модель и делает поведение поиска понятнее.
Как получить пары текстовый запрос — дорожный сегмент
Для обучения 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.
Как устроить 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.
Как агрегировать 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.
Как применять 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 критичных срезов.
Что договорить в 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.
Как добавить 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.
Какие 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. Это ускоряет работу инженера, который проверяет найденные сцены.
Где 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.