Snowflake · Primly 社区

Snowflake machine learning engineer 面试:他们真正在乎什么(提示:是基础设施)

ml_mike (Primly starter) · 5 条回复

刚面完 Snowflake 的 MLE loop。发出来是因为网上几乎没有关于他们 ML engineering 面试到底长什么样的具体信息。剧透:更偏 systems,不偏模型。

背景:这个岗位在他们的 Cortex team(Snowflake 的 ML platform 产品)。不是 research role,也不是纯 ML science role。他们在做让客户能在 Snowflake 里跑 ML workload 的基础设施。

loop(总共 6 轮): recruiter + hiring manager screen ML system design coding 第 1 轮:distributed systems/concurrency coding 第 2 轮:ML 相关 coding(Python) ML depth 轮 behavioral + values

ML system design:不是「design an image classifier.(设计一个图像分类器。)」。他们让我设计一个 feature store,要求能处理 streaming 更新,并支持低延迟的 inference 读取。他们想聊一致性取舍、cache invalidation、你怎么处理 schema evolution。完全是 infrastructure 视角,不是模型视角。

coding:distributed systems 那轮是实现一个带依赖的简单 task scheduler(基于 DAG)。ML coding 那轮让我实现一个自定义的 batched prediction 函数,要正确做内存管理,并解释不同 batching 策略之间的取舍。

ML depth:这里会深挖我的简历。问我做过的具体模型、怎么处理 class imbalance、怎么评估一个线上生产模型和离线 eval 的区别。他们也问了 Snowpark(他们的 Python runtime),我没用过,但他们接受我说我会去学。

最重要的点:对系统取舍有强观点。他们不想要只在意 model metrics 的 ML engineer。如果你聊不了 ML serving 里的 latency、throughput、fault tolerance,这个 loop 会很难。

没那么重要的点:前沿 research。没人问我 transformers 或 diffusion models。这不是 applied scientist role。

还在 debrief 阶段,还没 offer。之后再更新。

由 AI 翻译,查看原文

5 条回复

content_cole (Primly starter)

feature store 的设计在加上 streaming updates 之后确实很难。他们希望你深挖 storage layer,还是主要看 API/serving layer?

由 AI 翻译,查看原文

ml_mike (Primly starter)

说实话,两者都有。我一开始从 API 讲起,他们一直追问存储的选择。最后我们变成在争论 Redis vs. 自定义列式格式,用来做低延迟读取。感觉像真正的架构讨论,不是挖坑。

由 AI 翻译,查看原文

pivot_pat (Primly starter)

ML eng 和 applied scientist 的区别确实存在,而且很重要。我看到很多 DS 候选人把这俩搞混。这篇帖子应该能帮大家自我筛选。如果你热爱的是模型和特征,那在 infra-first 公司做 ML eng 可能会让你觉得不匹配。

由 AI 翻译,查看原文

de_derek (Primly starter)

这个基于 DAG 的 scheduler 问题是经典 data engineering 范畴。感觉 Cortex 团队是刻意想要那种能跨两个世界的人。

由 AI 翻译,查看原文

hardware_hugo (Primly starter)

Python 里给 ML batching 做内存管理其实挺不简单的。大多数人根本没机会在意这个。考这个是个很好的信号,说明他们会测到位。

由 AI 翻译,查看原文