Как устроена секция "ML Coding
Как устроена секция "ML Coding
"
На первый взгляд, ML Coding звучит как "небольшое упражнение по написанию кода, связанного с ML, но не leetcode". Именно так часто формулируют рекрутеры. На практике же сложность и формат могут сильно варьироваться: от десяти строк на PyTorch до полноценного пайплайна обработки данных. Поэтому первый шаг к успеху - вытащить максимум конкретики ещё до интервью.
Где искать информацию
• У HR или рекрутера, проводящего процесс.
• У знакомых, которые проходили собеседования в эту компанию или работают там.
• На платформах вроде Blind или Glassdoor, где люди делятся отзывами.
После того как вы поняли, какой фреймворк (numpy, PyTorch и т.д.) вероятнее всего потребуется, стоит отточить навыки работы с ним и порешать типовые задачи.
Два типа задач
Все задания на ML Coding можно условно разделить на две большие категории:
замкнутые
и
открытые
.
Замкнутые задачи
Такие вопросы напоминают алгоритмические задачи с leetcode, только из области машинного обучения. У них есть конкретное решение, которое можно легко проверить. Обычно даётся 25–30 минут. Оценка достаточно объективна: важно ясно объяснять ход мыслей, корректно реализовать суть алгоритма и аргументировать каждый шаг. Конкретная тематика зависит от того, насколько стандартизирован процесс найма в компании.
В технологичных стартапах и компаниях среднего размера
часто спрашивают что-то из мира трансформеров. Реальные примеры вопросов:
• Реализовать causal scaled dot product attention на numpy с поддержкой маскирования и dropout. Интерфейс функции:
def scaled_dot_product_attention(query, key, value, dropout_p=0.0,
is_causal=False, scale=None) -> numpy.ndarray:
• Написать Transformer Block на PyTorch по шаблону:
class TransformerBlock(nn.Module):
def __init__(self, model_dim: int, num_heads: int):
super().__init__()
torch.manual_seed(0)
pass
def forward(self, embedded: TensorType[float]) -> TensorType[float]:
torch.manual_seed(0)
pass
• Реализовать nucleus sampling (top-p sampling) для генерации текста.
Подобные задания встречались, например, в Snap. Но это лишь базовый уровень, иногда попадаются и значительно более сложные вещи, вроде:
Реализовать пайплайн подготовки данных для обучения авторегрессионной модели с delay pattern. Предположим, размер кодовой книги равен N. Нужно подготовить входной тензор для модели, затем реализовать forward-проход и вернуть предсказанные логиты формы
[num_codebooks, batch_size, sequence_length, vocab_size]
В крупных компаниях (FAANG, Revolut и подобных)
, где ML Coding является частью проверки фундаментальных знаний, обычно дают реализовать классические алгоритмы ML. Чаще всего предоставляют шаблон кода с уже инициализированными параметрами, а от кандидата требуется дописать саму логику. Примеры таких задач:
• K-means кластеризация на Python.
• Forward/backward для логистической регрессии (обычно для бинарной классификации).
• Наивный Байес.
• Дерево решений.
Наш чат.
Гибридный формат: поиск багов
Иногда встречается вариант, когда почти весь код алгоритма уже написан, и нужно найти в нём ошибки. Например, дана реализация GPT или стека трансформеров, и требуется отыскать все недочёты (скажем, модель не использует маскирование токенов при обучении). Такой формат, по отзывам, практикуется в Яндексе.
Открытые задачи
Открытые задания характерны для стартапов ранних стадий или компаний, где процесс найма ещё не отлажен. Здесь нет единственно верного ответа: даётся размытая постановка задачи, и кандидату предлагается вместе с интервьюером спроектировать решение. По сути, это имитация парного программирования: вы с интервьюером как будто тиммейты, вместе пишете код. Длительность такого раунда может достигать часа и даже больше - стартапы заинтересованы в том, чтобы получить максимум сигнала о кандидате, поскольку ресурсы на поиск ограничены.
Пример задачи из LLM-стартапа:
Напишите функцию, которая генерирует выход для предобученной модели, а также выводит статистику latency/throughput для заданного входа.
Кандидат предлагает ар
Откликнуться в Telegram →
⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.