AI Infra基础汇总

系列综述: 💞目的:本系列是个人整理为了AI Infra找工作的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:每个知识点的修正和深入主要参考各平台大佬的文章以及面试相关题目,遵循CUDA为主,CANN为辅的体系构建 🤭结语:如果有帮到你的地方,就点个赞和关注一下呗,谢谢🎈🎄🌷!!!
请先收藏!!!,后续继续完善和扩充👍(●’◡’●)
文章目录
-
- 零、计算机基础
-
- 1. 编程语言
-
- 底层高性能C++
- 高效应用Python
- 2. 必刷算法
- 3. 开发基础
- 一、基础设施层
-
- 1. 硬件芯片层
- 2. 硬件芯片层
- 分布式计算
- 一、分布式与并行基础
-
- 分布式计算
- 高性能并行
- GPU 硬件架构
- CUDA 编程模型
- CUDA 生态工具链
- 实践建议
- 二、PyTorch 框架
-
- 理论基础
- 实践建议
- 三、Megatron-LM
-
- 理论基础
- 实践建议
- 四、DeepSpeed
-
- 理论基础
- 实践建议
- 五、拓展实践
-
- 理论基础
- 相关实践
- 六、学习资源推荐
- 六、相关工作经验
- 参考博客
😊点此到文末惊喜↩︎
😎核心矛盾:在稀缺昂贵的硬件资源,压榨出极致的性能和效率,去支持大模型的训练和推理
零、计算机基础
1. 编程语言
底层高性能C++
高效应用Python
2. 必刷算法
目的:分别使用python和cpp都完成,目的是熟悉基础的语法和基本库 要求:对于没有ACM竞赛经验的,强烈建议直接背诵【leetcode hot 100 或 该链接下前150道题目】
3. 开发基础
一、基础设施层
1. 硬件芯片层
2. 硬件芯片层
分布式计算
模型压缩、量化 训练、推理框架性能优化 CUDA算子、编译优化 基础组件原理理解深度 高频算法 预训练逐步收缩到大厂做,微调和后训练中小厂需求增加 推理主流vLLM、SGLang、TensorRT-LLM,主流优化PD分离、KVcache、存储池化等强化学习框架 高性能通信、高性能网络、RDMA、NCCL
一、分布式与并行基础
分布式计算
高性能并行
## <font face="黑体" color=red>一、GPU 架构与编程</font>
GPU 硬件架构
CUDA 编程模型
CUDA 生态工具链
实践建议
二、PyTorch 框架
理论基础
Tensor:PyTorch中的核心数据结构,类似于numpy的ndarray,支持GPU加速。 Autograd:自动求导系统,用于实现反向传播算法。 Neural Network Library (nn):提供了丰富的神经网络模块和函数。 Optimizers:用于优化模型参数。 Distributed Training:支持多GPU和多机训练。 三、高效计算的关键技术 GPU加速:利用CUDA实现GPU上的并行计算,显著提高计算速度。 动态图与Just-In-Time (JIT)编译:PyTorch通过即时编译技术将动态图转换为静态图,优化性能。
实践建议
三、Megatron-LM
理论基础
实践建议
四、DeepSpeed
理论基础
- 零冗余优化器(ZeRO)、混合精度训练、梯度累积。
- 通信优化(梯度压缩、稀疏化)。
实践建议
五、拓展实践
理论基础
相关实践
六、学习资源推荐
书籍
- 《GPU 高性能编程:CUDA 实战》
- 《PyTorch 深度学习:60 分钟快速入门》
课程
- NVIDIA CUDA on Coursera
- Fast.ai 深度学习课程(PyTorch 实战)
论文
- 《Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism》
- 《ZeRO: Memory Optimizations Toward Training Trillion Parameter Models》
GPU 理论基础与实践 理论基础 GPU架构:理解CUDA核心、Tensor Core、内存层次(全局内存、共享内存、寄存器)、SIMT(单指令多线程)模型。
并行计算原理:数据并行、任务并行、流水线并行。
CUDA编程:学习CUDA C/C++基础,掌握核函数(Kernel)、线程层次(Block/Grid)、内存管理(cudaMalloc/cudaMemcpy)。
性能优化:内存带宽瓶颈、计算密集型与访存密集型任务优化、使用Nsight Tools分析性能。
实践建议 CUDA编程实战:实现简单的并行算法(如矩阵乘法、向量加法)。
混合精度训练:使用FP16/TF32与FP32混合精度优化训练速度。
性能调优工具:掌握NVIDIA Nsight Systems/Compute、PyTorch Profiler。
张量操作:设备管理(CPU/GPU)、广播机制、in-place操作。
分布式训练:torch.distributed模块(DDP, RPC)、通信原语(AllReduce, Broadcast)。
自定义扩展:通过C++/CUDA扩展PyTorch(自定义算子、自动微分)。
实践建议 模型开发:从简单CNN/RNN到Transformer模型的实现。
分布式训练:实践单机多卡(DDP)、多机多卡训练。
混合精度训练:使用torch.cuda.amp优化训练速度。
性能调试:使用PyTorch Profiler分析模型计算和内存消耗。
通信优化:理解AllReduce、AllGather、ReduceScatter等通信模式。
大模型架构:学习如何拆分Transformer层(如Attention和MLP的并行化)。
显存优化:激活重计算(Activation Checkpointing)、参数分片。
实践建议 源码阅读:重点研究Megatron的模型并行实现(如megatron/core/tensor_parallel)。
复现案例:尝试用Megatron训练中等规模模型(如GPT-2 1B参数)。
混合并行策略:结合数据并行+张量并行+流水线并行优化训练效率。
梯度压缩:学习1-bit Adam、0-offload等技术。
大规模训练:如何支持万亿参数模型(如ZeRO-Infinity的NVMe Offload)。
推理优化:DeepSpeed Inference的动态张量并行。
实践建议 ZeRO实战:在PyTorch中集成DeepSpeed,配置ZeRO-2/3优化显存。
Pipeline Parallelism:使用DeepSpeed的流水线并行模块。
定制化训练:结合Megatron-LM与DeepSpeed(如Megatron-DeepSpeed框架)。
学习路径推荐 基础阶段:先掌握PyTorch和CUDA编程,实现单卡训练和简单并行。
进阶阶段:学习DeepSpeed的ZeRO和Megatron的模型并行,实践混合并行策略。
高阶阶段:研究源码(如Megatron和DeepSpeed的通信调度、显存管理),优化自定义场景。
扩展方向 编译器技术:学习TVM、Triton等GPU代码生成工具。
推理优化:掌握TensorRT、FasterTransformer等推理框架。
多模态训练:探索支持大规模多模态模型(如CLIP、Florence)的基础设施。
https://blog.csdn.net/weixin_44162047/article/details/141472207
六、相关工作经验
作者:Cyril-KI 链接:https://zhuanlan.zhihu.com/p/1915522230047188150 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 (2) 实习。常见的问题有:负责了哪些?有没有创新?应用场景?为什么选这个开源基座?模型的输入输出?参数设置经验?全量还是LoRA?训练框架?SFT数据集构造过程?数据的多样性?RLHF数据集构造过程?什么RL算法?PPO、RAINFORCE++、DPO、GRPO、Dr.GRPO、DAPO等等具体原理?Reward设计?对比过哪些模型?如何评测?指标计算方法?效果如何?资源使用情况?实习中用到的XXX模型/架构/方法/流程的原理?实习中最有挑战的部分?客户如何使用?有没有其他解决办法?上线后的bad case如何解决?基于XXX场景如何重新设计?(3) 通用八股,这部分也可能基于你的实习来问。常见的问题有:常见开源模型的架构,transformer、BERT、位置编码、分词、训练推理优化、DPO/PPO等。此外,ML/DL常见八股也会考察,比如损失函数,norm/残差、逻辑回归、AUC、类别不平衡、树模型等。(4) 论文:常见的问题有:你负责了哪些部分?motivation?创新点?为什么效果会有提升?数据集介绍?针对这个工作后续有没有优化?如何落地?如何和LLM结合?(5) 算法题:遇到的大部分都是LeetCode上的原题,比如Hot 100和经典150题,少部分会有一些智力题,以及手写MLP(minimax必考题)、MHA、MQA、GQA、Beam Search、LoRA等。
少年,我观你骨骼清奇,颖悟绝伦,必成人中龙凤。
不如点赞·收藏·关注一波

🚩点此跳转到首行↩︎




