深度学习平台研发工程师面经
完整信息
本篇目录
27届校招面经:小鹏集团 - 深度学习平台研发工程师(含Coding)📍 岗位背景:小鹏集团 - 【27届校招】深度学习平台研发工程师💻 面试形式:飞书视频面试(含在线代码考核)🎯 考察核心:AI Infra 基建、分布式训练、云原生调度、大模型推理优化、图论算法。
刚面完小鹏的深度学习平台研发,趁热打铁复盘一下。平台研发岗和纯算法岗完全不同,极其看重底层原理、系统架构能力和工程落地经验。以下是被疯狂追问的几个核心方向:
一、 分布式训练与 GPU 资源调度(深挖重点)
- DDP(Distributed Data Parallel)底层机制
考点:多卡训练是怎么同步梯度的?
复盘:重点讲了 DDP 的多进程架构(无主卡概念)和 Ring All-Reduce 机制。面试官追问了“梯度分桶(Bucketing)与计算通信重叠”是怎么实现的,这里必须懂反向传播过程中如何隐藏通信延迟。
避坑:千万别把 DDP 和 DP(DataParallel)搞混,强调 DDP 绕开了 GIL 锁,且不节省单卡显存。若提梯度累积,要懂 no_sync()。
- GPU 架构与 LLM 推理瓶颈
考点:H100 和 B200 有什么区别?LLM 推理瓶颈在哪?
复盘:要能清晰区分 Prefill(计算密集) 和 Decode(带宽密集) 两个阶段。对比了 Hopper 和 Blackwell,提到了双芯片封装带来的 HBM 带宽提升(8 TB/s),以及 Blackwell 原生支持 FP4 精度对吞吐量的质变(但要评估精度折损)。
- K8s 里的 GPU 调度
延伸考点:平台怎么管理异构算力?(顺理成章问到了云原生)
二、 云原生底座与虚拟化(平台建设基石)
- K8s 的 Pod 内部创建与调度链路
复盘:从 kubectl 提交 YAML -> API Server 鉴权准入 -> etcd 存储 -> Scheduler 选节点 -> kubelet 调 CRI 起容器。顺带问了 Pause 容器的作用(共享网络命名空间)。
- K8s、KVM 和 KubeVirt 的关系
考点:深度学习平台有时需要强隔离环境(比如跑特定的老旧框架),怎么让 K8s 管虚拟机?
复盘:引出了 KubeVirt。核心逻辑是“VM inside Pod”,通过 CRD 扩展 K8s API,把 KVM 虚拟机包装在 Pod 里运行。顺便对比了 Kata Containers(让容器变得像 VM 提供强隔离)。
三、 大模型接口与工程化(平台服务化)
- 流式(Stream)与非流式(Non-stream)的工程差异
考点:平台对外提供推理服务,接口怎么设计?
复盘:非流式返回一次性 JSON,流式基于 SSE(Server-Sent Events) 持续推送 delta.content。
工程坑点:流式下的 usage 字段默认隐藏,必须显式开启 stream_options;流式下的输出审核是个大坑(Chunk 级别语义不完整,导致安全拦截失效,需要端到端的拼接校验)。
- 平台合规与安全审计
聊到了类似 OpenAI Moderation 的接口。如果平台做网关,输入输出过滤怎么做?顺带探讨了 Adversarial Prompt(对抗性提示词)如何通过编码/自重建绕过单纯的表层语义审查。
四、 手撕代码:Coding 环节(图论)题目:DAG(有向无环图)的拓扑排序。
场景:极其经典的平台调度算法题(节点依赖关系、任务执行顺序)。
解法:Kahn 算法(BFS)。
邻接表建图,统计每个节点的入度。入度为 0 的节点入队。出队并将邻居入度减 1,若变 0 则继续入队。防御性编程:如果最后遍历的节点数小于总节点数,说明有环,记得返回或输出特定标志(视题目而定)。💡 泣血教训:在线机考千万别只写 System.out.println("hello world") 骗编译器,一定要老老实实写 Scanner 读取输入、处理输入!测试用例是会亮红灯的。
五、 面试官考察维度与心得(Top 3 建议)工程落地 > 纸上谈兵:平台研发极度看重“平台化思维”。你做的项目能不能抽象给全公司用?高可用、容灾、集群扩容你是怎么设计的?
开源与实习的结合:车企大厂(小鹏)对基础架构的要求很高,极少硬卡学历或大厂背景,更看重综合匹配度。最高级的简历故事线:在开源社区(如 K8s / vLLM)发现问题 -> 技术论坛/博客沉淀思考 -> 在实际企业项目中落地验证。这套组合拳非常加分。
坦诚面对盲区:面试官审美各异,有人喜欢造轮子的,有人喜欢干实事的。遇到不会的底层知识(比如具体的 CUDA 算子优化),大方承认并讲出你的排查思路,比硬编强一万倍。
最后:飞书面试记得不要用豆包/抖音账号登录,以免影响入职背调;提前调试好电脑摄像头。祝各位牛友都能顺利拿下心仪的 Infra Offer!
本篇目录
当前问题0111
- 01
多卡训练是怎么同步梯度的?
- 02
面试官追问了“梯度分桶(Bucketing)与计算通信重叠”是怎么实现的
- 03
H100 和 B200 有什么区别?LLM 推理瓶颈在哪?
- 04
平台怎么管理异构算力?
- 05
K8s 的 Pod 内部创建与调度链路
- 06
顺带问了 Pause 容器的作用(共享网络命名空间)
- 07
深度学习平台有时需要强隔离环境(比如跑特定的老旧框架),怎么让 K8s 管虚拟机?
- 08
流式(Stream)与非流式(Non-stream)的工程差异
- 09
如果平台做网关,输入输出过滤怎么做?
- 10
顺带探讨了 Adversarial Prompt(对抗性提示词)如何通过编码/自重建绕过单纯的表层语义审查
- 11
DAG(有向无环图)的拓扑排序