Разбор собеседования по машинному обучению в Озон 2025

Введение
На собеседованиях по машинному обучению (ML) работодатели часто проверяют не только теоретические знания, но и умение обосновывать свои решения. Рассмотрим подробно вопросы из интервью в Озон и разберём, как на них лучше отвечать.
t.me/machinelearning_interview – в у себя телеграм канале, мы разбираем актуальные вопросы с собеседований по машинному обучению, ds, математике и python.
Начнем.
1. Какие методы ускорения обучения на множестве GPU-карт вы знаете?
Ответ:
- Data Parallelism (Параллелизм данных): Разделение набора данных между несколькими устройствами. Каждый GPU обрабатывает свою часть, затем градиенты синхронизируются.
- Model Parallelism (Параллелизм модели): Разделение весов модели по устройствам, актуально для сверхбольших моделей.
- Pipeline Parallelism (Конвейерный параллелизм): Разделение обучения на этапы, каждый этап обрабатывается на отдельном GPU.
- Mixed-Precision Training: Использование 16-битных чисел (FP16) вместо 32-битных (FP32) для ускорения вычислений и уменьшения потребления памяти.
- Gradient Accumulation: Позволяет эффективно использовать большие батчи без необходимости увеличивать память.
Рекомендация:
Приводите примеры из своего опыта (например, «Мы использовали DDP (Distributed Data Parallel) в PyTorch и добились ускорения в 4 раза на кластере из 8 GPU»).
2. Если мы обучили BERT на последовательностях длиной 512 токенов, что произойдёт, если подать на вход модели текст в 1024 токенов?
Ответ:
- Ошибка при инференсе: Модель будет ожидать вход размером 512 токенов. Если размеры несовместимы, возникнет ошибка.
- Truncation (усечение): Если включена автоматическая обрезка, вход будет урезан до 512 токенов.
- Fine-tuning: Чтобы обрабатывать 1024 токена, нужно дообучить модель с новой максимальной длиной последовательности и пересоздать позиционные эмбеддинги.
Рекомендация:
Укажите, что важно согласовывать длину последовательностей с архитектурой модели и использовать токенизатор с параметром truncation=True
.
3. Что такое аккумулиция градиентов (gradient accumulation) и зачем она нужна? Как она влияет на Batch Normalization?
Ответ:
- Gradient Accumulation: Техника, при которой градиенты суммируются несколько шагов перед обновлением весов. Это эффективно при ограниченной памяти.
- Преимущества: Увеличение эффективного размера батча, стабилизация обучения.
- Влияние на Batch Normalization: BN использует статистику внутри батча. При аккумулировании градиентов статистика будет основана на меньших мини-батчах, что может привести к менее стабильному обучению. Решением может быть замена на Layer Normalization.
Рекомендация:
На собеседовании важно объяснить баланс между эффективным размером батча и стабильностью обучения.
4. Какие виды оптимизации инференса моделей вы знаете?
Ответ:
- Quantization: Снижение разрядности весов (например, INT8 вместо FP32), что ускоряет вычисления.
- Pruning: Удаление малозначимых весов для уменьшения размера модели.
- Knowledge Distillation: Обучение небольшой модели (студента) на основе большой (учителя).
- ONNX и TensorRT: Использование оптимизированных форматов и фреймворков для ускорения инференса.
Рекомендация:
Подчеркните практические примеры: «Оптимизировали BERT с помощью ONNX и добились 2-кратного ускорения».
5. Что такое переобучение (overfitting) и как с ним бороться в различных моделях?
Ответ:
- Overfitting: Явление, когда модель хорошо запоминает тренировочные данные, но плохо обобщает новые примеры.
- Методы борьбы:
- Регуляризация (L1/L2): Уменьшает излишние веса.
- Dropout: Отключает случайные нейроны во время обучения.
- Data Augmentation: Создание новых примеров из существующих данных.
- Early Stopping: Прекращение обучения при отсутствии улучшений.
Рекомендация:
Приведите пример из опыта: «Мы уменьшили переобучение в CNN для распознавания изображений, добавив Data Augmentation и Early Stopping».
Теперь решим практическую задачу на вероятность.
6. Какова вероятность выжить в задаче с револьвером, если после холостого выстрела остаются 2 патрона в 6-зарядном барабане?
Предположим, что у нас есть револьвер с 6-зарядным барабаном, из которого один выстрел холостой, а оставшиеся 5 патронов — снаряжены.
Задача — вычислить вероятность выжить в такой ситуации. 1. После холостого выстрела остаются 5 патронов в барабане. Из этих 5 патронов 2 боевых и 3 холостых.
Задача заключается в том, чтобы вычислить вероятность того, что второй (и возможно последний) выстрел будет холостым (то есть, выживем). 2. Всего в барабане остались 5 патронов: 3 холостых и 2 боевых.
Для решения задачи рассмотрим следующие шаги:
- Исходное состояние:
В 6-зарядном барабане находится 2 патрона (боевых) и 4 пустых гнезда. - Первый выстрел (холостой):
При случайном вращении барабана вероятность выбрать пустое гнездо равна 4/6 (≈66,67 %). Факт холостого выстрела означает, что текущее гнездо точно пустое. - Оставшееся состояние:
После первого выстрела остаётся 5 гнезд, из которых:- 2 содержат патроны,
- 3 — пустые.
- Вероятность выжить при следующем выстреле:
Если второй выстрел производится без повторного вращения (т.е. барабан сдвигается на одно гнездо), вероятность, что следующее гнездо окажется пустым, равна отношению числа оставшихся пустых гнезд к общему числу оставшихся гнезд:P(выжить)=35=60%P(\text{выжить}) = \frac{3}{5} = 60\%P(выжить)=53=60%
Таким образом, при условии, что после холостого выстрела барабан не вращается повторно, шанс выжить (то есть получить пустое гнездо на следующем выстреле) составляет 60%.

- Опиши процесс прохождения текста через трансформер (от токенизации до формул самовнимания):
- Токенизация: Исходный текст преобразуется в токены (слова или подслова). Обычно используется BPE (Byte Pair Encoding) или SentencePiece.
- Embedding: Каждый токен отображается в векторное пространство через слой эмбеддингов.
- Добавление позиций (Positional Encoding): Так как трансформер не учитывает порядок, добавляются позиционные эмбеддинги.
- Многоголовое внимание (Multi-head Attention): Каждый токен сравнивается со всеми другими с помощью механизмов Query, Key, Value. Формула внимания:
- Feed Forward слой: Нелинейное преобразование через полносвязный слой.
- Residual Connections и Layer Normalization: Используются для стабилизации обучения.
- Выходной слой: Полученные представления передаются в классификатор или декодер.
- Как обучить токенизатор?
- Собрать корпус текстов.
- Выбрать алгоритм токенизации (например, BPE, WordPiece, SentencePiece).
- Обучить токенизатор, определив частые подстроки.
- Сохранить словарь (vocab) и правила разбиения.
- Принцип работы линейной квантизации и нюансы в LLM:
- Линейная квантизация — уменьшение точности чисел (например, с float32 до int8).
- Применяется: перед или после обучения (Post-training quantization, Quantization-aware training).
- Нюансы: Возможна потеря точности, особенно в слоях внимания.
- Локальное тестирование модели в Triton:
- Установить NVIDIA Triton Inference Server.
- Подготовить конфигурацию модели (
config.pbtxt
). - Запустить сервер локально и выполнить запрос через клиентский SDK.
- Сколько памяти нужно для модели весом 1 ГБ?
- Вес модели (1 ГБ) — это параметры (float32 по 4 байта). Память для обучения примерно в 3–5 раз больше (3–5 ГБ) из-за градиентов и оптимизаторов.
- Отличия Batch Normalization и Layer Normalization:
- Batch Norm: Нормализация по измерению batch (зависит от размера батча). Хороша для CNN.
- Layer Norm: Нормализация по измерению признаков. Подходит для трансформеров.
- Почему некоторые нейросети инвариантны к размеру входа?
- Использование сверточных сетей (CNN) или архитектур с глобальным пуллингом.
- Пример: CNN одинаково обрабатывает изображения 224×224 и 256×256.
- BatchNorm при распределённом обучении:
- В распределённом обучении вычисляются глобальные статистики по всем устройствам.
- Проблемы: рассогласование статистик, решается SyncBatchNorm.
- Что такое формат ONNX:
- Open Neural Network Exchange (ONNX) — открытый формат для передачи моделей между фреймворками.
- Обратить внимание на совместимость операторов и версию ONNX.
- Почему бывают модели overconfident и как с этим бороться?
- Причина: Переобучение или отсутствие регуляризации.
- Решения: Температурное сглаживание, ансамблирование моделей.
- Как решить задачу кластеризации:
- Алгоритмы: K-means, DBSCAN, Mean-Shift.
- Метрики: Silhouette Score, Davies-Bouldin Index.
Заключение
Для успешного прохождения технического собеседования важно:
- Говорить чётко и по делу, приводя примеры из собственного опыта.
- Пояснять не только теорию, но и практическое значение методов.
- Подчёркивать понимание баланса между теорией и производительностью.
Подготовьтесь к подобным вопросам заранее, и успех на собеседовании будет вам обеспечен!