欢迎大家来到【分布式训练与工程优化面试频道】,本频道共收集了26道高频面试考题,每篇文章即是一道高频考题,欢迎大家学习与使用。本频道的内容会不断更新,且会长期维护,有问题随时找站长反馈即可。另外,本频道面试考题最终会汇总成《大模型高频面试100题》,大家在网上搜索“大模型高频面试100题”或者“面试天下网”即可找到这些面试题。目前,总共收录88道高频面试考题。
这些面试考题,初看是面试八股文,背一下即可;再看则是一份职业规划,了解大模型领域的四大细分方向,你可以明确自己的职业发展,选择感兴趣的方向深入挖掘,国内头部大模型公司普遍在招 CUDA 方向的工程师,频道二则是你的关注热点;三看则是一份知识图谱,帮你构建自己的知识体系,你会发现每一道面试题凝聚的都是重点枢纽知识,可以四通八达引出更多的知识点形成一大块知识。
站长提醒:在读书的时候,如果带着问题去读,那么学习效果是最好的。道理类似,面试题并不是仅限于面试前的突击背题,而是贯穿学习和职业生涯。对此,我深有体会,虽然我做深度学习和大模型多年,积累了不少的开发实战经验,但是当我整理和校对这些面试题的时候,依然有很多收获。一个东西,你只有自己切身使用过,感觉好才会分享给别人。这些面试题目都是我亲自整理,我感觉真的有价值,所以才分享给大家。
数据并行(ZeRO)与模型并行的简单介绍
ZeRO-3 为什么通信开销最大?
为什么优化器状态占那么多显存?
ZeRO-3 和模型并行有什么区别?
ZeRO-1、ZeRO-2、ZeRO-3 到底省了什么显存?用直观的显存分片图,看懂 ZeRO-1 / ZeRO-2 / ZeRO-3 到底省了什么?
FlashAttention 是什么?FlashAttention 和 PagedAttention 有什么区别?
在大模型推理中,KV Cache 的 CUDA 管理是一个关键问题。PagedAttention 的 kernel 相比传统 Attention kernel,在显存访问模式上有什么不同?它为什么能提升显存利用率和吞吐?
GPU的kernel到底是什么?kernel和算子的关系是什么?kernel和推理引擎的关系是什么?
FlashAttention 相比标准 Attention 在 CUDA 实现层面做了哪些关键优化?它为什么能同时降低显存占用和提升计算效率?请从 tiling、shared memory、online softmax 等角度说明。
在 CUDA 中,什么是 warp divergence?它为什么会拖慢 kernel?在 Transformer 类模型的自定义算子中,哪些地方容易出现 warp divergence,你会怎么避免?
如果让你从零设计一个支持多机多卡的大模型训练系统,你会如何选择并行策略、显存优化方案和通信后端?需要重点考虑哪些工程问题?
训练大模型时出现 OOM(显存不足),你会从哪些方向排查和优化?请按优先级给出你的思路。
分布式训练中,通信瓶颈通常出现在哪些环节?All-Reduce、All-Gather、Reduce-Scatter 分别用在什么并行策略里?如何判断是计算受限还是通信受限?
模型量化中,PTQ(训练后量化)和 QAT(量化感知训练)有什么区别?INT8、INT4 量化分别适合什么场景?GPTQ、AWQ、GGUF 各自的特点是什么?
vLLM 中的 PagedAttention 解决了什么问题?它和传统 KV Cache 管理方式相比,核心优势在哪里?
大模型推理时,KV Cache 的作用是什么?它为什么会成为显存和吞吐的瓶颈?常见有哪些优化手段?
什么是中间激活值?
什么是 Activation Checkpointing(梯度检查点)?它为什么能省显存?又会带来什么代价?在什么场景下值得开启?
ZeRO 的 Stage 1、Stage 2、Stage 3 分别优化了什么?为什么说 ZeRO-3 能显著降低单卡显存占用,但也会带来通信开销上升?
混合精度训练中,FP16 和 BF16 有什么区别?为什么大模型训练更倾向于使用 BF16?Loss Scaling 的作用是什么?
在大模型训练中,数据并行(Data Parallelism)、张量并行(Tensor Parallelism)和流水线并行(Pipeline Parallelism)分别解决什么问题?实际训练中通常会怎样组合使用?
Dropout如何防止过拟合?它在训练和推理阶段的差异是什么?
如何缓解训练中的梯度爆炸和梯度消失?
如何实现多GPU分布式训练?
如何选择合适的学习率和调度器?
深度模型训练难题如何破?本文系统梳理梯度消失/爆炸、过拟合、优化困难等核心挑战,并详解批归一化、残差连接、Adam优化器、Dropout等关键技术,助力大家构建稳定的训练流程。