1、LLM推理的核心逻辑

主流的仅解码型LLM(如GPT-4、通义千问系列)均以因果建模为预训练目标,本质是“下一词预测器”。「这类模型接收一串token作为输入,通过自回归方式生成后续token,直到触发停止条件(如达到token数量上限、遇到停止词或生成特殊结束标记)」。整个过程分为两个关键阶段:预填充阶段和解码阶段。

需要说明的是,token是模型处理语言的基本单位,一个token约对应4个英文字符,所有自然语言在输入模型前都会被转换为token。下图展示了大模型的推理流程:图片

1.1 预填充阶段(Prefill)

预填充阶段可理解为“输入处理阶段”。此时,LLM会对输入的所有token进行处理,计算生成第一个输出token所需的中间状态(键值对,即keys和values)。由于输入序列是已知的,这一阶段的运算可通过高度并行的矩阵操作完成,能充分利用GPU的计算能力。

1.2 解码阶段(Decode)

解码阶段即“输出生成阶段”。模型会逐一生成输出token,直到满足停止条件。「每个新token的生成都依赖于此前所有token的状态(包括预填充阶段的输入token及解码阶段已生成的token的keys和values)」。与预填充阶段不同,这一阶段更接近矩阵与向量的运算,GPU的计算能力难以被充分利用。此时,数据(权重、键值对、激活值)在内存与GPU间的传输速度成为延迟的关键瓶颈,而非实际计算时间——这是典型的受内存带宽约束的操作

本文讨论的多数推理优化技术,核心都聚焦于解码阶段:如何优化注意力模块、高效管理键值缓存等。

此外,不同LLM可能采用不同的tokenizer,因此直接对比输出token数量意义有限。例如,即使两个模型每秒生成的token数相近,若tokenizer不同,其对应的字符数量可能差异显著,实际吞吐量需结合具体tokenizer分析。

1.3 批处理(Batching)

提升GPU利用率和实际吞吐量的基础方法是批处理。由于多个请求共享同一模型,权重的内存成本被分摊,「大批量数据一次性传输到GPU处理,能显著提高资源利用率」。但批处理规模存在上限,超过上限可能导致内存溢出,这就需要结合键值(KV)缓存和LLM的内存需求进行调控。

静态批处理(传统批处理)存在明显缺陷:同一批次中不同请求的生成token数量可能差异很大,执行时间各不相同,所有请求都需等待最长token序列处理完成,这种“等待成本”在序列长度差异悬殊时会被放大。为此,动态批处理技术应运而生(如vLLM的Continuous Batching、TensorRT-LLM的Dynamic Batching),可实时调整批次组成,减少无效等待。

1.4 KV缓存

解码阶段的经典优化是KV缓存。虽然每个时间步仅生成一个token,但该token依赖于此前所有token的键(K)和值(V)张量(包括预填充阶段的输入token及解码阶段已生成token的KV张量)。「为避免在每个时间步重复计算这些张量,可将其缓存到GPU内存中」。每次迭代生成新token后,新的KV张量会被追加到缓存中,供下一次迭代使用(部分实现中,模型的每一层都有独立的KV缓存)。下图展示了KV缓存的工作机制:

图片

1.5 大模型内存需求

LLM对GPU显存的需求主要来自两部分:模型权重和KV缓存。

  • 模型权重:模型参数占用的内存。例如,70亿参数的模型(如Llama 2-7B)以16位精度(FP16或BF16)加载时,内存占用约为7B * 2字节 ≈ 14GB
  • KV缓存:自注意力张量的缓存,用于避免重复计算。

批处理时,每个请求的KV缓存需单独分配,可能占用大量内存。以下公式描述了主流LLM架构中KV缓存的大小:

每个Token的KV缓存(字节)= 2 * 层数(num_layers) * (头数(num_heads) * 头维度(dim_head)) * 精度(字节)

公式中“2”对应K和V矩阵,而num_heads * dim_head通常等于Transformer的隐藏层维度(hidden_size或d_model),这些参数可在模型配置文件中查询。

对于半精度(FP16),总KV缓存大小计算公式为:

总KV缓存(字节)= 批次大小(batch_size) * 序列长度(sequence_length) * 2 * 层数(num_layers) * 隐藏层维度(hidden_size) * 2字节

以Llama 2-7B(16位精度)为例,若批次大小为1、序列长度4096,KV缓存大小为1 * 4096 * 2 * 32 * 4096 * 2字节 ≈ 2GB。加上模型权重的14GB,单卡显存需求至少16GB。

可见,高效管理KV缓存是推理优化的核心挑战之一。内存需求随批次大小和序列长度线性增长,这限制了吞吐量,也给长上下文输入场景带来难题——这正是后续优化技术的核心动机。

2、 模型并行技术

「为减少单设备的显存占用,可将模型分布到多个GPU上,通过分散内存和计算压力,支持更大模型或更大批次的推理」。模型并行是处理超大规模模型(超出单设备内存)的必要技术,其效果(延迟或吞吐量)取决于权重的划分方式。

需注意,数据并行也是常见技术:模型权重复制到多个设备,全局批次被拆分为微批次在各设备并行处理,主要用于提升训练效率,在推理中应用较少。

2.1 流水线并行(Pipeline Parallelism)

流水线并行将模型“垂直”分片为多个块,每个块包含部分层,部署在独立设备上。下图展示了4路流水线并行:模型按顺序分区,每台设备运行四分之一的层。
图片

前一设备的输出传递到下一设备继续处理,F_nB_n分别表示设备n上的前向和反向传播。此时,单设备的权重内存需求降至原来的1/4。

缺点:由于处理的顺序性,部分设备或层在等待前一层输出(激活值、梯度)时可能空闲,导致“流水线气泡”(Pipeline bubbles)。如上图(b)中白色区域所示,设备利用率被浪费。

为缓解这一问题,可采用微批处理:将全局批次拆分为多个子批次,设备完成一个子批次后立即处理下一个,缩小气泡但无法完全消除(如上图(c))。

2.2 张量并行(Tensor Parallelism)

张量并行将模型的单个层“水平”分片为独立计算块,在不同设备上并行执行。Transformer的注意力块和MLP层是主要优化对象:例如,多头注意力中,每个头或一组头可分配给不同设备,独立并行计算。
图片

上图(a)为两层MLP的张量并行示例:第一层权重矩阵W1被分为W1_1W1_2,输入x在不同设备上分别计算x*W1_1x*W1_2I为恒等操作),单设备权重内存需求减半;第二层输出通过归约操作(R)合并。

上图(b)展示了自注意力层的张量并行:多个注意力头天然并行,可跨设备拆分处理。

2.3 序列并行(Sequence Parallelism)

张量并行存在局限:难以处理LayerNorm、Dropout等操作(这些操作在张量并行中通常被复制)。虽然它们计算成本低,但冗余的激活值存储仍会占用大量内存。

研究表明(如论文《Reducing Activation Recomputation in Large Transformer Models》),这些操作在输入序列上是独立的,可沿“序列维度”分区处理,提升内存效率——这就是序列并行。
在这里插入图片描述

实际应用中,多种模型并行技术可结合使用(如Megatron-LM同时采用张量并行和序列并行),进一步降低单卡内存压力。除了模型并行,注意力模块本身也有专门的优化技术。

3、 注意力机制优化

缩放点积注意力(SDPA)是Transformer的核心操作(如论文《Attention Is All You Need》所述),其优化直接影响模型性能。

3.1 多头注意力(MHA)

作为SDPA的增强,「Q、K、V三个张量分别经过线性变换(不改变维度),使模型能同时关注不同位置的不同表示子空间信息」。这些子空间独立学习,让模型对输入的理解更丰富。

如下图所示(左为缩放点积注意力,右为多头注意力),多个并行注意力操作的输出被拼接后,再经线性投影合并。每个并行注意力层称为“头”,即多头注意力(MHA)。

在这里插入图片描述

当使用8个并行头时,每个头的维度降低(如d_model=512时,每个头维度为512/8=64),计算成本与单头注意力接近,但表达能力显著提升。

3.2 多查询注意力(MQA)

多查询注意力(MQA)是MHA的推理优化版本(源自论文《Fast Transformer Decoding》):多个注意力头共享K和V,仅Q保持多投影。

虽然计算量与MHA相同,但内存读取的数据量(K、V)大幅减少,「在内存带宽受限场景下,能显著提升计算资源的利用率」。同时,KV缓存的内存占用减少,可支持更大批次。

需注意,「K头数量减少可能导致模型精度下降」,且需在训练时启用MQA(或用少量训练量微调)才能在推理中生效。

3.3 分组查询注意力(GQA)

分组查询注意力(GQA)在MHA和MQA之间取平衡:将K和V投影到多组查询头,每组内采用类似MQA的共享机制。

在这里插入图片描述

上图中,MHA(左)有多个KV头;GQA(中)的KV头数量介于1和查询头之间,平衡内存与精度;MQA(右)仅1个KV头,内存效率最高。

初始用MHA训练的模型,可通过少量“升级训练”(约5%原始训练量)迁移到GQA,在接近MHA精度的同时,保持接近MQA的效率。「Llama 2 70B、GPT-4等模型均采用GQA」

MQA和GQA通过减少KV头数量降低缓存内存,但缓存的管理方式仍可能存在低效——下一节将介绍更优的KV缓存管理技术。

3.4 FlashAttention

另一种优化思路是调整计算顺序,更好地利用GPU内存层次结构。神经网络通常按层顺序执行,但这未必最优——若能对已进入高性能内存层次的值集中计算,可减少内存读写。

通过融合多个层的计算,可最大限度减少GPU的内存读写次数,将依赖相同数据的计算分组(即使分属不同网络层)。

FlashAttention是典型的融合优化(详见论文《FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness》),「它是一种感知I/O的精确注意力算法」,数学上与标准MHA等价(支持MQA、GQA变体),可直接替换现有模型(包括已训练模型)。

在这里插入图片描述

其核心是“分块计算”:「一次性计算并输出最终矩阵的一小块,而非分步计算整个矩阵并写入中间值」,减少内存往返。上图展示了40GB GPU上的分块模式及内存层次,右图可见融合优化带来的显著加速(最新的FlashAttention-2进一步提升了长序列场景的效率)。

3.5 PageAttention

传统KV缓存常为支持最大序列长度(如2048)静态“过度分配”内存,无论实际输入/输出长度如何,均预留固定空间,导致大量内存浪费或碎片(如短序列请求占用长序列缓存)。下图展示了这种低效管理导致的问题:
在这里插入图片描述

受操作系统分页机制启发,UC伯克利提出PagedAttention算法(详见论文《Efficient Memory Management for Large Language Model Serving with PagedAttention》),「允许将连续的KV张量存储在内存的非连续空间中」。它将每个请求的KV缓存划分为固定token数量的块,块可非连续存储,通过索引记录位置。

生成新token时,动态分配新块;计算注意力时,通过索引聚合块数据。固定块大小消除了因请求长度差异导致的低效,大幅减少内存浪费,支持更大批次(提升吞吐量)。vLLM推理框架正是基于PagedAttention实现,在高并发场景下表现优异。

4、模型优化技术

前文讨论了内存消耗、多GPU分配、注意力与KV缓存优化,本节聚焦通过修改模型权重减少单卡内存占用的技术——这些技术常结合GPU专用硬件加速,进一步提升效率。

4.1 量化(Quantization)

「量化是降低模型权重和激活值精度的过程」。多数模型以32位或16位精度训练(单精度/半精度浮点),但实践表明,许多模型可用8位甚至更低精度有效表示。

在这里插入图片描述

上图展示了量化前后的值分布:通过损失部分精度和剪裁动态范围,实现更小格式存储。

量化的核心价值:

  • 内存占用减少:如4位量化可将权重内存降至16位的1/4,使单卡能运行更大模型。
  • 加速计算:低精度数据在相同带宽下传输更快,且GPU(如NVIDIA Tensor Core)有专用硬件加速低精度运算(如INT8、FP8)。

LLM量化技术多样,可单独量化权重、激活值或两者结合:

  • 权重量化:较简单(权重训练后固定),但需注意GPU通常无INT8×FP16的直接运算单元,可能需临时转回高精度。
  • 激活量化:挑战更大,因激活值常含异常值,动态范围大。解决方案包括:用代表性数据集定位异常值高发位置(如LLM.int8())、复用权重的动态范围等。

主流量化方法有GPTQ(量化时优化权重)、AWQ(激活感知量化)、SmoothQuant(平衡权重与激活的量化难度)等,在精度与效率间各有侧重。

4.2 稀疏(Sparsity)

与量化类似,许多深度学习模型对“修剪”具有鲁棒性——可将接近0的值替换为0,形成稀疏矩阵。「稀疏矩阵中大量元素为0,可通过压缩格式存储,节省空间」
在这里插入图片描述

GPU对结构化稀疏(如每4个值含2个0)有硬件加速,稀疏表示还可与量化结合,进一步提升速度。「如何为LLM找到最优稀疏格式仍是研究热点」,例如稀疏比例(如50%、75%)、稀疏模式(结构化/非结构化)的选择,需在精度损失与效率提升间权衡。

4.3 蒸馏(Distillation)

蒸馏通过将大模型(教师)的知识迁移到小模型(学生),实现模型瘦身。「核心是训练学生模仿教师的行为」,典型案例如DistilBERT:压缩BERT 40%,保留97%语言理解能力,速度提升60%。

LLM蒸馏源于论文《Distilling the Knowledge in a Neural Network》:学生通过损失函数匹配教师输出(logits),可能同时结合原始标签损失。匹配对象可为教师的最后一层输出或中间层激活值。
在这里插入图片描述

蒸馏的扩展方法包括:

  • 用教师合成的数据监督训练学生(适用于人工标注稀缺场景)。
  • 提取教师的推理过程(如中间步骤)作为学生的训练目标,提升数据效率。

需注意,许多LLM的许可证禁止用于训练其他模型,给教师模型的选择带来限制。当前研究聚焦于无监督蒸馏(无需教师输出)、跨模型蒸馏等方向。

5、模型服务技术

即使应用了上述优化,LLM推理仍可能受内存带宽限制。提升并行性是关键,主要有两种思路:动态批处理(并行处理多请求)和预测推理(并行生成多token)。

5.1 动态批处理(In-flight Batching)

LLM的工作负载高度动态:从短对话到长文档生成,输出长度差异可达数个数量级,静态批处理(固定批次)效率低下(需等待最长序列完成)。

「动态批处理(如连续批处理)通过实时调整批次组成解决这一问题」:服务器运行时会立即从批次中移除已完成的请求,同时加入新请求,无需等待整个批次结束。这显著提升了GPU在实际场景中的利用率。

主流实现包括vLLM的Continuous Batching、Triton Inference Server的Dynamic Batching,可根据请求完成状态动态调度,平衡延迟与吞吐量。

5.2 预测推理(Speculative Inference)

自回归生成的特性导致LLM需逐个生成token(第n+1个依赖第n个),难以并行。「预测推理(又称推测采样)通过并行验证多个候选token,突破这一限制」

在这里插入图片描述

上图示例中,低成本的“草稿模型”生成多个候选token,主模型并行验证:匹配的token被接受,不匹配的则从第一个差异点截断,重新生成。

核心步骤:

  1. 用低成本方式(如小模型、多步预测头)生成草稿序列(含多个token)。
  2. 主模型并行验证草稿序列,接受匹配部分,截断不匹配部分。

草稿生成的方式多样:

  • 用小模型作草稿模型,大模型作验证器(如DeepMind的GLaM)。
  • 单模型多头部设计,部分头预测多步token(如Medusa推理)。

预测推理可在不损失精度的前提下,将生成速度提升2-3倍,是长文本生成场景的关键优化。

6、总结

大模型推理优化是一个多维度协同的过程:从模型并行(突破单卡内存限制)到注意力机制优化(提升计算效率),从量化稀疏(压缩模型体积)到服务技术(提升并行性),每类技术都有其适用场景。实际部署中,需结合模型特性(如大小、架构)、硬件资源(如GPU显存、带宽)和业务需求(如延迟、吞吐量),选择合适的优化组合,才能实现大模型的高效落地。

7、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

8、为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

在这里插入图片描述

在这里插入图片描述

9、大模型入门到实战全套学习大礼包

1、大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

img


2、大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

在这里插入图片描述

3、AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

img

4、大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

img

5、大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

img

适用人群

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐