AI infra 人才库面经总结

ai infra八股:
1- 给定训练所需的Tokens,怎么估计模型训练所需的完整时间?
2- Prefill和Decode阶段各有什么优化技术?
3- 什么是Two-batch overlap,什么场景Two-batch overlap是负优化?
4- megatron-lm中通信优化怎么做?
5- 多机PD分离会有KV cache transfer开销,为什么还要做PD分离?
6- muon和AdamW的pretrain和posttrain为什么不能混用?
7- 如何看待跨SM的PD分离和AF分离?
8- cuda的global memory和shared memory访存分别需要注意什么?
9- deepseek-V3的优化点
10- deepseek-DSA和NSA,MoBA的区别
11- nccl中的通信源语有哪些?all-reduce参数更新一次参数需要几次通信?
12- 在小数据量场景使用NVSHMEM,每个GPU直接读取其他GPU的数据,在本地reduce,相比ring all-reduce的好处
13- 训练时如何设计超长序列下的并行
14- 将Ampere架构的算子适配到Hopper架构的卡上,你会对哪些地方进行升级改造?
全部评论
1. 训练时间估算 时间 ∝ 总FLOPs / (算力FP8/FP16 × 利用率) 总FLOPs ≈ 6 × 参数 × Token数 再除以单卡算力、并行数、利用率,就是时长。 ​ 2. Prefill / Decode 优化 ​ - Prefill:长序列并行、FlashAttention、分块、算子融合、向量化 ​ - Decode:KV cache、连续Batch、PagedAttention、Speculative Decoding ​ 3. Two-batch overlap ​ - 同时跑两个微批次,计算/通信重叠 ​ - 负优化:计算太快、通信太小、显存不够、调度 overhead 盖过收益 ​ 4. Megatron-LM 通信优化 TP+PP+DP三维并行; 重叠通信计算; 分桶AllReduce; 激活重计算; 减少跨节点通信量。 ​ 5. PD分离(PP+DP)为什么要KV transfer 为了流水线+数据并行一起用,提高吞吐; 虽然有KV拷贝成本,但整体能堆更大Batch、更高利用率。 ​ 6. MuON / AdamW 不能混用 优化器状态、动量、更新逻辑完全不兼容; 预训练用一个,微调换另一个,状态不匹配,直接训崩/不收敛。 ​ 7. 跨SM PD / AF 分离 核心:拆任务、提高 occupancy、隐藏延迟; PD:并行度拆分更干净; AF:聚焦注意力/前馈访存与计算重叠; 看模型结构、Kernel瓶颈选。 ​ 8. CUDA Global / Shared 注意 ​ - Global:对齐、连续访问、合并访存、少随机读、用L2缓存 ​ - Shared:防bank conflict、分块复用、同步_sync、容量控制 ​ 9. DeepSeek-V3 优化点 高效架构+长序列支持; 优化Attention/FFN计算; 更好的并行策略; 推理侧低延迟高吞吐。 ​ 10. DeepSeek-DSA/NSA/MoBA ​ - DSA:领域稀疏注意力 ​ - NSA:神经稀疏注意力 ​ - MoBA:混合专家注意力 核心都是稀疏化、省计算、扩容量。 ​ 11. NCCL 原语 & AllReduce 次数 原语:Send/Recv、Broadcast、Reduce、AllGather、ReduceScatter、AllReduce Ring AllReduce:2次(ReduceScatter + AllGather)。 ​ 12. 小数据量 NVSHMEM vs Ring AllReduce 少了Ring多跳延迟; 直接GPU-GPU读+本地Reduce; 小数据下延迟更低、更简单。 ​ 13. 超长序列训练并行 TP+PP+CP(上下文并行)+ ZeRO; 分块Attention、分块FFN; 激活重算+KV复用; 控制通信量。 ​ 14. Ampere → Hopper 算子升级 - 用TF32、FP8、新指令 ​ - 适配TMA、异步拷贝 ​ - 优化Warp调度、 occupancy ​ - 重写Attention/MatMul,用Hopper专属优化
2 回复 分享
发布于 03-03 11:29 浙江
不是,你这是校招还是暑期兄弟,这么难?
点赞 回复 分享
发布于 03-12 00:03 北京

相关推荐

04-30 08:01
东南大学 C++
一、基本情况与工作意愿1.你先做个简单的自我介绍。2.你在字节实习时的作息是怎样的?3.早上九点、晚上十点到十一点下班,这种工作强度你能接受吗?________________________________________二、字节实习项目:特征平台 / 缓存 / SQL 优化4.你做的三档 TTL 分层缓存(2 秒 / 10 秒 / 90 秒)是怎么设计出来的?有数据支撑吗?5.如果业务场景变化了,这些缓存时间你怎么动态调整?6.你这里用到的 concurrent hashmap / unordered map,是加锁实现还是无锁实现?7.你提到的 SQL 签名化、UNION ALL 合并查询、事件驱动失效,这整套优化具体是怎么做的?8.你们的缓存是自己实现的,还是用现成组件,比如 Redis / Memcached?9.这里“事件驱动失效”里的事件来源是什么?触发缓存更新的时机是什么?10.你怎么保证这个事件回调一定成功?如果失败了,会不会导致缓存和数据库不一致?11.如果 SQL 的字段顺序不一样,还能不能归为同一类查询?12.你这些优化效果的数据是怎么采集出来的?13.除了缓存优化,你们还做过哪些性能优化?14.如果现在让你重新设计这套缓存框架,你觉得还有哪些可优化空间?________________________________________三、并发 / 网络模型 / 线程池15.在你的项目里,水平触发和边缘触发是怎么选的?各自适合什么场景?16.你动态线程池的扩容和缩容策略是什么?17.你怎么避免线程频繁创建带来的开销?18.如果线程池队列满了,或者任务队列也满了,你怎么处理?19.遇到突发流量时,你最保底想保证什么?________________________________________四、服务端 / Agent / AI 编程工具22.你做过服务端开发吗?你更偏服务端还是客户端?23.你还做过 Agent 项目,是自己写的还是 AI 辅助写的?24.你现在常用哪些 AI 编程工具?体验怎么样?25.你会对 AI 编程产生危机感吗?26.这些 AI 使用能力基本都是你自己学的吗?________________________________________五、学习能力 / 解决问题能力27.你有没有在一两周内快速学习一项新技术的经历?28.你成长过程中,有没有一个印象很深、最后被你自己解决掉的技术难点?29.你平时除了搜索、看视频,还会通过哪些方式学习或定位问题?30.当你面对源码时,你是怎么理解和真正学会它的?________________________________________六、工程素质 / 团队协作 / 技术关注31.你认为一个好的工程师,除了技术能力,还需要具备哪些素质?32.你们之前团队是怎么做技术分享和技术沉淀的?33.你自己分享过什么内容?34.你会经常关注新技术吗?为什么目前更多停留在“表面了解”这一层?35.你觉得“了解到能用”就够了吗?还是应该继续深挖原理?
点赞 评论 收藏
分享
评论
10
39
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务