中文摘要

在本文中,我们对大规模语言模型(LLMs)训练的人工智能(AI)计算系统进行了全面综述。近年来,LLMs 的快速发展,以及 BERT、ChatGPT 和 DeepSeek 等算法和应用的广泛采用,引发了该领域的广泛关注。我们将 LLMs 归类为仅编码器(encoder-only)模型、编码器-解码器(encoder-decoder)模型和仅解码器(decoder-only)模型,并简要分析其训练和推理过程,以突出其对计算资源的巨大需求。LLMs 的训练和推理高度依赖于 GPU(图形处理单元)、TPU(张量处理单元)和 MLU(机器学习单元)等 AI 专用加速器。
然而,随着 LLMs 复杂度的不断提高,与现有计算加速器能力之间的差距逐步扩大,因此必须采用针对分布式环境优化的异构计算系统,以满足 LLMs 不断增长的计算和内存需求。本文深入探讨了 LLM 算法的执行和调度,强调了分布式计算策略的关键作用,以及内存管理优化和计算效率提升的重要性。
此外,本文阐明了算法设计、硬件基础设施和软件优化之间的复杂关系,提供了对支撑 LLMs 训练的软件和硬件架构的深入理解,并为未来 LLMs 的发展和部署所面临的挑战及潜在解决方案提供了有价值的见解。

感觉和大模型研讨课很像,这个分类方式

引言

大规模语言模型(LLMs)已成为人工智能(AI)领域的核心研究方向,并在机器翻译、情感分析、问答系统以及文本生成等多个应用场景中取得了重要突破。LLMs 的发展依赖于深度学习技术,特别是自 2017 年 Google 提出的 Transformer 网络[1] 以来,得益于注意力机制的引入,该领域取得了显著进展。后续研究,如 BERT[2]、GPT 系列[3,4] 以及 DeepSeek 系列[5,6],进一步推动了 LLMs 的演进。尤其是 2022 年底 ChatGPT1 的发布,掀起了新一轮关于通用 LLMs 的研究浪潮。
LLMs 的快速发展与支撑其计算的 AI 计算系统密切相关。现代 AI 计算系统通常由通用 CPU 与异构 AI 加速器协同工作,并辅以包括编程框架和编程语言在内的计算环境[7]。随着 AI 计算需求呈指数级增长,而 CPU 计算能力的发展逐渐趋缓,高性能 AI 芯片已成为现代 AI 计算系统的核心。自 DianNao[8] 及其后续 DianNao 系列[9–11] 等早期深度学习处理器架构提出以来,计算成本显著降低,处理效率显著提升。NVIDIA 的 TensorCore GPU(图形处理单元)、Google 的 TPU2(张量处理单元)[12] 以及寒武纪的 MLU(机器学习单元)等加速器进一步提升了相较于传统 CPU 的性能优势,推动了 LLMs 和 AI 计算系统的发展。
随着 AI 计算系统计算能力的提升,深度学习模型,尤其是 LLMs 的规模和参数量经历了前所未有的增长。然而,这种快速扩张已超越了 AI 计算能力的提升速度,凸显了采用多加速器协同计算和分布式系统进行训练的必要性。为了有效管理这些模型庞大的参数规模和大规模数据集,LLMs 计算系统必须针对分布式环境进行优化。
如图 1 所示,在 LLMs 计算体系结构中,从顶层的应用开始,LLMs 依赖于特定的模型,而这些模型又依托不同的深度学习编程框架进行计算。具体而言,LLMs 的训练和推理依赖于先进的深度学习框架,如 DeepSpeed[13–16]、Megatron-LM[17,18] 以及 FSDP(Fully Sharded Data Parallel),这些框架进一步调用 PyTorch 等底层深度学习编程框架。这些低层框架利用高性能计算库、通信库和运行时系统,执行复杂的计算任务,并管理通信网络中的数据传输。
image-20250312084805953.webp
当前已有部分相关综述研究[19–25],但仍存在一定局限性。例如,一些研究主要聚焦于 LLMs 的算法层面,但未能充分提炼和分析底层计算原理;另一些研究关注 LLMs 的推理部署,而未详细讨论训练和推理在算法、软件实现及硬件部署上的差异;还有部分研究致力于深度神经网络(DNNs)的分布式训练,但未对 LLMs 进行特定分析。因此,进一步探索 LLMs 计算系统的架构、优化策略和未来发展方向仍具有重要意义。
然而,据我们所知,目前尚无系统性综述 LLMs 计算系统的研究工作。本研究旨在连接高层 LLMs 算法、中层编程软件以及底层智能芯片和加速器,帮助读者全面理解人工智能的完整软硬件栈。从系统性视角来看,评估 AI 相关工作不仅涉及模型的准确性,还需要考虑吞吐量、延迟、能效以及成本等关键因素,任何方面的进步都具有重要的研究价值。
在本文中,我们回顾了 LLMs 现有的算法以及其运行的硬件平台,并介绍了将算法部署至硬件平台的分布式调度策略及相应的优化方法。我们的分类体系如图 2 所示。首先,我们对主流 LLMs 进行分类,识别其通用计算模块和特性,并讨论两种执行模式:训练与推理。接着,我们分类介绍 LLMs 运行所需的硬件平台,分别讨论计算节点和计算集群,旨在指导硬件基础设施的选择,并分析主要的通信瓶颈与挑战。随后,我们深入探讨 LLMs 算法在硬件平台上的执行与调度,并探索相应的软件优化策略。此外,我们回顾了 LLMs 编程框架,并详细介绍了分布式计算、内存管理与计算效率优化,同时对训练与推理方法进行简要对比。最后,我们围绕算法、硬件与软件三个方面,展望 LLMs 计算系统的未来发展方向。
image-20250312085317530.webp
据我们所知,本文是首篇从系统层面综述 LLMs 计算系统的研究工作。我们的主要贡献如下:

  1. 简要介绍 AI 计算系统的概念,帮助读者深入理解支撑 LLMs 训练的软件与硬件基础设施;
  2. 分析分布式 LLMs 训练的工作流、计算过程及通信模式,并探讨相应的优化技术;
  3. 识别 LLMs 计算系统面临的三大关键挑战,并提供针对未来发展的潜在解决方案与研究方向。
    本文其余部分的结构如下:
  • 第 2 节 讨论 LLMs 算法的网络结构及执行模式,并进行简要分析;
  • 第 3 节 介绍 LLMs 运行平台,并探讨影响其扩展能力的关键因素;
  • 第 4 节 研究 LLMs 在硬件上的部署及优化策略,涵盖编程框架、分布式计算、内存管理、计算优化,并简要对比训练与推理;
  • 第 5 节 讨论当前挑战及未来研究方向;
  • 第 6 节 总结全文。

    大模型算法

    本节从算法的角度探讨大规模语言模型(LLMs),重点分析其结构类型,包括仅编码器(encoder-only)、编码器-解码器(encoder-decoder)以及仅解码器(decoder-only)。随后,本文将深入探讨 LLMs 的计算工作流程,涵盖训练过程(预训练与微调)及推理阶段,并最终分析其计算强度(operational intensity),强调优化 Transformer 结构中的注意力机制(attention mechanism)对于提升计算效率的关键作用。

2.1 网络结构

预训练的大规模语言模型通常基于 Transformer 体系结构,但并不完全等同于 Transformer。Transformer 在自然语言处理(NLP)领域具有重要地位,尤其在处理长距离依赖关系和并行计算方面展现出卓越能力。最初,该结构被设计用于机器翻译任务,并由编码器(encoder)和解码器(decoder)组成。编码器利用自注意力(self-attention)机制处理输入文本,提取关键信息,并生成隐藏状态(hidden states),以捕获输入内容的核心特征。解码器则借助这些隐藏状态以及交叉注意力(cross-attention)机制,逐步生成翻译文本。
对于 LLMs 而言,Transformer 结构已被扩展和优化,以适应更广泛、更复杂的任务场景,如文本生成、文本摘要、问答系统等[20, 21],其应用范围远超原始 Transformer 的设想。通常,这些优化措施包括增加模型层数、扩展参数规模、扩大训练数据集,并采用更先进的训练技术与优化方法,以提升 LLMs 的性能和泛化能力。
如图 3 所示,基于 Transformer 的 LLM 结构可以大致归为三类:仅编码器(encoder-only)、编码器-解码器(encoder-decoder)和仅解码器(decoder-only),每种结构在 NLP 领域均发挥不同作用。
image-20250312090114804.webp

  1. 仅编码器(encoder-only)结构
    该结构堆叠多个编码器块,并根据不同任务需求添加特定的输出层。典型代表是 BERT[2],其利用双向注意力(bidirectional attention)机制深度捕捉语言上下文信息,在自然语言理解(NLU)任务中表现优异。然而,该结构并不适用于所有 NLP 任务。
  2. 编码器-解码器(encoder-decoder)结构
    该结构在编码器块之后增加解码器块,用于生成序列化输出。解码器的交叉注意力(cross-attention)层以最后一个编码器块的输出作为输入,从而完整继承并增强了 Transformer 的设计理念。典型代表是谷歌提出的 T5[26],其利用编码器进行上下文理解,并通过解码器实现自回归(autoregressive)序列输出。然而,此类模型通常参数规模庞大,计算效率相对较低。
  3. 仅解码器(decoder-only)结构
    该结构省略编码器部分,仅堆叠多个解码器块,主要用于自然语言生成(NLG)任务。GPT 系列[3, 4, 27]便是此类模型的典型代表,其在生成任务中表现优异,并通过大规模预训练提升对语言理解任务的适应性。这种方法展现了其在多种 NLP 应用中的通用性,使得仅解码器结构成为当下 LLMs 领域的主流选择。
    尽管从结构上来看,仅解码器模型与仅编码器模型具有相似性,但在实际应用中,两者的运行方式存在本质区别。仅解码器模型采用自回归(autoregressive)方法进行生成,其具体细节将在 2.2 小节进一步探讨。
    image-20250312085629247.webp
    表 1 总结了近年来重要的大规模语言模型(LLMs)及其相关细节,包括其网络结构类型。LLMs 的发展在 2017 年迎来了重大突破,谷歌提出了注意力机制(attention mechanism)和 Transformer 体系结构[1]。这一创新基于该结构训练了一个包含 2.1 亿参数的编码器-解码器模型,成为 LLMs 研究领域的重要里程碑。
    2019 年,OpenAI 发布了基于 Transformer 体系结构的 GPT-2[3],其参数规模超过 10 亿。随后,2020 年 GPT-3[4] 发布,该模型的参数量达数千亿,并在大约 3000 亿个 token 上进行了预训练。此后,各大科技公司纷纷加入竞争,百度发布了 Ernie[28],谷歌推出了 PaLM[30] 和 Gemini[38],阿里巴巴发布了 QWen[39],Meta 先后推出了 Llama 模型系列[34, 36],其设计理念是使用更小的模型处理更大规模的数据集,以在相同参数规模下获得更优的效果。2024 年,Meta 发布了 Llama 3,其最大规模版本的参数量达 4050 亿。然而,近年来,LLMs 技术细节的公开透明度逐步降低,这使得相关技术的发展缺乏详细披露。但 DeepSeek V3[6] 的开源发布,为开源 LLM 研究社区注入了新的活力。
    近年来,LLMs 的参数规模和训练数据量的指数级增长,使得训练大规模模型成为极其资源密集型的任务。DeepMind 的研究[40]表明,LLMs 训练所需的计算量与模型参数数量及训练数据规模呈正比关系,进一步凸显了计算资源需求的持续攀升。此外,专家混合(Mixture of Experts, MoE)技术在 FFN 层中集成了多个“专家”子网络[41–43],每个专家模型专门用于处理特定类型的任务或数据类别,并在需要时激活进行计算。这一方法显著增强了模型的可扩展性和在多种 NLP 任务中的灵活性,同时支持模型规模的进一步扩展,并强调了在专家子网络之间进行负载均衡的必要性,以确保算法的有效性和计算效率。
    与此同时,LLMs 的发展已超越传统的语言和文本处理范畴,逐步扩展至多模态数据融合,包括图像、语音等。例如,Monkey[37] 具备处理视觉信息的能力,GPT-4o[6] 展现了出色的语音处理能力,而 OpenAI 的 Sora[7] 则能够根据文本描述生成视频。这些进展进一步拓宽了 LLMs 在人工智能领域的应用前景。
    随着大规模语言模型(LLMs)的规模不断增长,针对提高模型精度和计算效率的优化策略相继被提出。其中,简化注意力机制(Simplified Attention 或 Efficient Attention) 尤为重要。该方法利用“仅部分关键元素在计算过程中是活跃或重要的”这一特性,通过模型简化和裁剪技术减少计算操作,从而提升计算效率。考虑到深度学习模型中普遍存在的参数冗余问题,研究模型的稀疏性(Sparsity) 可以有效减少计算量或降低整体参数规模。
    LLMs 计算的主要挑战之一在于注意力机制(Attention Mechanism) 的计算复杂度随序列长度呈二次增长,即 $O(s^2)$ 。这种增长模式在处理超长序列时尤为突出,导致存储需求和计算量大幅增加。为此,近年来提出了一系列简化注意力机制,包括 Sparse Transformer[44] 的稀疏注意力(Strided Sparse Attention)、Reformer[45] 的哈希注意力(Hashing Attention)、Longformer[46] 的滑动窗口注意力(Sliding Attention)、Big Bird[47] 的随机注意力(Random Attention)、StreamingLLM[48] 的有限长度注意力(Finite-Length Attention)、PCW[49] 的注意力掩码(Attention Mask)以及 LONGNET[50] 的膨胀注意力(Dilated Attention)。这些技术有效降低了计算复杂度,提高了计算与内存利用率,从而增强 LLM 在长文本处理任务中的计算效率[51]。
    此外,针对 LLM 结构,还提出了多种优化策略,包括层归一化(Layer Normalization)位置编码(Positional Encoding)激活函数(Activation Functions) 等:
  • 层归一化(Layer Normalization):用于对神经网络每一层的激活值进行归一化,以提高训练稳定性和模型精度。主流方法包括 LayerNormRMSNormDeepNorm
  • 位置编码(Positional Encoding):用于为 Transformer 结构提供词嵌入的相对或绝对位置信息,当前常见的方法包括 绝对位置编码相对位置编码带线性偏差的注意力(ALiBi)旋转位置编码(RoPE)
  • 激活函数(Activation Functions):用于赋予神经网络非线性能力,主流方法包括 ReLUGeLU,近年来发展出 ReGLUGEGLUSwiGLU,进一步提升计算性能。
    尽管这些优化方法主要针对局部计算单元,但它们共同推动了 LLM 结构的演进。目前,编码器-解码器(Encoder-Decoder)仅编码器(Encoder-Only)仅解码器(Decoder-Only) 三种网络结构仍在不同应用场景中发挥作用。其中,仅解码器结构(Decoder-Only)(如 GPT 系列)最为普遍,但仅编码器(Encoder-Only)(如 BERT)和编码器-解码器(Encoder-Decoder)(如 T5)结构在特定任务中仍具有重要应用价值[52–56]。

    LLMs 的执行模式

    LLMs 计算主要包括训练(Training)推理(Inference)两种模式。训练过程进一步划分为预训练(Pre-training)微调(Fine-tuning)阶段,其中微调方法包括 LoRA[57]、Prefix Tuning[58] 和 Adapter[59]。训练过程通常涉及大规模数据集和高计算资源消耗。
  • 预训练 采用通用语料进行大规模训练,旨在学习通用语言表示。
  • 微调 采用特定领域数据,对模型参数进行调整,以适应特定任务需求。
    尽管二者的数据来源不同,但它们的计算范式相同。此外,近年来还引入了一系列提升 LLM 适应性的训练技术:
  • 指令微调(Instruction Fine-Tuning, IFT)[60]:通过明确指令引导模型行为,提升 LLM 的适用性。
  • 思维链推理(Chain of Thought, CoT)[61]:将复杂任务拆解为可解释的推理步骤,提高模型在多步骤任务中的表现。
  • 人类反馈强化学习(Reinforcement Learning from Human Feedback, RLHF)[62]:通过人类专家反馈优化模型,增强交互能力和输出质量。
    LLM 的训练涉及前向传播(Forward Propagation)反向传播(Backward Propagation)参数更新(Parameter Update)三大步骤:
  1. 前向传播(Forward Pass):输入数据经过网络结构传递,生成相应的激活值。
  2. 反向传播(Backward Pass):计算梯度并进行梯度传递,以调整模型参数。
  3. 参数更新(Parameter Update):采用优化算法(如 Adam、SGD 等)更新模型权重,以提高模型的学习能力。
    当前主流 LLM 训练通常采用同步训练(Synchronous Training) 方法,以保证训练稳定性和一致性,但这也带来了显著的计算负担。在训练过程中,优化器状态和梯度计算需要额外的存储资源,同时前向传播产生的激活值必须保留,以便在反向传播时使用。这些内存开销构成了训练优化的关键挑战之一。
    尽管训练策略和超参数设置[63]不会改变 LLM 的基本计算流程,但优化超参数可以有效降低训练成本并提高模型精度。例如:
  • 权重初始化(Weight Initialization):影响模型的早期学习状态。
  • 学习率调整策略(Learning Rate Scheduling):如 预热(Warmup)LARSLAMB余弦衰减(Cosine Decay),用于保证大批量训练的稳定性。
  • 优化器选择(Optimizer Selection):主流方法包括 AdamAdamWAdaFactorSGD,并结合 权重衰减(Weight Decay) 以防止过拟合,梯度裁剪(Gradient Clipping) 以避免梯度爆炸,以及 Dropout 以提升泛化能力。
    推理(Inference)指的是使用已训练的模型执行特定任务,此过程仅涉及前向传播(Forward Propagation)。为了提高吞吐量(Throughput)或降低推理延迟(Latency),通常会采用多种优化策略。本研究主要聚焦于训练方法及其优化,但推理过程仍然是 LLM 计算的重要组成部分。
    自回归(Auto-Regressive)仅解码器(Decoder-Only) 模型为例,其推理过程依赖于所有先前生成的 token 来预测新的 token。在训练阶段,模型通常采用教师强制(Teacher Forcing)[64]和注意力掩码(Attention Mask)[1]等技术,以支持高效的并行训练(Parallel Training)
  • 教师强制(Teacher Forcing):训练过程中,下一步的输入不是由模型上一次预测的输出决定,而是直接使用正确的目标 token,从而加速训练收敛并减少误差传播。
  • 注意力掩码(Attention Mask):用于屏蔽未来 token 的信息,以保证训练过程中不会利用尚未生成的数据,从而模拟推理过程中的自回归生成模式。
    在推理阶段,模型按照逐 token(Token-by-Token) 的方式进行计算,每个生成步骤依赖于先前的预测结果,这种循环迭代(Iterative Process) 导致推理过程无法并行化。当采用KV 缓存(Key-Value Cache)技术时,每次输入仅包含前一步预测出的 token,而不是整个上下文序列。这意味着推理过程必须严格按序列进行(Sequential Processing),无法像训练阶段那样通过掩码和并行计算提高效率。
    图 4 所示,推理过程中需要执行大量的迭代计算,且由于其自回归特性,无法实现并行化推理,这也成为 LLM 推理优化的主要挑战之一。
    image-20250312090909491.webp

模型分析

2.3.1 Attention & FFN

Transformer 体系结构推出以来,尽管混合专家模型(MoE)层归一化(Layer Normalization)位置编码(Positional Encoding) 以及激活函数(Activation Function) 等技术的发展显著提升并优化了 Transformer 结构,但 LLM 的基本计算组件 依然保持不变,其核心仍然基于注意力机制(Attention Mechanism)前馈神经网络(Feed-Forward Network, FFN) 进行构建。
同时,超参数(Hyperparameters)的取值不会影响每个基本算子的行为,而仅决定算子内部计算的数据具体数值。因此,在后续分析中,我们主要关注解码器(Decoder)块中的注意力机制(Attention)前馈网络(FFN) 模块。
图 5 所示,每个解码器块(Decoder Block)多头自注意力(Multi-Head Self-Attention, MHSA) 机制和全连接前馈网络(Fully-Connected FFN) 组成,其中 FFN 位于注意力机制之后。此外,这两部分均采用残差连接(Residual Connections)归一化(Normalization) 技术,以提升神经网络的收敛能力(Convergence Capability)[32]。
image-20250312091139686.webp
注意力机制(Attention Mechanism) 依赖于三个输入:查询(Query, Q)键(Key, K)值(Value, V)。其核心计算是衡量输入序列不同部分之间的相似性(通常通过 Q 与 K 的点积 进行计算),从而有效地对输入信息进行加权,以突出关键信息并忽略次要信息。这一机制显著提升了模型在序列处理任务中的信息捕获能力。其计算过程可表示为以下数学公式:

其中, $Q, K, V$ 分别表示查询矩阵键矩阵值矩阵, $d_k$ 为注意力头的维度。
多头自注意力(Multi-Head Self-Attention, MHA) 是解码器块中最常见的结构,如图 5(a) 所示。首先,自注意力机制(Self-Attention)内部注意力(Intra-Attention) 负责捕获输入序列中的相关性。查询、键和值矩阵 $Q, K, V$ 由相同的输入矩阵 $X$ 通过线性变换(Linear Transformations) 生成。随后,在多个子空间(即多个注意力头)中独立计算注意力权重,使模型能够同时关注输入数据的不同信息特征。最终,通过线性层(Linear Layer) 组合每个头的输出,形成多头注意力输出(MHA Output),从而提高模型对复杂序列关系的建模能力。
前馈神经网络(Feed-Forward Network, FFN) 中,每个 token 的状态信息在多头注意力机制 聚合后的结果基础上独立处理。FFN 通常由两层全连接层(Fully-Connected Layers) 组成,中间配备激活函数(如 ReLU)。其计算过程可表示如下:

FFN 在 Transformer 结构中主要执行矩阵运算(Matrix Operations),这一特性使其非常适合矩阵计算单元(Matrix Function Unit, MFU) 进行加速。然而,由于 Transformer 结构的特性以及较大的隐藏层维度,FFN 是 LLM 中参数数量与计算量的主要贡献者。大规模矩阵运算远超片上 SRAM(Static Random-Access Memory) 的存储能力,因此,设计高性能计算核(Computational Kernel),特别是针对 MFU 的优化,至关重要。
具体而言,在传统 Transformer 架构中,FFN 第一层全连接层的权重矩阵(Weight Matrix) 形状通常为 $(h, 4h)$ ,其中 $h$ 代表隐藏层维度(Hidden Dimension)。然而,某些模型(如 LLaMA[34] 和 LLaMA 2[36])采用了不同的设计方案,其第一层全连接层的隐藏维度大小为 $2.7h$ 而非传统的 $4h$ 。

2.3.2 计算强度(Operational Intensity)

为了更有效地分析 Transformer 的计算瓶颈,有必要分解其计算步骤,并评估其算术运算总量(Arithmetic Operations, AOPs)计算强度(Computational Intensity)。其中:

  • 浮点算术运算总量(AOPs) 反映模型对计算资源的需求。
  • 计算强度(Operational Intensity, OI) 也称 算术强度(Arithmetic Intensity),用于衡量单位内存访问所涉及的计算量。计算强度高的操作被视为计算密集型(Compute-Intensive),而计算强度低的操作则属于内存受限型(Memory-Bound)
    计算强度的计算公式如下:其中, $#AOPs$ 为算术运算的总数, $#MOPs$ 为内存访问操作(Memory Operations) 的总数。

【未完待续】