大模型推理优化全攻略:深入解析数据、模型、系统级策略,解决高延迟低吞吐问题!
本文深入剖析大语言模型(LLM)推理优化的多维度策略,包括数据级别优化(输入压缩与输出组织)、模型级别优化(高效结构设计与压缩)及系统级别优化(推理引擎与服务系统)。文章详细分析了影响推理性能的关键因素(模型大小、注意力机制、解码机制),并介绍KV缓存、量化、稀疏化、连续批处理等技术,为解决LLM部署中的高延迟、低吞吐问题提供了系统化的解决方案。
简介
本文深入剖析大语言模型(LLM)推理优化的多维度策略,包括数据级别优化(输入压缩与输出组织)、模型级别优化(高效结构设计与压缩)及系统级别优化(推理引擎与服务系统)。文章详细分析了影响推理性能的关键因素(模型大小、注意力机制、解码机制),并介绍KV缓存、量化、稀疏化、连续批处理等技术,为解决LLM部署中的高延迟、低吞吐问题提供了系统化的解决方案。
大语言模型 (LLM) 因其在各种任务中的卓越表现而备受关注。 然而大语言模型的部署推理并不简单,尤其是针对在给定资源受限场景下,巨大的计算和内存需求给LLM推理部署带来了挑战,具体如:高延迟、低吞吐、高存储等。

一、前期知识
在了解推理之前,可能我们需要了解一些潜在知识,如Transformer,注意力机制等。但这篇文章就不再进行重复说明,可以看我之前的文章
二、推理拆解
目前最流行的大语言模型,即解码器的大语言模型(Decode Model),采用自回归方法来生成输出句子。 具体来说,自回归方法逐个生成 token。 在每个生成步骤中,大语言模型将输入 token 和先前生成的token的整个 token 序列作为输入,并生成下一个 token。但随着序列长度的增加,生成过程的时间成本急剧增长,行业为了解决这一挑战,已经引入了一种关键技术,即键值 (KV) 缓存,以加快生成过程。 KV 缓存技术顾名思义,涉及存储和重用多头自注意力 (MHSA) 块内的先前键 (K) 和值 (V) 对。该技术因其对生成延迟的实质性优化而被广泛采纳于大语言模型的推理引擎和系统中。正是基于KV Cache缓存管理和使用这个方法,所以大模型推理被划分为预填充(Prefill)和解码阶段(decode)

推理分析与关键指标
研究表明:影响大模型推理延迟方面的主要指标是计算成本、内存访问成本和内存使用量,而影响这三个指标低下的三个根本原因是:模型大小、注意力机制、解码机制。如下图所示,为一次生成过程中内存随时间变化(延迟)的示意图,表明Model Size、KV Cache Sizey对模型生成token的时延影响比较大(Peak Memory = Model Size + KV Cache)。
这里我们也提一下模型推理的关键指标:
- 吞吐量(Throughput): 吞吐量衡量系统单位时间内处理的请求数量,通常以每秒生成的Token数表示。提高吞吐量的方法包括增加批处理大小(batch size)和优化硬件资源,但需要权衡用户的响应时延。
- 时延(Latency) 时延是指从用户发出请求到接收到完整响应的时间。对于流畅的用户体验,时延应尽可能低,通常建议每个Token的生成时间不超过50毫秒。
- 首Token时间(TTFT) TTFT是指从用户提交请求到生成第一个Token的时间。TTFT越短,用户的等待体验越好。优化TTFT可以通过减少预填充阶段的计算时间或提高硬件性能来实现。
- 每个输出Token的时间(TPOT) TPOT衡量生成每个Token所需的时间,通常与用户的阅读速度相关。理想情况下,TPOT应与用户的阅读速度匹配,以提供流畅的交互体验。
- 每秒请求数(RPS) RPS反映系统处理并发请求的能力,尤其在高负载场景下尤为重要。通过分布式部署和异步处理,可以有效提高RPS。
- 词元间时延(ITL) ITL是指连续生成两个Token之间的平均时间。优化ITL有助于提升生成速度,尤其在长文本生成任务中。

为什么模型大小、注意力机制、解码机制这三个因素对模型推理影响大呢?现在我们一一来分析。
模型大小:主流 LLM 通常包含数十亿甚至万亿个参数。如,LLaMA-70B 模型包含 700 亿个参数,而 GPT-3 模型最多可扩展到 1750 亿个参数。 这种相当大的模型从参数量不断增加,明显逐渐增加了 LLM 推理过程中的计算成本、内存访问成本和内存使用量。
注意力操作:在预填充阶段,自注意力操作在输入长度上表现出二次计算复杂度。 因此,随着输入长度的增加,注意力操作的计算成本、内存访问成本和内存使用量迅速增加。
解码机制:自回归解码方法逐个生成 Token。如下图所示, 在每个解码步骤中,所有模型权重都从片外 HBM 加载到 GPU 芯片(SRAM),导致内存访问成本很高。 此外,KV 缓存的大小随着输入长度的增长而增加,可能导致内存碎片化和不规则的内存访问模式。

三、推理优化关键
既然已经知道了模型大小、注意力机制、解码机制,这三个会影响大模型推理,那目标其实有了,就从这三个方面来进行推理优化。研究发现可以通过这三个点来优化:数据级别优化、模型级别优化和系统级别优化。
数据级别优化:指通过优化输入提示(即输入压缩)或更好地组织输出内容(即输出组织)来提高效率。 这种优化通常不改变原始模型,因此无需昂贵的模型训练成本。
模型结构优化: 指在推理过程中设计高效的模型结构(即高效结构设计)或压缩预训练模型(即模型压缩)以提高其效率。1)通常需要昂贵的预训练或少量微调成本来保留或恢复模型能力; 2)通常会在模型性能上有所损失。
系统级别优化:指优化推理引擎或服务系统。1)不涉及昂贵的模型训练; 2)通常在模型性能上没有损失。
四、推理之输入数据优化
在数据层面可分为两类,即输入压缩和输出组织。而输出组织技术通过组织输出内容结构来实现批处理(并行)推理,从而提高硬件利用率并降低生成延迟。
输入压缩
输入压缩:是直接缩短模型输入以降低推理成本(包括prompt)。这一块分为:提示修剪、prompt summary、soft prompt-based compression、检索增强生成。
提示剪修: 是根据预定义的或可学习的重要性指示符,在线地从每个输入提示中移除不重要的 token、句子或文档。
Prompt Summary : 是在保留相似语义信息的同时,将原始Prompt压缩成一个更短的摘要。如:首先将文本分解成句子,再按主题对句子进行分组,然后对每个组内的句子进行摘要。
Soft Prompt-based Compression: 设计一个比原始Prompt短得多的Soft Prompt,作为LLM的输入。 Soft Prompt被定义为一系列可学习的连续Token。 一些技术采用了对固定前缀Prompt(例如,系统Prompt、任务特定Prompt)的离线压缩。
检索增强生成: 旨在通过整合外部知识源来提高 LLM 回答的质量(例如通过RAG从大量数据中检索到相关内容并整理好,再给到大模型推理)。
输出组织
输出组织:是指在通过组织输出内容的结构来(部分)并行化生成。这里有一个例子:假设用户问:中国菜有哪些典型种类? 模型:第一阶段输出一个大致的内容列表,面条、火锅、米饭;模型:然后再根据面条、火锅、米饭进行扩展。

这种方法在行业叫做SOT(Skeleton of Thought) ,意思是先生成知识框架,然后再在框架里面细化内容。
五、推理之模型结构优化
大语言模型(LLM)的高效推理的模型级优化主要集中在优化模型结构或数据表示。模型结构优化包括直接设计高效的模型结构、修改原始模型以及调整推理时的架构,这种方式一般都伴随着模型的全量训练。模型结构设计对于基于 Transformer 的大语言模型(LLM)的关键组件,包括前馈网络(FFN)和注意力操作,在推理过程中存在效率挑战。a) FNN占基于 Transformer 的大语言模型(LLM)参数的很大一部分,导致显著的内存访问成本和内存使用量,尤其是在解码阶段。 例如,FFN 模块在 LLaMA-7B 模型中占参数的 63.01%,在 LLaMA-70B 模型中占 71.69%; b) 注意力运算对输入长度具有二次复杂度,导致计算成本和内存使用量巨大,尤其是在处理更长的输入上下文时。
既然模型结构优化主要问题点是 FNN和注意力,那么我们就可以针对这两个点来进行优化。总的来说,模型结构优化方式有:高效 FFN 设计、高效注意力设计以及 Transformer 替代方案;
高效FFN设计
基于FNN优化,许多研究集中于将专家混合MoE技术整合到大语言模型(LLM)中,以提高其性能,同时保持计算成本。 MoE 的核心思想是动态地为不同的输入 token 分配不同的计算预算。在基于MoE的Transformer 中,多个并行的前馈网络(FFN)与一个可训练的路由模块一起使用。 在推理过程中,模型会根据路由模块的控制,为每个 token 选择性地激活特定的专家。从MoE结构设计来说,主要是从下面三个点优化:
1、主要侧重于优化MoE获取专家权重的过程或使这些专家更轻量级以提高效率;
2、侧重于改进 MoE 模型中路由模块(或策略)的设计。
3、改进moe模型训练方法。
高效注意力设计
注意力操作是 Transformer 架构中的关键组成部分。 然而其相对于输入长度的二次复杂度会导致显著的计算成本、内存访问成本和内存使用量,尤其是在处理长上下文时。 为了解决这个问题,研究人员正在探索更有效的方法来近似原始注意力操作的功能。 这些研究大致可以分为两个主要分支:多查询注意力 (multi-query attention) 和低复杂度注意力 (low-complexity attention)。
1、多查询注意力 (multi-query attention):通过在不同注意力头之间共享键 (K) 和值 (V) 缓存来优化注意力操作。这里有很多方法,如MHA、MQA、GQA等都是通过在注意力结构设计实现高效推理。
2、低复杂度注意力:旨在设计新的机制,以降低每个注意力头的计算复杂度。
a) 基于核的注意力:通过一个注意力核来近似非线性的softmax函数。

b)低秩注意力技术:在执行注意力计算之前,对 K 和 V 矩阵的 Token 维度(即 n)进行压缩,使其变为一个更小的固定长度(即k),注意 k << n 。

Transformer替代方案
除了将高效技术应用于attention操作外,最近的研究还创新性地设计了高效且有效的序列建模架构,比较典型的代表就是空间状态模型(SSM)和RNN结合Transformer(RWKV)。
a)状态空间模型 (SSM) 在某些自然语言处理 (NLP) 和计算机视觉 (CV)任务中展现了具有竞争力的建模能力。 与基于注意(attention-based)的 Transformer 相比,SSM 在计算和内存复杂度上相对于输入序列长度呈线性关系,这提高了其处理长上下文序列的效率。

b)RWKV有效的将TNN的推理和Transformer的并行训练结合起来,达到高效训练和推理的框架。
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

模型压缩
在数据表示优化方面,通常采用模型压缩技术,这种方式则伴随着模型的微调。模型压缩包含一系列旨在通过修改数据表示(例如量化)或改变其架构(例如稀疏化、结构优化和动态推理)来提高预训练模型的推理效率的技术。数据优化方式有:模型数据量化、模型权重数据稀疏化、模型数据结构优化、模型动态推理。
模型数据量化
量化是一种广泛采用的技术,它通过将模型的权重和激活从高位宽表示转换为低位宽表示来降低 LLM 的计算和内存成本。 具体来说,许多方法涉及将 FP16 张量量化为低比特整数张量,这可以表示为

其中X(FP16) 表示 16 位浮点(FP16)值,X(INT) 表示低精度整数值,N 表示比特数,而 S 和 Z 表示缩放因子和零点。
通俗的讲,量化就是改变数据类型并归一到某个数值范围内。量化工作流程分为:训练后量化 (PTQ) 和量化感知训练 (QAT)。

训练后量化 (PTQ):涉及量化预训练模型,而无需进行可能成本高昂的重新训练。 尽管 PTQ 方法对于较小的模型已经得到了充分的研究,但将现有的量化技术直接应用于大语言模型存在挑战。 这主要是因为大语言模型的权重和激活通常比小型模型表现出更多的离群值和更宽的分布范围,这使得它们的量化更具挑战性。 总而言之,大语言模型由于其庞大的规模和复杂的特性,需要专门的方法来有效地处理量化过程。大语言模型中存在的离群值和更宽的分布范围,要求开发定制的量化技术,这些技术可以在不损害模型性能或效率的情况下,考虑到这些独特的特征。比较有代表性的方法就是Llama.cpp的量化,将sensetensors模型量化为gguf格式。
量化感知训练 (QAT): 在模型训练过程中融入了量化的影响。 通过集成复制量化效应的层,这种方法有助于权重适应由量化引起的误差,从而提高任务性能。 然而,训练 LLM 通常需要大量训练数据和可观的计算资源,这给 QAT 的实施带来了潜在的瓶颈。 因此,当前的研究工作集中于减少训练数据需求或缓解与QAT实现相关的计算负担的策略。比较有代表性的方法就是应用高效微调方法的QLora。
之前我们就提到过,LLM的推理过程涉及两个阶段:预填充阶段和解码阶段。
在预填充阶段,LLM 通常处理长 Token 序列,主要运算是通用矩阵乘法 (GEMM)。 预填充阶段的延迟主要受高精度 CUDA 核心执行的计算的限制。 为了应对这一挑战,现有方法将权重和激活量化,以利用低精度张量核心加速计算。因此,权重激活量化为:在每个GEMM操作之前在线执行激活量化,允许使用低精度Tensor Core(例如INT8)进行计算,如上图(b)所示。
在解码阶段,LLM 在每个生成步骤仅处理一个标记,使用通用矩阵向量乘法 (GEMV) 作为核心运算。 解码阶段的延迟主要受大型权重张量加载的影响。 为了解决这一挑战,现有方法专注于仅量化权重以加速内存访问。而权重量化为: 首先对权重进行离线量化,然后将低精度权重反量化为FP16格式进行计算,如上图(a)所示。
模型权重数据稀疏化
稀疏化是一种压缩技术,它增加了数据结构(如模型参数或激活)中零值元素的比例。 这种方法旨在通过在计算过程中有效忽略零元素来降低计算复杂性和内存使用量。 在大语言模型(LLMs)的背景下,稀疏化通常应用于权重参数和注意力激活。 它导致了权重剪枝策略和稀疏注意力机制的发展。
权重剪枝:权重剪枝系统地从模型中移除不太重要的权重和结构,旨在在预填充阶段和解码阶段降低计算和内存成本,而不会显著损害性能。这种稀疏化方法分为两种主要类型:非结构化剪枝和结构化剪枝。

非结构化剪枝:以精细粒度剪枝单个权重值。 与结构化剪枝相比,它通常能在对模型预测影响最小的情况下实现更高的稀疏度。 然而,通过非结构化剪枝实现的稀疏模式缺乏高级规律性,导致内存访问和计算模式不规则。 这种不规则性会严重阻碍硬件加速的潜力,因为现代计算架构针对密集、规则的数据模式进行了优化。 因此,尽管实现了更高的稀疏度,非结构化剪枝在硬件效率和计算加速方面的实际优势可能有限。
这类工作的共同重点是剪枝标准,包括权重重要性和剪枝比例。 考虑到大语言模型巨大的参数量,提高剪枝效率也至关重要。 一种剪枝标准是最小化模型的重构损失,另一种流行的剪枝标准是基于权重的。
结构化剪枝:以更粗粒度操作,剪枝模型中更大的结构单元,例如整个通道或层,与非结构化剪枝相比。 由于这些方法与这些系统为处理而优化的密集、规则数据模式一致,因此它们直接促进了在传统硬件平台上进行推理加速。 然而,结构化剪枝的粗粒度通常会导致对模型性能产生更明显的影响。 这类工作的剪枝标准强制执行了结构化剪枝模式,一般需要使用Lora方式来恢复其原来的性能。

上图为不同稀疏注意力掩码的示例。 (a) 具有局部、全局和随机注意力模式的静态掩码。 (b) 具有不同扩张率的扩张注意力模式的静态掩码。 © 动态 Token 剪枝。 (d) 动态注意力剪枝。
稀疏注意力: Transformer 模型的多头自注意力 (MHSA) 组件中的稀疏注意力技术通过策略性地省略某些注意力计算来提高注意力操作的计算效率,尤其是在预填充阶段。 这些机制根据其对特定输入数据的依赖程度分为静态和动态类别。
静态稀疏注意力: 独立于特定输入移除激活值。 这些方法预先确定稀疏注意力掩码,并在推理过程中将其强制应用于注意力矩阵。 先前的研究结合了不同的稀疏模式,以保留每个注意力矩阵中最核心的元素。 如上图 (a) 所示,最常见的稀疏注意力模式是局部注意力和全局注意力模式。 局部注意力模式通过围绕每个 token 的固定大小的窗口注意力来捕获每个 token 的局部上下文。 全局注意力模式通过计算和关注序列中的所有 token 来捕获特定 token 与所有其他 token 的相关性。 需要注意的是,利用全局模式可以消除为未使用的 token 存储键值(KV)对的需求,从而在解码阶段降低内存访问成本和内存使用量。滑动窗口模式:它类似于扩张卷积神经网络(CNNs),并使滑动窗口“扩张”以增加感受野,如上图(b)所示。
动态token剪枝: 根据不同的输入自适应地消除激活值,采用对神经元激活值的实时监控来绕过对影响微不足道的神经元的计算,从而实现剪枝。 大多数动态稀疏注意力方法都采用动态 token-pruning 方法,如上图(c)所示。
动态注意力剪枝: 如图 (d) 所示,这些方法不是移除某些 tokens 的所有注意力值,而是根据输入注意力动态选择性地移除部分注意力。 该领域的一个重要方法是将输入 tokens 动态分割成组,称为 buckets,并策略性地省略属于不同 buckets 的 tokens 的注意力计算。 这些方法的挑战和重点在于如何将相关的 tokens 聚类在一起,从而仅在它们之间进行注意力计算以提高效率。
模型结构优化
结构优化的目标是通过改进模型架构或结构,以期增强模型效率和性能之间的平衡。 在这个研究领域,有两种突出的技术:神经架构搜索 (NAS) 和低秩分解 (LRF)。
神经架构搜索: 神经架构搜索 (NAS) [228] 旨在自动搜索能够实现效率和性能之间最佳平衡的最优神经架构
**低秩分解:**低秩分解(LRF),或称低秩近似,旨在通过以下方式用两个低秩矩阵 Bm×r 和 Cr×n 来近似一个矩阵 Am×n:

知识蒸馏
知识蒸馏 (KD) 是一种成熟的模型压缩技术,其中将知识从大型模型(称为教师模型)转移到小型模型(称为学生模型)。 在大语言模型(LLM)的背景下,KD 涉及使用原始 LLM 作为教师模型来蒸馏更小的 LM。 大量研究集中于将 LLM 的各种能力有效地转移到小型模型中。 在此领域,方法可分为两大类:白盒KD和黑盒KD。

**白盒KD:**是指利用教师模型结构和参数进行知识蒸馏的方法。 这种方法使得KD能够有效地利用教师模型的中间特征和输出logits,以提升学生模型的性能。
**黑盒知识蒸馏(Black-box KD):**是指在教师模型的结构和参数不可用的情况下进行的知识蒸馏方法。 通常,黑盒知识蒸馏仅使用教师模型获得的最终结果来蒸馏学生模型。 在大语言模型(LLM)领域,黑盒知识蒸馏主要指导学生模型学习大语言模型的泛化能力和涌现能力,包括上下文学习(In-Context Learning, ICL)能力、思维链(Chain-of-Thought, CoT)推理能力 和指令遵循(Instruction Following, IF)能力。
动态推理
动态推理涉及在推理过程中根据输入数据自适应地选择模型子结构。 本节重点介绍早期退出技术,这些技术使大语言模型能够根据特定的样本或 token 在不同的模型层中停止推理。 值得注意的是,虽然 MoE 技术在推理过程中也会调整模型结构,但它们通常需要昂贵的预训练成本。 相比之下,早期退出技术只需要训练一个小型模块来决定何时结束推理。 退出技术研究分为两种主要类型:样本级早期退出和 token 级早期退出。

**样本级早期退出技术:**侧重于确定语言模型(LLMs)对单个输入样本的最佳大小和结构。 一种常见的方法是在每个层之后为大语言模型添加额外的模块,利用这些模块来决定何时在特定层终止推理。
Token 级别退出: 在 LLM 推理的解码阶段,其中 Token 是按顺序生成的,Token 级提前退出技术旨在为每个输出 Token 优化 LLM 的大小和结构。
六、系统级优化
LLM 推理的系统级优化主要涉及增强模型的正向传播。 考虑到 LLM 的计算图,存在多个算子,其中注意力算子和线性算子占据了大部分运行时间。
推理引擎
推理引擎的优化致力于加速模型的正向传播过程。 LLM 推理中的主要算子和计算图都经过了高度优化。 此外,提出了投机解码技术以在不降低性能的情况下加速推理速度,并引入了卸载技术以减轻内存压力。
图和算子优化:研究者使用 HuggingFace实现,为我们剖析了不同模型和上下文长度下的推理运行时结果。 如上图中的分析结果表明,注意力算子和线性算子共同主导了运行时间,它们的总持续时间通常超过推理持续时间的 75%。 因此,算子层的大部分优化工作都致力于提高这两个算子的性能。 此外,还有多个算子占据一小部分运行时,这会分割算子执行时间线并增加 CPU 端内核启动的成本。 为了解决这个问题,在计算图层面,当前优化的推理引擎实现了高度融合的算子。
**注意力算子优化:标准的注意力计算(例如,使用 Pytorch)涉及查询矩阵(**Q)与键矩阵(K)的乘法,这会导致与输入序列长度相关的二次方时间和空间复杂度。 上图所示,注意力算子的时间比例随着上下文长度的增长而增加。 这意味着对内存大小和计算能力有很高的要求,尤其是在处理长序列时。 为了解决标准注意力计算在 GPU 上的计算和内存开销,定制的注意力算子至关重要。 FlashAttention 将整个注意力操作融合成一个单一的、内存高效的算子,以减轻内存访问的开销。 输入矩阵(Q、K、V)和注意力矩阵被分块化到多个块中,从而消除了完整数据加载的需要。
**线性算子优化:**线性算子在大语言模型推理中起着关键作用,在特征投影和前馈神经网络(FFNs)中进行运算。 在传统的神经网络中,线性算子可以抽象为通用矩阵矩阵乘法(GEMM)运算。 然而,在大语言模型的解码过程中,由于维度显著降低,其应用与传统的 GEMM 工作负载有所不同。 传统的 GEMM 的底层实现已经高度优化,主流大语言模型框架(例如 DeepSpeed、vLLM、OpenPPL等)主要调用 cuBLAS提供的 GEMM API 来处理线性算子。 在没有针对低维度 GEMM 进行显式定制化实现的情况下,解码过程中的线性算子效率低下。TensorRT-LLM的最新版本中观察到了解决该问题的一个显著趋势。 它引入了专用的通用矩阵向量乘法(GEMV)实现,有望提高解码步骤的效率。
**图级别优化:**由于其减少运行时的能力,内核融合作为一种流行的图级别优化而脱颖而出。 应用内核融合有三个主要优点:(1) 减少内存访问。 融合内核本身消除了中间结果的内存访问,从而缓解了算子的内存瓶颈。 (2) 减轻内核启动开销。 对于一些轻量级算子(例如,残差加法),核启动时间占了大部分延迟,而核融合减少了单独的核启动次数。 (3)增强并行性。 对于那些没有数据依赖的算子,当逐个核执行无法填满硬件容量时,通过融合并行化核是有益的
投机解码
投机解码是一种创新的自回归 LLM 解码技术,旨在提高解码效率而不损害输出的保真度。 该方法的核心思想是使用一个较小的模型(称为草稿模型)来高效地预测多个后续 token,然后使用目标 LLM 并行地验证这些预测。 这种方法旨在使 LLM 能够在通常需要进行单次推理的时间内生成多个 token。投机解码方法包括两个步骤:
a) Draft 构建:它使用Draft模型以并行或自回归的方式生成多个后续 token,即草稿 token。
b) Draft 验证:它使用目标模型在一次 LLM 推理步骤中计算所有草稿 token 的条件概率,然后顺序确定每个草稿 token 的接受情况。 接受率,表示每次推理步骤中接受的平均草稿 token 数量,是评估推测解码算法性能的关键指标。

GPU卸载
卸载的本质是在 GPU 空闲时将其部分存储卸载到 CPU。 直观地,此类研究的重点在于隐藏 GPU 和 CPU 之间昂贵的数据移动延迟。这里有两个案例:
a) FlexGen 支持卸载权重、激活和 KV 缓存,并进一步构建了用于卸载以最大化吞吐量的图遍历问题。 下一个批次的数据加载和上一个批次的数据存储可以与当前批次的计算重叠。
b) llama.cpp 也将计算任务分配给 CPU,从而减轻了数据传输开销,但代价是使用低功耗 CPU 进行计算。
由于注意力操作在 CPU 上计算,KV 缓存的数据移动被简化为仅激活。 CPU 的数量选择与 GPU 上的工作负载延迟相匹配,以减轻异构流水线中的气泡。
七、服务系统优化
服务系统工作的优化致力于提高处理异步请求的效率。 优化了内存管理以容纳更多请求,并集成了高效的批处理和调度策略以提高系统吞吐量。 此外,还提出了针对分布式系统的优化,以利用分布式计算资源。总结起来就是这四个:内存管理、批处理、调度策略、分布式计算。
内存管理
KV 缓存的存储占 LLM 服务内存使用量的主导地位,尤其是在上下文长度较长时。 由于生成长度不确定,因此提前为 KV 缓存存储分配空间具有挑战性。 早期的实现通常会根据每个请求预设的最大长度提前分配存储空间。 然而,在请求生成提前终止的情况下,这种方法会导致存储资源的大量浪费。针对这个问题,两个比较有名的推理框架vLLM和LightLLM分别做了以下解决:

vLLM提出了一种类似于操作系统分页的方式来存储 KV 缓存。 vLLM 首先分配尽可能大的内存空间,并将其平均划分为多个物理块。 当请求到来时,vLLM 以不连续的方式动态地将生成的 KV 缓存映射到预分配的物理块中。 通过这种方式,vLLM 显著减少了存储碎片,并在 LLM 服务中实现了更高的吞吐量。

LightLLM 则在vLLM基础上 使用了更细粒度的 KV 缓存存储,以减少由于不规则边界造成的浪费。 LightLLM 将一个 token 的 KV 缓存作为一个单位来处理,而不是一个块,这样生成的 KV 缓存总是能够填满预分配的空间。
连续批处理
批处理中的请求长度可能不同,当较短的请求完成而较长的请求仍在运行时,会导致利用率低下。 由于服务场景中请求的异步性质,存在机会可以缓解这种利用率低下的时期。 提出了连续批处理技术,通过在一些旧请求完成时批处理新请求来利用这一机会。

ORCA是第一个提出来解决连续批处理的研究,具体如上图所示。而vLLM基于ORCA扩展到注意力计算,使得具有不同 KV 缓存长度的请求能够一起进行批处理。之后大量研究者基于ORCA提出了拆分-融合技术,其实就是将预填充请求和解码请求一起批处理。 具体来说,该方法首先在序列维度上拆分长的预填充请求,然后将其与多个短的解码请求一起批处理。 拆分-融合方法平衡了不同迭代之间的工作负载,并通过消除新请求的停滞显著降低了尾部延迟。值得注意的是:拆分-融合技术的前提是预填充阶段的请求可以被划分为离散的块。分块预填充方法涉及沿着序列维度分割预填充请求,从而避免了其他请求的潜在瓶颈。该策略利用了大语言模型固有的自回归特性,其中注意力计算仅依赖于之前的 Token。因此,分块预填充技术的数学等价性得到保证,使其成为降低大语言模型服务中请求延迟的首选方法。
调度策略
在大语言模型服务中,每个请求的作业长度都存在差异,因此执行请求的顺序对服务系统的吞吐量有显著影响。 当长请求获得优先权时,会发生队首阻塞(head-of-line blocking)。 具体来说,内存使用量会随着长请求的增加而迅速增长,当系统耗尽内存容量时,会阻碍后续请求。为了解决这类问题,vllm和lightllm提出来采用简单的先来先服务(FCFS)原则来调度请求。
分布式系统
为了实现高吞吐量,LLM 服务通常部署在分布式平台上。这里有一个经典的案例就是早
期OpenAI的方案:使用Ray+vllm实现分布式集群部署。
最后唠两句
为什么AI大模型成为越来越多程序员转行就业、升职加薪的首选
很简单,这些岗位缺人且高薪
智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200% ,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。

AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。
那0基础普通人如何学习大模型 ?
深耕科技一线十二载,亲历技术浪潮变迁。我见证那些率先拥抱AI的同行,如何建立起效率与薪资的代际优势。如今,我将积累的大模型面试真题、独家资料、技术报告与实战路线系统整理,分享于此,为你扫清学习困惑,共赴AI时代新程。
我整理出这套 AI 大模型突围资料包【允许白嫖】:
-
✅从入门到精通的全套视频教程
-
✅AI大模型学习路线图(0基础到项目实战仅需90天)
-
✅大模型书籍与技术文档PDF
-
✅各大厂大模型面试题目详解
-
✅640套AI大模型报告合集
-
✅大模型入门实战训练
这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

①从入门到精通的全套视频教程
包含提示词工程、RAG、Agent等技术点

② AI大模型学习路线图(0基础到项目实战仅需90天)
全过程AI大模型学习路线

③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的

④各大厂大模型面试题目详解

⑤640套AI大模型报告合集

⑥大模型入门实战训练

这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!


如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

更多推荐
所有评论(0)