【AI Infra】基础学习汇总篇

系列综述:
目的:本系列是个人整理为了学习训练框架优化的,整理期间苛求每个知识点,平衡理解简易度与深入程度。
来源:材料主要源于【DeepEP官方介绍】进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。
结语:如果有帮到你的地方,就点个赞关注一下呗,谢谢!!!

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


文章目录

    • 一、分布式与并行基础
      • 分布式计算
      • 高性能并行
      • GPU 硬件架构
      • CUDA 编程模型
      • CUDA 生态工具链
      • 实践建议
    • 二、PyTorch 框架
      • 理论基础
      • 实践建议
    • 三、Megatron-LM
      • 理论基础
      • 实践建议
    • 四、DeepSpeed
      • 理论基础
      • 实践建议
    • 五、拓展实践
      • 理论基础
      • 相关实践
    • 六、学习资源推荐
    • 六、相关工作经验
    • 参考博客


点此到文末惊喜↩︎

参加 Kaggle 竞赛(如大模型训练效率优化比赛)


一、分布式与并行基础

分布式计算

高性能并行


## 一、GPU 架构与编程

GPU 硬件架构

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

CUDA 编程模型

  1. 核函数(Kernel)
  2. 内存管理(malloc/free、内存复制)
  3. 流(Stream)
  4. 事件(Event)。
  5. 优化技巧:循环展开、内存合并访问、减少全局内存访问。

CUDA 生态工具链

  1. cuDNN(深度神经网络加速库)
  2. cuBLAS(线性代数库)
  3. NCCL(多 GPU 通信库)。

实践建议

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

二、PyTorch 框架

理论基础

  1. 动态计算图:自动微分机制(Autograd)、反向传播优化。
  2. 分布式训练:DataParallel、DistributedDataParallel(DDP)、混合精度训练(Apex 库)。
  3. 模型优化
  4. 内存优化(梯度累积、激活检查点)、算子融合(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通过即时编译技术将动态图转换为静态图,优化性能。

实践建议

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

三、Megatron-LM

理论基础

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

实践建议

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

四、DeepSpeed

理论基础

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

实践建议

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

五、拓展实践

理论基础

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

相关实践

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

六、学习资源推荐

  1. 书籍

    • 《GPU 高性能编程:CUDA 实战》
    • 《PyTorch 深度学习:60 分钟快速入门》
  2. 课程

    • NVIDIA CUDA on Coursera
    • Fast.ai 深度学习课程(PyTorch 实战)
  3. 论文

    • 《Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism》
    • 《ZeRO: Memory Optimizations Toward Training Trillion Parameter Models》
  4. 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。

  1. 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分析模型计算和内存消耗。

  1. Megatron-LM 理论基础与实践
    理论基础
    模型并行原理:张量并行(Tensor Parallelism)、流水线并行(Pipeline Parallelism)。

通信优化:理解AllReduce、AllGather、ReduceScatter等通信模式。

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

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

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

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

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

  1. 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


六、相关工作经验

  1. DeepSeek-V3训练时的MFU计算
  2. 在华为MindSpeed部署训练deepseekV3
  3. DeepSeekV3 671B在的推理性能的测试


少年,我观你骨骼清奇,颖悟绝伦,必成人中龙凤。
不如点赞·收藏·关注一波


点此跳转到首行↩︎

参考博客

  1. DeepEP通信库
  2. 刚刚,DeepSeek开源DeepEP通信库,千亿MoE训推颠覆级创新!FP8狂飙,带飞GPU
  3. 待定引用
  4. 待定引用
  5. 待定引用
  6. 待定引用
  7. 待定引用
  8. 待定引用

你可能感兴趣的:(AI基础知识,人工智能,学习)