TGViewer
max.sh max.sh @max_dot_sh · 3.26K subscribers
Post #9 1.96K
Анатомия ML Интервью. Часть 1. ML Coding

1️⃣ML Coding - популярная секция для найма ML инженеров в компаниях всех размеров. Правда что за этим названием скрывается - зачастую очень большая загадка.

HR-ы отписываются, что на этом раунде будет что-то вроде:
include a small ML coding exercise (not leetcode)


На практике же бывает довольно хардово и непредсказуемо.

2️⃣Лучшая стратегия в подготовке:

вытащить максимум конкретики
- от HR
- от знакомых, кто туда собеседовался или там работает
- в отзывах с .teamblind.com или glassdoor-а.

Ну а затем, отточить навыки фреймворка, который скорее всего нужно будет использовать в интервью (numpy, torch, и так далее) и практиковаться в решении задач!

3️⃣Теперь про сами вариации. Их, конечно же, много. Но все вопросы обычно можно разделить на два типа: close ended questions и open ended questions.

Close ended questions, как видно из названия, подразумевают ограниченное количество правильных ответов. То есть тут как с литкодом - вас попросят написать что-то очень модульное и легко тестируемое. На вопрос в среднем отводится 25-30 минут.

По таким вопросам в принципе понятно как оценивать кандидата, поэтому есть высокая степень прогнозируемости исхода: хорошо коммуницировал рассуждения, правильно реализовал суть алгоритма, аргументировал все свои действия - скорее всего все ОК и секция пройдена отлично.

Какой тематики именно будет вопрос - зависит от стандартизированности процесса найма в компании.

*️⃣Если вы собеседуетесь в высокотохнологичный стартап / компанию средних размеров, то это может быть что-то из трансформеров:

Implement causal scaled dot product attention in numpy.
Your function should support masking and dropout. The interface is following:

def scaled_dot_product_attention(query, key, value, dropout_p=0.0,
is_causal=False, scale=None) -> numpy.ndarray:


или

Implement Transformer Block in PyTorch using the following template:

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]:
# Round answer to 4 decimal places
torch.manual_seed(0)
pass

или

Implement nucleus sampling

class NucleusSampler:
"""
## Nucleus Sampler
"""
def __init__(self, p: float, sampler: Sampler):
"""
:param p: is the sum of probabilities of tokens to pick $p$
:param sampler: is the sampler to use for the selected tokens
"""
self.p = p
self.sampler = sampler
# Softmax to compute $P(x_i | x_{1:i-1})$ from the logits
self.softmax = nn.Softmax(dim=-1)

def __call__(self, logits: torch.Tensor):
"""
Sample from logits with Nucleus Sampling
"""


⏩Подобные вопросы, например, мелькали в процессе у Snap-а.

❗️Примеры выше - реальо встречающиеся вопросы на собесах. Но это самая база баз. Иногда бывают и настящие харды, типа

Implement a data preparation pipeline for training an autoregressive model with a delay pattern. Assume that the codebook size is N.

Your goal is to prepare an input tensor for the model. Then, implement the forward function of the model and return the predicted logits with the shape [num_codebooks, batch_size, sequence_length, vocab_size].



*️⃣В компаниях, где ML Coding является частью ML Breadth секции, направленного на проверку фундаметнальных знаний в машинном обучении, часто могут задать вопрос на что-то из классики:

- Реализовать K-means кластеризацию на питоне
- Реализовать forward/backward логистической регрессии (как правило для бинарных задач)
- Реализовать Наивного Байеса
- Реализовать Decision Tree

Обычно вам дадут шаблонный код, в котором могут быть проинициализированы ключевые параметры и остается реализовать именно алгоритм.

⏩Такие вопросы можно встретить в ML интервью в FAANG-ах на рисерч роли или на ML инженеров / Data Scientist-ов в Revolut.

Продолжение в посте ниже ⬇️
ссылка
  • 🔥 13
  • ✍ 7
  • 👍 5
  • ❤ 2
  • 🤡 1
More from @max_dot_sh
  1. Sep 16, 2026Вышел из отпуска и сразу в лондонскую подземку. А тут снова ждет креативная it-шная реклам…
  2. Aug 30, 2026Post #230
  3. Aug 21, 2026По этикету, уходя из хорошего места - найди хорошую замену. Поэтому пост с вакансией Компа…
  4. Aug 17, 2026К слову о конкурсах. И почему в них круто участвовать. Расскажу свою историю. В 2018 году…
  5. Aug 12, 2026🏎 Пост для для любителей контестов. Цель конкурса: разработать систему, которая передает…
  6. Aug 10, 2026Небольшой анекдот-история, чтобы задать правильный ритм на неделю. А кому и настроение под…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →