欢迎光临
我们一直在努力

【AI Infra面试】基础学习汇总篇

AI Infra基础汇总

在这里插入图片描述

系列综述: 💞目的:本系列是个人整理为了AI Infra找工作的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:每个知识点的修正和深入主要参考各平台大佬的文章以及面试相关题目,遵循CUDA为主,CANN为辅的体系构建 🤭结语:如果有帮到你的地方,就点个赞和关注一下呗,谢谢🎈🎄🌷!!!

请先收藏!!!,后续继续完善和扩充👍(●’◡’●)


文章目录

    • 零、计算机基础
      • 1. 编程语言
        • 底层高性能C++
        • 高效应用Python
      • 2. 必刷算法
      • 3. 开发基础
    • 一、基础设施层
      • 1. 硬件芯片层
      • 2. 硬件芯片层
      • 分布式计算
    • 一、分布式与并行基础
      • 分布式计算
      • 高性能并行
      • GPU 硬件架构
      • CUDA 编程模型
      • CUDA 生态工具链
      • 实践建议
    • 二、PyTorch 框架
      • 理论基础
      • 实践建议
    • 三、Megatron-LM
      • 理论基础
      • 实践建议
    • 四、DeepSpeed
      • 理论基础
      • 实践建议
    • 五、拓展实践
      • 理论基础
      • 相关实践
    • 六、学习资源推荐
    • 六、相关工作经验
    • 参考博客

😊点此到文末惊喜↩︎

😎核心矛盾:在稀缺昂贵的硬件资源,压榨出极致的性能和效率,去支持大模型的训练和推理


零、计算机基础

1. 编程语言

底层高性能C++
  • 【编译基础】内存分区和函数调用原理
  • 【编译基础】内存对齐问题详述
  • 【编译基础】指针和引用的异同
  • 【编译基础】内存资源的使用详解
  • 【编译基础】C++核心关键字
  • 【编译基础】C++11新特性详解
  • 【编译基础】其他面经常见问题
  • 【STL】综述
  • 【面向对象】构造函数与析构函数详解
  • 【面向对象】类的属性
  • 【面向对象】其他知识
  • 高效应用Python

    2. 必刷算法

    目的:分别使用python和cpp都完成,目的是熟悉基础的语法和基本库 要求:对于没有ACM竞赛经验的,强烈建议直接背诵【leetcode hot 100 或 该链接下前150道题目】

  • 【秋招基础】ACM输入方式和常见题目总结
  • 【数据结构】基础知识总结
  • 【基础算法】排序算法详述
  • 【基础算法】数组相关题目
  • 【基础算法】链表相关题目
  • 【基础算法】字符串相关题目
  • 【基础算法】二叉树相关题目
  • 【基础算法】贪心算法基础
  • 【基础算法】回溯算法相关题目
  • 【基础算法】动态规划算法相关题目
  • 【算法刷题】基础技巧总结
  • 【算法刷题】笔试真题
  • 【算法总结篇】 笔面试常见题目
  • 3. 开发基础

  • 【操作系统】基础知识总结
  • 【计算机网络】TCP和UDP详解
  • 【计算机网络】HTTP详解
  • 【数据库】MySQL基础知识全解
  • 【数据库】Redis基础知识全解
  • 【高并发基础】基本锁算法及原理
  • 【设计模式】综述
  • 【设计模式】创建型模式
  • 【设计模式】对象行为型模式
  • 【设计模式】结构型模式基础
  • 【设计模式】非GOF的常见设计模型
  • 一、基础设施层

    1. 硬件芯片层

  • GPU和NPU
  • 2. 硬件芯片层

    分布式计算

  • 模型压缩、量化 训练、推理框架性能优化 CUDA算子、编译优化 基础组件原理理解深度 高频算法 预训练逐步收缩到大厂做,微调和后训练中小厂需求增加 推理主流vLLM、SGLang、TensorRT-LLM,主流优化PD分离、KVcache、存储池化等强化学习框架 高性能通信、高性能网络、RDMA、NCCL

    一、分布式与并行基础

    分布式计算

  • 高性能并行


    ## <font face="黑体" color=red>一、GPU 架构与编程</font>

    GPU 硬件架构

  • CUDA 核心
  • SM(流式多处理器)
  • 内存层次(Global Memory、Shared Memory、寄存器)
  • 带宽与延迟。
  • 并行计算模型(线程块、网格、层级同步)。
  • CUDA 编程模型

  • 核函数(Kernel)
  • 内存管理(malloc/free、内存复制)
  • 流(Stream)
  • 事件(Event)。
  • 优化技巧:循环展开、内存合并访问、减少全局内存访问。
  • CUDA 生态工具链

  • cuDNN(深度神经网络加速库)
  • cuBLAS(线性代数库)
  • NCCL(多 GPU 通信库)。
  • 实践建议

  • 完成 NVIDIA 官方 CUDA 教程(CUDA C++ Programming Guide)。
  • 用 CUDA 实现矩阵乘法、卷积等基础算法,并优化性能。
  • 学习使用 Nsight Compute 分析性能瓶颈。

  • 二、PyTorch 框架

    理论基础

  • 动态计算图:自动微分机制(Autograd)、反向传播优化。
  • 分布式训练:DataParallel、DistributedDataParallel(DDP)、混合精度训练(Apex 库)。
  • 模型优化
  • 内存优化(梯度累积、激活检查点)、算子融合(TorchScript)。 PyTorch自推出以来,以其动态计算图和高效的GPU加速而受到广大研究者和开发者的青睐。在本文中,我们将深入剖析PyTorch的原理,并通过源码分析揭示其高效计算的秘密。 一、PyTorch的设计理念 PyTorch遵循“由下至上”的设计思路,将深度学习建模与计算力相结合,为用户提供了一个简洁直观的编程接口。不同于TensorFlow等静态图框架,PyTorch采用动态图模式,使得模型构建更加灵活,且易于调试。 二、核心组件概览
  • Tensor:PyTorch中的核心数据结构,类似于numpy的ndarray,支持GPU加速。 Autograd:自动求导系统,用于实现反向传播算法。 Neural Network Library (nn):提供了丰富的神经网络模块和函数。 Optimizers:用于优化模型参数。 Distributed Training:支持多GPU和多机训练。 三、高效计算的关键技术 GPU加速:利用CUDA实现GPU上的并行计算,显著提高计算速度。 动态图与Just-In-Time (JIT)编译:PyTorch通过即时编译技术将动态图转换为静态图,优化性能。

    实践建议

  • 复现经典模型(如 ResNet、Transformer),掌握模型构建与训练流程。
  • 使用 PyTorch DDP 实现多 GPU 训练,并对比单卡与多卡性能。
  • 尝试混合精度训练(torch.cuda.amp)和激活检查点(torch.utils.checkpoint)。

  • 三、Megatron-LM

    理论基础

  • 【LLM基础】Megatron-LM相关知识(主要是张量并行机制)
  • 模型并行策略:张量并行(Tensor Parallelism)、流水线并行(Pipeline Parallelism)。
  • 显存优化:激活重计算(Activation Recomputation)、内存优化器(Memory Optimizer)。
  • 大模型训练技巧:学习率调度(如余弦退火)、数据预处理(BPE 分词)。
  • 实践建议

  • 阅读 NVIDIA 官方论文《Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism》。
  • 克隆 Megatron-LM 仓库(GitHub),运行示例脚本(如 GPT-2 训练)。
  • 尝试修改模型并行参数(如–tensor-model-parallel-size),观察显存占用和训练速度变化。

  • 四、DeepSpeed

    理论基础

  • 【LLM基础】DeepSpeed基础知识
  • 优化技术
    • 零冗余优化器(ZeRO)、混合精度训练、梯度累积。
    • 通信优化(梯度压缩、稀疏化)。
  • 扩展性:支持万卡级分布式训练,与 PyTorch DDP 兼容。
  • 实践建议

  • 学习 DeepSpeed 官方文档(DeepSpeed Documentation)。
  • 在 PyTorch 模型中集成 DeepSpeed,对比启用 ZeRO 后的显存占用和训练效率。
  • 尝试不同的配置选项(如–deepspeed_config中的optimizer和scheduler参数)

  • 五、拓展实践

    理论基础

  • 【LLM技术总结】DeepSeek基础架构篇
  • 【LLM技术总结】DeepSeek训练篇
  • 【LLM训练框架】DeepSeek DualPipe原理详解
  • 【LLM训练框架】DeepSeek EPLB原理详解
  • 任务:用 PyTorch+DeepSpeed 在 8 块 A100 上训练一个 10B 参数的 Transformer 模型。
  • 构建模型并启用激活检查点。
  • 配置 DeepSpeed 的 ZeRO 优化(如stage=3)。
  • 监控显存使用、训练速度和收敛曲线。
  • 尝试结合 Megatron-LM 的模型并行进一步扩展模型规模。
  • 相关实践

  • 【LLM实践】Deepseek-V3训练时MFU的计算

  • 六、学习资源推荐

  • 书籍

    • 《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。

  • PyTorch 理论基础与实践 理论基础 动态计算图:理解PyTorch的自动微分(Autograd)、动态图与静态图区别。
  • 张量操作:设备管理(CPU/GPU)、广播机制、in-place操作。

    分布式训练:torch.distributed模块(DDP, RPC)、通信原语(AllReduce, Broadcast)。

    自定义扩展:通过C++/CUDA扩展PyTorch(自定义算子、自动微分)。

    实践建议 模型开发:从简单CNN/RNN到Transformer模型的实现。

    分布式训练:实践单机多卡(DDP)、多机多卡训练。

    混合精度训练:使用torch.cuda.amp优化训练速度。

    性能调试:使用PyTorch Profiler分析模型计算和内存消耗。

  • Megatron-LM 理论基础与实践 理论基础 模型并行原理:张量并行(Tensor Parallelism)、流水线并行(Pipeline Parallelism)。
  • 通信优化:理解AllReduce、AllGather、ReduceScatter等通信模式。

    大模型架构:学习如何拆分Transformer层(如Attention和MLP的并行化)。

    显存优化:激活重计算(Activation Checkpointing)、参数分片。

    实践建议 源码阅读:重点研究Megatron的模型并行实现(如megatron/core/tensor_parallel)。

    复现案例:尝试用Megatron训练中等规模模型(如GPT-2 1B参数)。

    混合并行策略:结合数据并行+张量并行+流水线并行优化训练效率。

  • DeepSpeed 理论基础与实践 理论基础 ZeRO优化:理解ZeRO的三个阶段(ZeRO-1/2/3),显存优化原理。
  • 梯度压缩:学习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


    六、相关工作经验

  • DeepSeek-V3训练时的MFU计算
  • 在华为MindSpeed部署训练deepseekV3
  • DeepSeekV3 671B在的推理性能的测试
  • 作者: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等。


    少年,我观你骨骼清奇,颖悟绝伦,必成人中龙凤。

    不如点赞·收藏·关注一波


    🚩点此跳转到首行↩︎

    参考博客

  • DeepEP通信库
  • 刚刚,DeepSeek开源DeepEP通信库,千亿MoE训推颠覆级创新!FP8狂飙,带飞GPU
  • 待定引用
  • 待定引用
  • 待定引用
  • 待定引用
  • 待定引用
  • 待定引用
  • 赞(0)
    未经允许不得转载:171主机测评 » 【AI Infra面试】基础学习汇总篇
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址