AI系统专家/移动视觉/强化学习
本文介绍昇思MindSpore的并行训练技术,包括张量重排布、自动微分等,旨在简化并行策略搜索,提高大规模模型训练效率。文章探讨了大模型带来的挑战及现有框架的局限性,详细说明了MindSpore如何通过技术创新解决这些问题,实现高效的大模型训练。
混合并行融合了数据并行、模型并行和流水线并行,旨在高效利用计算资源,尤其适合大规模深度学习模型训练。通过将模型和数据合理分配至多个设备,混合并行不仅提升了计算效率,还优化了内存使用,使得在有限的硬件条件下也能处理超大型模型。3D混合并行(DP+PP+TP)是最先进的形式,需至少8个GPU实现。此策略通过拓扑感知3D映射最大化计算效率,减少通信开销,是当前深度学习训练框架如Deepspeed和Colossal AI的核心技术之一。
本文深入探讨了AI框架中针对权重数据、优化器数据和梯度数据的分布式并行实现,特别是在PyTorch框架下的具体方案。文章首先回顾了通用数据并行和分布式数据并行的概念,重点讨论了同步与异步数据并行的差异。接着,文章详细介绍了如何在PyTorch中实现弹性数据并行,特别是完全分片数据并行(FSDP)的机制,包括其如何通过分片模型状态和剩余状态来减少内存消耗,提高训练效率。此外,文章还探讨了混合精度训练、损失缩放和内存消耗估算等关键技术,为理解和实施高效的分布式训练提供了全面的指导。
在大模型训练中,单个设备难以满足需求,模型并行技术应运而生。其中,张量并行(Tensor Parallelism, TP)将模型内部的参数和计算任务拆分到不同设备上,特别适用于大规模模型。本文介绍了张量并行的基本概念、实现方法及其在矩阵乘法、Transformer、Embedding和Cross Entropy Loss等场景中的应用,以及通过PyTorch DeviceMesh实现TP的具体步骤。
从 TensorFlow、PyTorch 到 PaddlePaddle、MindSpore、MegEngine,主流 AI 框架经历了动静分离、动静结合到动静统一的发展过程。这些框架通过动态图转静态图技术,实现了计算效率与灵活性的平衡,显著提升了 AI 开发效率和产品应用的便利性。
当前主流AI框架采用计算图抽象神经网络计算,以张量和算子为核心元素,有效表达模型计算逻辑。计算图不仅简化数据流动,支持内存优化和算子调度,还促进了自动微分功能的实现,区分静态图和动态图两种形式。未来,计算图将在图神经网络、大数据融合、推理部署及科学计算等领域持续演进,适应更复杂的计算需求。
数据并行是一种在分布式AI系统中广泛应用的技术,通过将数据集划分成多个子集并在不同计算节点上并行处理,以提高计算效率和速度。在大规模机器学习和深度学习训练中,数据并行可以显著加快模型训练速度,减少训练时间,提升模型性能。每个计算节点接收完整的模型副本,但处理不同的数据子集,从而分摊计算任务,提高处理速度和效率。数据并行按同步方式可分为同步数据并行和异步数据并行,按实现方式包括数据并行、分布式数据并行、完全分片的数据并行等。其中,分布式数据并行(DDP)是当前应用最广泛的并行算法之一,通过高效的梯度聚合和参数同步机制,确保模型一致性,适用于大型NPU集群和AI系统。
分布式训练通过将任务分配至多个节点,显著提升模型训练效率与精度。本文聚焦PyTorch2.0中的分布式训练技术,涵盖数据并行、模型并行及混合并行等策略,以及DDP、RPC等核心组件的应用,旨在帮助开发者针对不同场景选择最合适的训练方式,实现高效的大模型训练。
深度学习训练过程涉及前向计算、计算损失及更新权重参数。AI框架通过计算图统一表示训练过程,算子作为计算图的节点,由后端硬件高效执行。计算图调度包括算子间的调度、并发调度和异构调度,确保计算资源的有效利用。图执行模式分为单算子执行、整图下沉执行和图切分多设备执行,适应不同场景需求。以PyTorch为例,其算子执行通过两次调度选择合适的Kernel进行张量操作,并支持自动求导。
本文介绍了AI框架中使用计算图来抽象神经网络计算的必要性和优势,探讨了计算图的基本构成,包括标量、向量、矩阵、张量等数据结构及其操作,并详细解释了计算图如何帮助解决AI工程化中的挑战。此外,文章还通过PyTorch实例展示了动态计算图的特点和实现方法,包括节点(张量或函数)和边(依赖关系)的定义,以及如何通过自定义Function实现正向和反向传播逻辑。
自动微分是一种高效准确的计算机程序求导技术,广泛应用于计算流体力学、大气科学、工业设计仿真优化等领域。随着机器学习的发展,自动微分技术与编程语言、计算框架紧密结合,成为AI框架的核心功能之一。本文介绍了自动微分的基本概念及其与手动微分、数值微分和符号微分的区别和优势。
本文介绍华为自研AI框架昇思MindSpore,一个面向全场景的AI计算框架,旨在提供统一、高效、安全的平台,支持AI算法研究与生产部署。文章详细阐述了MindSpore的定位、架构、特性及在端边云全场景下的应用优势,强调其动静态图统一、联邦学习支持及高性能优化等亮点。
本文介绍了AI算法、神经网络及AI框架的基础概念,探讨了神经网络的作用、训练目的以及AI框架如何简化模型设计、训练与验证过程。文章还概述了AI框架的发展历程和技术演进,强调了国内外主要AI框架的特点及其对AI技术发展的推动作用。
本文详细介绍了卷积的数学原理及其在卷积神经网络(CNN)中的应用。卷积作为一种特殊的线性运算,是CNN处理图像任务的核心。文章从卷积的数学定义出发,通过信号处理的例子解释了卷积的过程,随后介绍了CNN中卷积计算的细节,包括卷积核、步长、填充等概念。文中还探讨了卷积的物理意义、性质及优化手段,如张量运算和内存布局优化。最后,提供了基于PyTorch的卷积实现示例,帮助读者理解和实现卷积计算。
本文详细介绍了AI模型在不同框架间的转换方法,包括直接转换和规范式转换两种方式。直接转换涉及从源框架直接生成目标框架的模型文件,而规范式转换则通过一个中间标准格式(如ONNX)作为桥梁,实现模型的跨框架迁移。文中还提供了具体的转换流程和技术细节,以及模型转换工具的概览,帮助用户解决训练环境与部署环境不匹配的问题。
推理引擎的Kernel层负责执行底层数学运算,如矩阵乘法、卷积等,直接影响推理速度与效率。它与Runtime层紧密配合,通过算法优化、内存布局调整、汇编优化及调度优化等手段,实现高性能计算。Kernel层针对不同硬件(如CPU、GPU)进行特定优化,支持NEON、AVX、CUDA等技术,确保在多种平台上高效运行。
本文深入探讨了计算图的优化策略,包括算子替换、数据类型转换、存储优化等,旨在提升模型性能和资源利用效率。特别介绍了Flash Attention算法,通过分块计算和重算策略优化Transformer模型的注意力机制,显著减少了内存访问次数,提升了计算效率。此外,文章还讨论了内存优化技术,如Inplace operation和Memory sharing,进一步减少内存消耗,提高计算性能。
模型转换技术旨在解决深度学习模型在不同框架间的兼容性问题,通过格式转换和图优化,将训练框架生成的模型适配到推理框架中,实现高效部署。这一过程涉及模型格式转换、计算图优化、算子统一及输入输出支持等多个环节,确保模型能在特定硬件上快速、准确地运行。推理引擎作为核心组件,通过优化阶段和运行阶段,实现模型的加载、优化和高效执行。面对不同框架的模型文件格式和网络结构,推理引擎需具备高度的灵活性和兼容性,以支持多样化的应用场景。
模型压缩旨在通过减少存储空间、降低计算量和提高计算效率,降低模型部署成本,同时保持模型性能。主要技术包括模型量化、参数剪枝、知识蒸馏和低秩分解,广泛应用于移动设备、物联网、在线服务系统、大模型及自动驾驶等领域。
本文概述了模型剪枝的概念、方法及流程,旨在通过移除神经网络中冗余或不重要的参数,实现模型规模的减小和效率的提升。剪枝不仅有助于降低模型的存储和计算需求,还能增强模型的泛化能力。文章详细介绍了剪枝的定义、分类、不同阶段的剪枝流程,以及多种剪枝算法,如基于参数重要性的方法、结构化剪枝、动态剪枝和基于优化算法的全局剪枝策略。通过这些方法,可以在保持模型性能的同时,显著提高模型的计算速度和部署灵活性。
模型量化是将浮点数模型参数转化为低比特整数表示的技术,旨在减少模型大小、内存消耗及推理延迟,但会带来精度损失。本文介绍量化的基本原理、优势及挑战,涵盖量化训练、动态与静态离线量化等方法,并探讨线性与非线性量化、饱和与非饱和量化等技术细节。
本文介绍感知量化训练(QAT)流程,旨在减少神经网络从FP32量化至INT8时的精度损失。通过在模型中插入伪量化节点(FakeQuant)模拟量化误差,并在训练中最小化这些误差,使模型适应量化环境。文章还探讨了伪量化节点的作用、正向与反向传播处理、TensorRT中的QAT模型高效推理,以及QAT与PTQ的对比,提供了实践技巧,如从良好校准的PTQ模型开始、采用余弦退火学习率计划等。
本文深入解析知识蒸馏(Knowledge Distillation, KD),一种将大型教师模型的知识高效转移至小型学生模型的技术,旨在减少模型复杂度和计算开销,同时保持高性能。文章涵盖知识蒸馏的基本原理、不同类型的知识(如响应、特征、关系知识)、蒸馏方式(离线、在线、自蒸馏)及Hinton的经典算法,为读者提供全面的理解。
本文详细介绍了训练后量化技术,涵盖动态和静态量化方法,旨在将模型权重和激活从浮点数转换为整数,以优化模型大小和推理速度。通过KL散度等校准方法和量化粒度控制,文章探讨了如何平衡模型精度与性能,同时提供了端侧量化推理部署的具体实现步骤和技术技巧。
MobileViT系列是基于Vision Transformer(ViT)架构设计的轻量级视觉模型,专为移动设备和嵌入式系统优化。MobileViT V1通过结合局部卷积和全局Transformer机制,实现了高性能与低资源消耗的平衡。V2进一步优化了Transformer中的多头自注意力机制,引入了线性复杂度的可分离自注意力,显著提升了计算效率。V3则对融合模块进行了简化,用1x1卷积替代3x3卷积,减少了参数量,同时引入了残差连接,进一步提升了模型性能。这些改进使MobileViT系列在保持高效的同时,能够在资源受限的设备上运行,表现出色。
本文介绍了EfficientNet系列模型,特别是EfficientNet V1和V2。EfficientNet V1通过NAS技术同时探索网络的宽度、深度和分辨率对模型性能的影响,提出了复合模型缩放方法,以平衡三者关系,实现高效模型扩展。EfficientNet V2在此基础上,引入Fused-MBConv模块,采用渐进式学习策略和自适应正则化技术,进一步提升了模型的训练速度和推理效率。
本文介绍了AI算法、神经网络及其应用,解释了为何神经网络需要训练及AI框架的作用。通过解析深度学习的数学原理与反向求导算法,阐述了AI框架如何作为模型设计、训练和验证的标准工具,支持算法封装、数据调用及计算资源管理,强调了AI框架的发展历程和技术迭代。
本文详细介绍 MobileNet 系列模型,重点探讨其轻量化设计原则。从 MobileNetV1 开始,通过深度可分离卷积和宽度乘数减少参数量,实现低延迟、低功耗。后续版本 V2、V3、V4 逐步引入线性瓶颈、逆残差、Squeeze-and-Excitation 模块、新型激活函数 h-swish、NAS 搜索等技术,持续优化性能。特别是 MobileNetV4,通过通用倒瓶颈(UIB)和 Mobile MQA 技术,大幅提升模型效率,达到硬件无关的 Pareto 最优。文章结合最新深度学习技术,全面解析各版本的改进与设计思路。
本文介绍了ShuffleNet系列模型,特别是其轻量化设计。ShuffleNet V1通过引入Pointwise Group Convolution和Channel Shuffle技术,在减少计算量的同时保持模型准确性。V2版本则进一步优化,考虑了设备运算速度,提出了四个轻量级网络设计原则,并通过Channel Split技术减少了内存访问成本,提升了模型效率。
本文介绍了几种轻量级的 Transformer 模型,旨在解决传统 Transformer 参数庞大、计算资源消耗大的问题。主要包括 **MobileVit** 和 **MobileFormer** 系列,以及 **EfficientFormer**。MobileVit 通过结合 CNN 和 Transformer 的优势,实现了轻量级视觉模型,特别适合移动设备。MobileFormer 则通过并行结构融合了 MobileNet 和 Transformer,增强了模型的局部和全局表达能力。
本文详细介绍华为昇腾推理引擎 MindIE,涵盖其基本介绍、关键功能特性及三大组件:MindIE-Service、MindIE-Torch 和 MindIE-RT。文章深入探讨了各组件在服务化部署、大模型推理和推理运行时方面的功能和应用场景,旨在帮助读者全面了解 MindIE 如何支持 AI 业务的高效运行和模型的快速部署。
本文详细介绍了推理引擎的基本概念、特点、技术挑战及架构设计。推理引擎作为 AI 系统中的关键组件,负责将训练好的模型部署到实际应用中,实现智能决策和自动化处理。文章首先概述了推理引擎的四大特点:轻量、通用、易用和高效,接着探讨了其面临的三大技术挑战:需求复杂性与程序大小的权衡、算力需求与资源碎片化的矛盾、执行效率与模型精度的双重要求。随后,文章深入分析了推理引擎的整体架构,包括优化阶段的模型转换工具、模型压缩、端侧学习等关键技术,以及运行阶段的调度层、执行层等核心组件。最后,通过具体的开发流程示例,展示了如何使用推理引擎进行模型的加载、配置、数据预处理、推理执行及结果后处理。
本文深入探讨了AI推理系统架构,特别是以NVIDIA Triton Inference Server为核心,涵盖推理、部署、服务化三大环节。Triton通过高性能、可扩展、多框架支持等特点,提供了一站式的模型服务解决方案。文章还介绍了模型预编排、推理引擎、返回与监控等功能,以及自定义Backend开发和模型生命周期管理的最佳实践,如金丝雀发布和回滚策略,旨在帮助构建高效、可靠的AI应用。
本文概述了神经网络模型在云侧和边缘侧部署的特点与挑战。云侧部署凭借强大的计算能力和集中的数据管理,适合高吞吐量应用,但面临高成本、网络延迟等问题;边缘侧部署则通过模型优化和硬件加速降低延迟和能耗,适用于资源受限的环境,但存在算力限制、数据分散等挑战。两种方式各有优劣,需根据实际需求选择。
推理系统是一种专门用于部署和执行神经网络模型预测任务的AI系统,类似于Web服务或移动端应用,但专注于AI模型的部署与运行。它支持将模型部署到云端或边缘端,处理用户请求。本文介绍了训练与推理的基本流程、两者差异、推理系统的优化目标及挑战,并对比了推理系统与推理引擎的流程结构,强调了设计推理系统时需考虑的优化目标,如灵活性、延迟、吞吐量、高效率、扩展性和可靠性。同时,文章还讨论了推理系统与推理引擎的区别,帮助读者深入了解推理引擎的核心技术。
本文介绍了昇腾 AI 异构计算架构 CANN,涵盖硬件层面的达·芬奇架构和软件层面的全栈支持,旨在提供高性能神经网络计算所需的硬件基础和软件环境。通过多层级架构,CANN 实现了高效的 AI 应用开发与性能优化,支持多种主流 AI 框架,并提供丰富的开发工具和接口,助力开发者快速构建和优化神经网络模型。
本文深入探讨了手写算子调度的关键因素及高性能算子库的介绍,通过计算分析指标和 RoofLine 模型评估计算与访存瓶颈,提出了循环、指令、存储三大优化策略,并介绍了 TVM 和 Triton 两种 DSL 开发算子的方法及其在实际应用中的表现。
死代码消除是一种编译器优化技术,旨在移除程序中不会被执行的代码,提升程序效率和资源利用。通过分析控制流图,识别并删除不可达操作和无用操作,减少不必要的计算。在传统编译器中,主要通过深度优先搜索和条件分支优化实现;而在AI编译器中,则通过对计算图的分析,删除无用或不可达的计算节点,优化模型性能。
本文探讨了AI编译器前端优化中的内存分配问题,涵盖模型与硬件内存的发展、内存划分及其优化算法。文章首先分析了神经网络模型对NPU内存需求的增长趋势,随后详细介绍了静态与动态内存的概念及其实现方式,最后重点讨论了几种节省内存的算法,如空间换内存、计算换内存、模型压缩和内存复用等,旨在提高内存使用效率,减少碎片化,提升模型训练和推理的性能。
数据布局转换技术通过优化内存中数据的排布,提升程序执行效率,特别是对于缓存性能的影响显著。本文介绍了数据在内存中的排布方式,包括内存对齐、大小端存储等概念,并详细探讨了张量数据在内存中的排布,如行优先与列优先排布,以及在深度学习中常见的NCHW与NHWC两种数据布局方式。这些布局方式的选择直接影响到程序的性能,尤其是在GPU和CPU上的表现。此外,还讨论了连续与非连续张量的概念及其对性能的影响。
算子融合是优化神经网络模型执行效率的关键技术之一,通过合并计算图中的算子,减少中间结果的实例化和不必要的输入扫描,提升模型的计算并行度和访存效率,有效解决内存墙和并行墙问题。TVM等框架通过支配树分析等高级算法实现高效的算子融合,显著提高模型的执行速度和资源利用率。
本文概述了AI编译器的发展历程,从朴素AI编译器、专用AI编译器到未来的通用AI编译器,详细介绍了各阶段的技术特点与优化目标。AI编译器旨在优化AI和机器学习应用,通过多层IR设计、面向神经网络的深度优化及对DSA芯片的支持,实现高性能计算。随着技术的进步,通用AI编译器将实现计算图与算子的统一表达、自动化优化及模块化设计,推动AI技术的广泛应用和发展。
本文介绍了LLVM的诞生背景及其与GCC的区别,重点阐述了LLVM的架构特点,包括其组件独立性、中间表示(IR)的优势及整体架构。通过Clang+LLVM的实际编译案例,展示了从C代码到可执行文件的全过程,突显了LLVM在编译器领域的创新与优势。
随着深度学习的发展,AI模型和硬件技术不断演进,开发者面临如何有效利用算力及应对AI框架迭代的挑战。AI编译器成为解决这些问题的关键技术,它帮助用户专注于上层模型开发,减少手动优化性能的成本,最大化硬件效能。本文探讨编译器基础概念,解释编译器与AI框架的关系,介绍编译器与解释器的区别,以及AOT和JIT编译方式的特点和在AI框架中的应用。通过分析Pass和中间表示IR的作用,进一步理解编译器在AI领域的核心价值。
本文介绍了英伟达GPU的CUDA编程模型及其SIMT执行模式,对比了SIMD和SIMT的特点,阐述了SIMT如何提高并行计算效率和编程灵活性。同时简要提及了AMD的GPU架构及编程模型,包括最新的MI300X和ROCm平台。
本文深入解析了SIMD(单指令多数据)与SIMT(单指令多线程)的计算本质及其在AI芯片中的应用,特别是NVIDIA CUDA如何实现这两种计算模式。SIMD通过单指令对多个数据进行操作,提高数据并行处理能力;而SIMT则在GPU上实现了多线程并行,每个线程独立执行相同指令,增强了灵活性和性能。文章详细探讨了两者的硬件结构、编程模型及硬件执行模型的区别与联系,为理解现代AI计算架构提供了理论基础。
本文深入解析了AI芯片中SIMD和SIMT的计算本质,基于NVIDIA CUDA实现的对比,探讨了不同并行编程模型,包括串行(SISD)、数据并行(SIMD)和多线程(MIMD/SPMD)。文章详细介绍了各模型的特点及应用场景,特别强调了英伟达GPU中的SIMT机制如何通过SPMD编程模型实现高效并行计算,以及SIMD、SIMT、SPMD之间的关系和区别。
华为昇腾NPU采用独特的NC1HWC0五维数据格式,旨在优化AI处理器的矩阵乘法运算和访存效率。此格式通过将C维度分割为C1份C0,适应达芬奇架构的高效计算需求,支持FP16和INT8数据类型。此外,昇腾还引入了NZ分形格式,进一步提升数据搬运和矩阵计算效率。AI编译器通过智能布局转换,确保在不同硬件上达到最优性能。
本文深入解析了华为昇腾AI处理器的核心——AI Core及其达芬奇架构。AI Core采用特定域架构(DSA),专为深度学习算法优化,通过矩阵、向量和标量计算单元的高效协作,实现了对深度学习算法的加速。文章详细介绍了AI Core的计算单元、存储系统及控制单元的设计,展示了其如何通过优化数据通路和控制流程,显著提升计算性能。
本文介绍华为昇腾AI处理器的架构与卷积加速原理,基于达芬奇架构设计,支持云边端一体化解决方案,具备高能效比和强大的3D Cube矩阵计算单元。文章详细解析了昇腾AI处理器的核心组件及其高效的数据处理机制,旨在通过软硬件优化实现高效的卷积计算加速。