Типы вопросов на собеседованиях про Трансформеры.
Один из первых постов на канале был про виды кодинг раундов для ML позиций совсем по верхам.
Так как я сам неоднократно проводил такие секции в роли интервьюера, а в начале года еще и активно собеседовался, то решил собрать новый текст на эту тему на основе личного опыта, опыта знакомых и историй читателей, которые уже есть на канале (ищите по тегу #интервью). Такие дисклеймеры делают текст сугубо субъективным и на полноту не претендуют.
В этот раз будет про темы вопросов.
Сюрприз-сюрприз, но почти всегда все сводится к работе с авторегриссонными трансформерами.
Тема 1. Предобработка данных.
Самые далекие от непосредственной работы с моделями вопросы. Такие чаще встречаются у ML SWE или ML Ops-ов (у самих же моделистов это наверняка спросят в теории) и заключатся они в том, чтобы реализовать какой-нибудь алгоритм или пайплайн обработки данных. Например, токенизация текста с помощью BPE.
BPE довольно интуитивен и красив, но реализация требует определенных манипуляций со словарями, списками, обработкой краевых случаев. Посмотреть подробнейший гайд с питонвоской реализацией можно у нашего любимого Andrej Karpathy
Тема 2. Реализация механизма self-attention
Может показаться удивительным, но вопрос "напишите на numpy классический self attention" успешно мигрировал из 2021-2022 (тогда их массово адоптировали) в 2025. При чем иногда даже без изменений. Еще более удивительно, что писать его научились далеко не все и огромное количество кандидатов не всегда могут написать и vanilla вариант.
На самом деле, какой бы простой не была задача, реализованный код - это просто повод к дискуссии. И даже в классической версии всплывает множество вещей, где можно копать: 1) а какой смысл нормировать QK на корень из размерности векторов? 2) а как сделать softmax стабильным 3) а как посчитать Q,K,V с помощью одной матричной операции, ...
Так что готовиться нужно не столько к задаче, сколько к хорошему пониманию каждого кусочка архитектуры. Дьявол всегда в деталях.
Тема 3. Сэмплинг токенов
Greedy Decoding - это хорошо, но нужен только для дебага. На практике используют вероятностные методы, вот и интервьюеры придумали спрашивать другие стратегии сэмплинга. Самый частый сейчас, на моей памяти, это top p. Хорошее референсое решение можно посмотреть тут (на сайте вообще бездонное количество крутых текстов)
Опять же, тут поможет уверенное владение матричными фрейморками (торч, numpy, jax), чтобы быть готовым к любой вариации. И чтобы экзотика типа min p не казалось странной.
Тема 4. Inference Loop
Эта секция на то, чтобы уверенно взаимодействовать с архитектурой, как с черным ящиком. Тензоры на вход, тензоры на выход, но еще надо хранить кэш, прошлые логиты, чего-нибудь еще. Тут тоже помогает детальное знание архитектуры трансформеров и умение писать это самому.
Порешать похожее можно на neetcod-e тут, и в смежных задачах.
Тема 5. ML Debugging
Довольно новая и загадочная вариация (по концепции) интервью. Ведь дебажить можно что угодно. Вам дают ссылку на ноутбук с кодом какой-нибудь сетки или пайплайном и просят найти в них... разные баги. В такой постановке я встречал подобное один раз, это было в биг тех. Дали код GPT2, в котором было сломано все. Модель начинала выдавать NaN-ы после нескольких итераций обучения. Нужно было поправить и добиться плавного падения лосса. Ну и попутно убеждать интервьюера, что говоришь что-то адекватное. Знакомый вытянул похожий вопрос на смежную тему: модель при инференсе выдает на одних и тех же входах разные ответы, устранить все источники недетерминированности.
Как-то так. Happy Learning!
Post #162
4.36K
- 🔥 39
- ❤ 15
- ⚡ 5
- 🍓 3
- 🤔 2
- 🆒 2