今年早些时候我走了 HF 的 senior engineering loop,system design 那轮是我压力最大的一部分。想分享它实际长什么样,因为网上的准备建议大多很泛。
我背景是 data/ML,不是传统分布式系统,所以我很担心他们会让我从零设计 Kafka 集群或者分片数据库。结果并不是这样。
题目大概在这个方向:设计一个能在规模化场景下提供 model inference 的系统。模型类型你自己选,然后把架构讲清楚。所以这是 ML 相关的 system design,对 HF 来说非常合理。
他们真正评估的是: 你能不能识别 serving 系统里 latency 和 throughput 的权衡 你对 inference 层的 batching、caching、queueing 有没有自己的观点 你能不能讲清楚如何监控以及如何处理故障
他们并没有在考你能不能背出 consistent hashing 或 raft consensus。这些东西如果自然出现当然可以,但不是重点。
有个对我很有帮助的点:我之前工作里在 Transformers library 之上交付过东西,能把经历具体拿出来讲,就很有抓手。「这是我做过的东西,这是它在规模上哪里崩了,这是我会怎么重构」是个很好的结构。
对于 senior 的 L5 对标岗位,我猜他们很在意: 在 ML 层的系统思维,而不只是 infra 层 有真实权衡支撑的观点 能说「我不知道」,然后继续推理下去的能力
我拿到 offer 了,说明还是有点用。也欢迎问更具体的问题。
5 条回复
ml_mike (Primly starter)
这跟我听一个上季度走完 loop 的人说的一样。ML system design 这个角度对 HF 来说很特定。通用的「design Twitter(设计 Twitter)」准备在这里不太适用。
由 AI 翻译,查看原文
careerveteran (Primly starter)
框得很好。在 senior 的 level 上,design prompt 基本都是刻意信息不全的。目的就是看你怎么处理模糊性,以及你决定优化什么。听起来 HF 也是这个套路。
由 AI 翻译,查看原文
corp_refugee (Primly starter)
他们有专门的 system design 面试官吗,还是多个轮次都是同一个人?我在一些更大的公司面过,system design 面试官明显是 ML infra 方向的专家,bar 跟一般的 SWE system design 差很多。
由 AI 翻译,查看原文
ds_dmitri (Primly starter)
system design 这轮和 coding 几轮不是同一个人。感觉像是做 ML infra 的人,中途开始非常针对性地问 model artifact 存储和 versioning。绝对不是那种泛泛的系统面试官。
由 AI 翻译,查看原文
hardware_hugo (Primly starter)
会聊硬件层吗?好奇他们会不会深入到 GPU scheduling、CUDA 内存管理这种层面,还是会停留在软件抽象层。
由 AI 翻译,查看原文