PyTorch: вопросы на собеседовании
Вопросы и ответы по PyTorch: подготовка, примеры и типичные ошибки.
Проверьте себя по PyTorch: 5 вопросов, ~10 минут
Вопросов: 41. Частые идут первыми, сложные возвращаются на повторение.
- Как работает система autograd в PyTorch? Объясните
requires_grad,backward()и граф вычислений.Senior· спрашивают почти всегда· полный разбор — Jobs/Boost - Что такое
DataLoaderв PyTorch и какие параметры управляют батчингом, перемешиванием и параллельной загрузкой?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - Зачем нужен
optimizer.zero_grad()и почему его необходимо вызывать перед каждым обратным проходом?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - В каких data/AI-задачах PyTorch даёт реальный выигрыш, а где лучше выбрать другой инструмент или более простой pipeline?Middle· спрашивают почти всегда
- Как сохранять и загружать веса модели в PyTorch (
state_dictvs полная модель)?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost - Объясните разницу между режимами
model.train()иmodel.eval().Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - Объясните batch normalization — что она делает и как реализована в PyTorch?Middle
- Как перемещать модель и тензоры между CPU и GPU в PyTorch?Junior· полный разбор — Jobs/Boost
- Как реализовать кастомную функцию потерь в PyTorch?Middle
- Как реализовать кастомный слой
nn.Moduleв PyTorch?Middle· полный разбор — Jobs/Boost - Как работает dropout в PyTorch и как его поведение различается во время обучения и инференса?Middle· полный разбор — Jobs/Boost
- В чём разница между динамическим графом вычислений PyTorch и статическим графом TensorFlow?Middle
- Как реализовать early stopping в цикле обучения PyTorch?Middle· полный разбор — Jobs/Boost
- Как работает
torch.nn.Embeddingи когда его следует использовать?Middle· полный разбор — Jobs/Boost - Как реализовать gradient accumulation в PyTorch и зачем это нужно?Middle
- Что такое gradient clipping и почему это важно при обучении RNN/трансформеров?Middle· полный разбор — Jobs/Boost
- Как проверять корректность решения на PyTorch, а не только успешное выполнение кода?Senior· полный разбор — Jobs/Boost
- Представьте, pipeline на PyTorch даёт хорошие результаты в dev, но плохо работает на новых данных. Как вы будете разбираться?Senior
- Как сравнить eager, graph/compiled execution и trade-offs production serving?Senior· полный разбор — Jobs/Boost
- Какие ключевые абстракции PyTorch нужно понимать, чтобы не получать формально рабочие, но неверные результаты?Middle· полный разбор — Jobs/Boost
- Как сравнить PyTorch с альтернативами по качеству, скорости экспериментов, масштабированию, воспроизводимости и production-интеграции?Senior· полный разбор — Jobs/Boost
- Какие риски есть у PyTorch: data leakage, неверная оценка качества, memory usage, latency, cost, drift или observability?Senior
- Какие ошибки делают команды, когда переносят notebook/prototype-подход на production data/AI pipeline?Senior· полный разбор — Jobs/Boost
- Что такое tensor в PyTorch и чем он отличается от массива NumPy?Junior· полный разбор — Jobs/Boost
- Что такое transfer learning в PyTorch и как заморозить слои предобученной модели?Middle
- Что такое
torch.cuda.ampи как mixed-precision training улучшает производительность?Senior - Объясните класс
Datasetв PyTorch — как реализовать кастомный датасет с методами__len__и__getitem__?Junior· полный разбор — Jobs/Boost - Чем
DataParallelотличается отDistributedDataParallel(DDP)?Senior - Как отлаживать NaN-потери во время обучения в PyTorch?Senior· полный разбор — Jobs/Boost
- Какие существуют техники для снижения использования GPU-памяти во время обучения?Senior· полный разбор — Jobs/Boost
- В чём разница между
nn.Moduleиnn.functional?Junior - В чём разница между
torch.no_grad()иtorch.inference_mode()?Senior· полный разбор — Jobs/Boost - Как профилировать модель PyTorch для выявления узких мест по памяти и скорости?Senior
- Расскажите о случае, когда вы использовали PyTorch для pipeline, evaluation, optimization, deployment или debugging.Middle· полный разбор — Jobs/Boost
- Что такое FSDP и когда он нужен вместо DDP?Senior· полный разбор — Jobs/Boost
- Что такое quantization и как она влияет на inference latency/accuracy?Middle
- В чём разница между
view()иreshape()в PyTorch?Middle· полный разбор — Jobs/Boost - Как работает механизм Attention и как он реализован в PyTorch?Middle· полный разбор — Jobs/Boost
- Что такое hooks в PyTorch и как с их помощью инспектировать промежуточные активации?Middle· полный разбор — Jobs/Boost
- Что такое
torch.compile()(представлен в PyTorch 2.0) и какие преимущества по производительности он даёт?Senior - Что такое
torch.jit.script/ TorchScript и когда его использовать для деплоя в продакшен?Senior· полный разбор — Jobs/Boost