大数跨境
0
0

MLSys'24——大模型推理系统模拟

MLSys'24——大模型推理系统模拟 数据合成AI技术前沿
2025-07-30
0

这是本公众号的第3篇文章, 来自微软团队

代码也已开源:https://github.com/microsoft/vidur

原文链接:https://arxiv.org/pdf/2405.05465

论文学习:(全文约1万字,阅读需要30分钟)

标题

Vidur:面向大语言模型推理的高性能大规模仿真框架

摘要

如今,优化大型语言模型(LLMs)部署的成本十分高昂,因为需要在实验环境中运行应用程序的工作负载,并探索由系统参数(如并行化策略、批处理技术以及调度策略等)构成的大规模配置空间。为解决这一挑战,我们提出 Vidur——一个面向大语言模型推理性能的大型、高保真、易于扩展的仿真框架。Vidur 通过实验分析与预测建模相结合的方式对 LLM 操作符进行性能建模,并通过估算延迟、吞吐量等关键指标来评估不同工作负载下的端到端推理性能。我们在多个 LLM 上验证了 Vidur 的准确性,结果表明其在全范围内的推理延迟估计误差低于 9%。此外,我们还提出了 Vidur-Search——一种用于优化 LLM 部署的配置搜索工具。Vidur-Search 利用 Vidur 自动识别满足应用性能约束条件下的最具成本效益的部署配置。例如,在 CPU 机器上,Vidur-Search 能在 小时内找到最适合 LLaMA2-70B 的部署方案,而基于实际部署的探索则需要消耗 42,000 GPU 小时(约 218,000 美元)。Vidur 的源代码已发布于:

https://github.com/microsoft/vidur

引言

大型语言模型(LLMs)能够从海量数据中学习并生成自然语言文本。GPT-3/4Brown et al., 2020; Bubeck et al., 2023)、LLaMATouvron et al., 2023a)和 PhiLi et al., 2023)等模型已在各种自然语言处理(NLP)任务中展现了卓越性能。然而,LLM 推理——即基于输入生成自然语言输出的过程——成本高昂。例如,据估计每天运行 ChatGPT 的成本高达 694,000 美元(Patel & Ahmed, 2023)。

在优化 LLM 部署方面,LLM 推理服务提供商面临多重挑战:首先,需要选择模型并行化策略(如张量并行维度数量、流水线阶段数量和副本数量等);其次,在多种调度算法(例如 OrcaYu et al., 2022)、vLLMKwon et al., 2023)、Sarathi-ServeAgrawal et al., 2024)之间选择);第三,需确定多个配置参数(如最大批大小、批处理等待时间以及算法特定参数,例如 Sarathi 的 chunk 大小或 vLLM 的水印比例),以满足目标吞吐量和延迟约束。最后,还需生成代表性工作负载流量,在实验测试环境中对每种配置组合进行验证。系统化地优化包含数百个配置选项的数十个模型部署成本高昂且不切实际。

这一成本因我们的观察进一步加剧:最优配置是模型与追踪(trace)对的函数,即最优配置还取决于应用场景的工作负载特征(图 1a)。事实上,在不同追踪上使用同一模型时,原本在某个追踪中获得的最优配置可能因性能下降最多达 倍(图 1b)。由于新模型和新的追踪几乎每天都会发布,识别最佳部署配置的成本变得难以承受。

为解决这一挑战,我们提出了 Vidur——一个面向大语言模型推理性能的大规模、高保真且可扩展的仿真器,以及 Vidur-Search——一种配置搜索工具。两者结合后,可在多种部署场景下实现快速且低成本的 LLM 推理性能探索。


 1. 模型与工作负载均影响最优部署配置。每个模型-追踪对的最优配置如(a)所示;若工作负载变化,同一模型的吞吐量/成本差异可能显著,如(b)所示。

模拟 LLM 推理存在若干独特挑战,这些挑战在现有深神经网络(DNN)训练性能仿真研究中尚未解决(Zhu et al., 2020; Yu et al., 2021; Lin et al., 2022)。首先,与训练任务(每次迭代耗时数百毫秒)相比,LLM 推理预测需在更细的时间粒度上保持准确性。其次,与训练中固定批大小不同,推理阶段的输入规模可能剧烈波动。这种波动源于不同请求序列长度差异以及预填充和解码阶段根据调度策略交替执行,导致迭代延迟显著变化。由于无法对所有可能输入规模进行实验分析,仿真器必须依赖精确的分析与未分析输入规模的预测策略相结合。第三,由于推理工作负载的动态性和状态性特征,微小预测误差会导致级联效应,因此推理仿真器需提供极高精度的单次迭代预测以在高请求到达率下保持高保真度。

Vidur. 为解决这些挑战,Vidur 利用关键洞察:大多数 LLM 具有相似架构,可分解为少量令牌级、序列级和通信操作符。因此,Vidur 首先接收模型规格,识别需实验分析的各类操作符及最小输入规模集合。随后构建细粒度运行时估计器,用于精确预测未被分析的输入规模下的内核性能。利用该估计器,Vidur 接收部署配置和工作负载描述,并预测多个请求级别指标(如首个令牌生成时间 TTFT、令牌间隔时间 TBT、延迟、吞吐量)及集群级指标(如模型 FLOPS 利用率 MFU 和内存利用率)。

我们在多种模型、硬件和集群配置上验证了 Vidur 的保真度。Vidur 在请求级别 LLM 推理性能预测中误差低于 9%,并能高精度模拟大规模工作负载与追踪的集群级指标。

Vidur-Bench. 我们发现,LLM 推理中的输出指标受工作负载影响显著。例如,输入令牌数量、解码令牌数量和批大小的变化可能对性能产生巨大影响(Agrawal et al., 2023)。我们观察到当前缺乏标准化的基准套件来全面评估 LLM 推理性能。为此,我们引入 Vidur-Bench 以填补这一空白。Vidur-Bench 是一个易于扩展的工作负载追踪集,包含多种现有批处理和调度策略(如 vLLMKwon et al., 2023)、OrcaYu et al., 2022)、FasterTransformerfas)和 Sarathi-ServeAgrawal et al., 2024)),并提供 A100/H100 等主流 GPU 的分析信息。

Vidur-Search. 最后,我们提出 Vidur-Search 帮助 LLM 推理服务商优化部署。Vidur-Search 利用 Vidur 自动搜索数百种部署配置,以识别给定模型和工作负载对的最佳吞吐量/成本配置。例如,在 A100/H100 GPU 池中,Vidur-Search 能在 Microsoft Azure 上的 96 核 CPU(每小时 9.93 美元)运行约 小时找到 LLaMA2-70B 的最佳配置,而实际部署探索则需耗时 42,000 GPU 小时(约 218,000 美元)。

总结: 本文的主要贡献包括:

·Vidur: 高保真预测 LLM 推理关键性能指标的仿真器(第 节)

·Vidur-Bench: 包含多种工作负载模式、调度器和推理框架,以及 A100/H100 GPU 等主流硬件分析信息的基准套件(第 节)

·Vidur-Search: 通过识别最大吞吐量/美元配置来优化部署的配置搜索工具(第 节)

背景与动机

2.1 大语言模型(LLMs)概述

大语言模型(LLMs)的核心构建模块是基于自注意力机制self-attention mechanismVaswani et al., 2017)的Transformer架构。自注意力机制帮助语言模型学习输入序列中不同元素之间的关系,并生成输出序列。一个LLM主要由两个子模块构成:自注意力多层感知机MLP)。近年来,许多LLMs(如GPTLLaMAFalcons等)均基于这些模块的变体开发。这些模型的主要差异体现在嵌入维度大小、Transformer块的数量以及使用的注意力机制上。

2.2 LLM 推理效率优化

LLM 推理请求处理分为两个阶段:预填充(prefill 解码(decode

1.预填充阶段:处理完整的用户输入提示,生成第一个输出令牌。

2.解码阶段:以自回归方式逐个生成后续输出令牌。在这一阶段,模型需要访问前一步生成的令牌的键值激活信息(key and value activations)以执行注意力操作。为了避免重复计算,现代LLM推理系统通过键值缓存KV-Cache)存储这些信息。

由于LLM推理成本高昂,其效率优化已成为系统研究的重要方向。近期提出的多种优化机制各有权衡:

·张量并行化Tensor Parallelism, TP)通过将模型权重和KV-CacheGPU间均分,提高批量大小从而提升吞吐量,并通过多GPU拆分操作降低延迟;但需依赖高带宽互连设备(如NVLink),成本较高。

·流水线并行化Pipeline Parallelism, PP)则将模型划分为连续的Transformer块阶段,每个GPU负责计算一个阶段并通过send/recv操作传递激活信息;其计算与通信比优于TP,但易受管道气泡(因阶段间负载不平衡导致的延迟)影响。

·调度策略Agrawal等(2024)指出LLM推理调度器设计存在固有权衡,并将现有调度器分为两类——预填充优先型(如OrcavLLM)和解码优先型(如Sarathi-Serve)。前者通过高批量大小提升吞吐量但延迟较高,后者则以牺牲吞吐量换取低延迟。近期研究(如SplitwiseDistServe)进一步通过将预填充与解码计算分配到不同设备上缓解这一矛盾。

结论: 多种系统优化方案提供了丰富的成本-延迟权衡。选择何种技术需根据具体应用需求和硬件条件决定。

2.3 LLM 推理配置空间

LLM部署的复杂性源于多个控制参数(如并行策略、调度器类型、分块大小、批量大小、SKU等)形成的庞大配置空间(图1a)。更关键的是,最优配置并非仅依赖模型本身,而是同时取决于模型 m 与工作负载 的组合(图1)。因此,配置搜索的复杂度为 O(∣M∣⋅∣T∣),其中 表示所有目标模型集合,表示所有工作负载集合。随着模型和下游应用数量的快速增加,最优配置搜索的成本呈指数级增长。

结论: 没有单一的最佳部署配置——配置选择需根据具体工作负载动态调整。

以图1中单个点成本高达9.7万美元为例,错误配置可能导致高昂代价(如图1b所示,某模型在不同追踪上的最优配置可能产生2倍的成本差异)。核心问题:是否能以远低于实验成本的方式找到性能优的配置? 为此,我们提出基于仿真框架VidurLLM配置搜索方法,将成本降低多个数量级。

模拟大语言模型(LLM)推理的挑战

当前最先进的深度神经网络(DNN)仿真框架(如 DaydreamHabitat 和 Proteus)主要聚焦于训练任务。构建一个大规模的推理模拟器,尤其是针对 LLM 推理的任务,涉及许多现有模拟器未解决的关键挑战。我们详细列举如下:

时间尺度

传统 DNN 训练工作负载通常是计算密集型任务,每次迭代耗时数百毫秒(Zhu et al., 2020)。相比之下,LLM 推理是高度依赖延迟的任务,单次迭代可能仅需几毫秒(Yu et al., 2022; Kwon et al., 2023)。因此,模拟 LLM 推理需要在更精细的时间粒度上预测每次迭代的耗时。

变化的迭代时间

与传统深度学习(DL)工作负载相比,在 DL 中,每次迭代的计算量相同且最小批次延迟可预测(Xiao et al., 2018),而在 LLM 推理中,不同迭代的时间差异可能显著。这种差异源于以下原因:

1.阶段特性LLM 推理包含两个阶段——预填充(prefill)和解码(decode),两者的计算特性和运行时间截然不同。

2.请求长度变化:处理的请求序列长度可能因提示(prompt)长度或生成的解码令牌数量而大幅波动,导致运行时间差异。

3.批量大小动态调整:在线推理期间,批量大小会根据系统负载和工作负载特性动态变化。此外,一个批次可以包含预填充和/或解码阶段的请求,进一步加剧了运行时间的变化。

级联误差

在训练任务中,所有批次的组成是统一的,每个批次的执行相互独立。然而,在推理过程中,请求会以动态方式到达系统,若某个批次的运行时预测存在显著误差,则可能改变批处理模式。因此,单个批次预测的小误差会随时间累积,最终导致整体误差。

4 Vidur

Vidur 通过领域知识提供高保真度的 LLM 推理性能估计。它模拟了推理栈中所有层级的行为,包括模型执行、请求调度(从副本级到集群级)的各个阶段。

4.1 关键洞察

LLM 共享关键架构特性

大多数 LLM 本质上具有相似架构,仅在激活函数选择、归一化层、残差连接等细节上存在差异。这使我们能够使用一种通用的声明式模型规范格式,以捕捉各种模型的核心架构设计。这种架构一致性也意味着 Vidur 只需建模所有模型共享的一小部分计算操作符。

运行时预测的操作分类

在批量处理过程中,每个请求可能关联不同数量的 KV-Cache 和查询令牌,导致输入空间的组合爆炸式增长。因此,对所有可能组合进行分析以预测操作运行时间是不可行的。我们观察到 LLM 操作符可分为以下几类:

·与上下文长度相关:某些操作(如注意力核)的执行时间取决于批次中所有请求的总上下文长度。

·与当前迭代令牌数相关:其他操作的执行时间仅依赖于当前迭代中的令牌数量。

这种分类允许我们为每种操作符设计定制化的运行时预测策略。例如,除了注意力内核外,其他所有操作(如 MLP 层)独立于请求历史,在解码阶段其计算量与之前处理的输入或输出令牌数量无关。而注意力操作在解码期间主要受内存限制(Dao et al., 2022; Agrawal et al., 2023),因此只需建模批次中需提取的 KV-Cache 总量即可确定内核运行时间(见 §4.3)。

并行策略的自动分析

每个模型并行配置具有不同的内存、计算和网络通信特性。一种朴素的分析方法需要为每种并行配置单独进行性能分析,成本高昂。相比之下,Vidur 借助 LLM 并行策略的领域知识,能够识别每个设备上执行的计算子集。在分析阶段,我们从模型声明式规范中自动生成每个操作符的张量分片配置。因此,Vidur 能通过单一 GPU 的最小化分析模拟多种并行方案。

 2. Vidur 模拟器高层架构

4.2 系统概览

Vidur 主要包含两个处理阶段:

1.模型引入阶段(Model Onboarding:利用模型规范生成一组需分析的计算操作符。Vidur 分析器(§4.3)收集这些操作符的运行时特征,并将其输入运行时估计器。

2.仿真阶段:通过最小化数据采集并训练小型机器学习模型,覆盖模拟过程中可能触发的所有参数范围,生成预测结果。

此阶段由 Vidur 的运行时估计器(§4.4)处理,生成操作符级别的运行时间查询表以供后续仿真使用。

一旦模型被引入系统,用户可利用 Vidur-Bench 支持的广泛工作负载集,通过各种调度策略和并行方案进行仿真。我们基于事件驱动的模拟器核心是插件式分层调度器§4.5),支持多种热门批处理策略及内存规划与管理能力。模拟器提供详细的性能指标,涵盖请求级(如归一化延迟、首令牌时间等)和集群级(如模型 FLOPs 利用率、KV-Cache 利用率等)。Vidur 的端到端流程如图 所示。

4.3 分析器

为高效分析 LLM 运行时特性,我们利用以下洞察:大多数 LLM 具有相似架构,仅在激活函数、归一化层等细节上存在微小差异。

操作符分类

分析器通过识别操作符的输入依赖性将其划分为三类:

·令牌级操作符(Token-level Operators:如线性运算和激活函数。其运行时间仅取决于批次中处理的总令牌数量(预填充 + 解码)。

·序列级操作符(Sequence-level Operators:如注意力操作,其执行时间不仅依赖于当前批次的令牌数,还与每个请求的上下文长度相关。

·通信操作符(Communication Operators:如 all-reduce 和 all-gather。其运行时间仅取决于需传输的数据量,与模型架构无关。

令牌级操作符分析

令牌级操作符主要分为两类:

1.矩阵乘法(如线性层);

2.简单逐点操作(如加法、归一化、激活函数)。

基于模型规范生成所有张量并行分片配置,并对每种组合进行分析。这种方法允许在单 GPU 上完成不同并行策略的分析,同时使用标准 PyTorch 内核并通过 CUPTI 工具测量性能。

序列级操作符分析

注意力内核(如预填充和解码阶段)需关注请求上下文长度,这会爆炸式增加输入状态空间。为此我们采用以下策略:

·分阶段分析:分别对预填充和解码的注意力内核进行分析。

·预填充阶段:注意力时间与长度平方成正比(Σp_i²)。
假设一批 P 个预填充请求,长度为 p₁, ..., p_P,则总成本与 Σp_i² 成正比。我们通过预测等效单批次的运行时来估算。

·解码阶段:注意力操作主要受内存限制(KV-Cache 数据量),而无需精确分析上下文长度分配。某些优化内核(如 PagedAttention v2FlashDecoding)能有效处理数据倾斜,因此只需建模总 KV-Cache 读取量。

通信操作符分析

LLM 推理中常用的三种集合操作:

·all-reduce(用于张量并行);

·all-gather(用于张量并行);

·send/recv(用于流水线并行)。

由于这些操作与模型特性无关,我们通过模型无关的方式提前对不同拓扑结构进行分析。

4.4 运行时估计器

收集所有可能输入组合的分析数据成本极高。因此,我们仅采集有限数量的数据点,并依赖小型机器学习模型进行插值预测。运行时估计器首先使用已分析数据训练这些模型,随后生成针对端到端仿真中大量输入张量维度的预测结果。

先前 DNN 训练模拟器(如 Yu et al., 2021; Lin et al., 2022)通过训练多层感知机(MLP)模型来预测矩阵乘法等黑箱操作,这些操作依赖于 CUBLAS 或 cuDNN 等第三方库。然而,训练 MLP 需大量数据和结果;而简单多项式回归无法捕捉 CUDA 内核的非线性特性(如瓦片量化)。我们发现,随机森林(RF)回归模型在数据效率与预测精度间达到了最佳平衡。

4.5 分层调度器

Vidur 采用三层分层调度架构,提供强大且可扩展的接口:

1.全局调度器:负责请求路由。除轮询和最小未完成请求数等标准负载均衡策略外,还支持状态化调度策略(延迟决策以应对突发性高负载)。

2.副本调度器:包含两个核心职责——批处理与内存管理。通过模型规范和并行配置计算可用 KV-Cache 内存,并提供高级 API 实现自定义批处理策略。目前支持五种策略:FasterTransformerOrcaSarathi-ServevLLM 和 LightLLM

3.副本阶段调度器:负责流水线阶段中微批次的调度。当前仅支持同步并行策略,未来计划扩展为异步通信、序列并行(Li et al., 2021)和推测性流水线解码(Hooper et al., 2023)等优化。

5 Vidur-Bench

Vidur-Bench 是一个用于评估大语言模型(LLM)推理系统性能的基准套件。它提供了即插即用的支持,涵盖以下三类内容:
(a) 多种工作负载模式
(b) 不同的调度、批处理和路由策略
(c) 多种服务框架(如 vLLMSarathi-Serve 等)

5.1 数据集与工作负载

LLM 推理的整体性能对工作负载类型高度敏感。例如,在给定查询中输入和输出令牌的数量会显著影响推理效率:解码阶段的成本可能高达预填充阶段的 200 Agrawal et al., 2023)。因此,不同的工作负载模式可能以复杂的方式影响系统性能。

·vLLM 的增量内存分配策略:通过逐步为 KV-Cache 分配物理内存,以适配 GPU 上的大批量处理。这种策略在需要大量解码令牌的场景(如聊天应用)中效果良好(Zheng et al., 2023)。

·但若提示长度远大于输出令牌数量(如摘要任务),则增量分配可能效率低下。

Vidur-Bench 提供了一组从公开数据集中整理的工作负载(见表 1),可用于:

1.评估系统在不同请求类型、到达率等条件下的性能;

2.调整服务系统中各组件的性能敏感参数。

5.2 性能指标

Vidur-Bench 提供了一套全面的系统级性能指标,具体如下:

·操作符级指标:包括每个操作符的输入规模和执行时间,可用于识别并优化高负载的操作符(如注意力预填充、MLP 上投影层等)。

·请求级指标:例如调度延迟、预填充完成时间、首令牌生成时间(TTFT)、令牌间隔时间(TBT)等。用户还可自定义添加其他指标,例如我们新增了对 vLLM 在 GPU 内存不足时中止或重启请求数量的追踪功能。

·副本级指标:包括批量大小、每轮处理的令牌数量、忙碌时间和空闲时间,以及每个副本的内存和计算利用率。

·硬件级指标:涵盖集群范围内 GPU 的 FLOPs 和内存利用率。我们计划进一步扩展以包含集群能耗指标。

6 Vidur-Search

部署推理系统时,操作员需要综合考虑多个因素。例如:

·可能存在对延迟指标(如 TTFTTBT)的服务等级目标(SLO),或需支持的最低 QPS

·操作员可尝试多种配置:GPU 型号(如 A100 vs H100)、并行策略(TP vs PP)、调度政策(OrcavLLMSarathi-Serve 等)、副本数量等。

Vidur-Search 是一款工具,可在满足 SLO 约束的前提下,自动搜索最优的成本配置。 它利用我们的模拟器高效计算最佳配置,并提供详细可视化分析:如何通过配置调整影响成本、TTFTTBT 等指标。

6.1 Vidur-Search 的核心组件

·输入参数

·LLM 模型;

·工作负载(请求特性显著影响推理性能);

·可用 GPU 型号规格(SKU);

·复制体中的最大 GPU 数量。

·约束条件

· TTFTTBT 等指标的服务等级目标(SLO)。

·搜索空间

·并行策略(TP vs PP)、并行度、调度政策(OrcavLLM 等)、调度器特定参数(如 Sarathi 的 chunk 大小)、批量大小、GPU 型号选择等。

·优化目标

·最大化 QPS 每美元效率:例如,假设部署 16 块 A100 GPU。系统容量定义为在不引起排队延迟显著增加的前提下,每秒可支持的最大请求数量(QPS)。具体约束 P99 调度延迟不超过 秒。该 QPS 值除以每小时租用 16 块 A100 GPU 的费用,即可得到每美元处理的请求数QPS per dollar)。

6.2 搜索流程

Vidur-Search 需要在搜索空间中求解一个约束优化问题:
目标:在满足 SLO 约束的前提下,找到最优配置。
步骤如下

1.枚举所有可能的部署配置

2.对于每个配置,在指定 QPS 下运行模拟器,预测 TTFTTBT 等指标;

3.解决无限 QPS 值问题:通过追踪特定配置下请求的调度延迟与 QPS 关系,确定其最大支持 QPS。此过程通过二分查找完成(寻找不使调度延迟超过阈值的最大 QPS);

4.并行化搜索:每个配置和 QPS 的模拟运行在独立核心上;

5.输出结果:分析数据后生成最优配置,并可视化配置变化对各指标的影响。

6.3 优化与实用性

·成本问题:若直接在实际硬件上进行穷举搜索,配置数量可能高达数千(如 GPU 型号、并行策略等组合),成本极高。

·长期影响:次优的配置选择可能导致长期高昂代价;且由于最优配置依赖于输入工作负载,而工作负载可能随时间变化,需定期重新搜索。

·Vidur-Search 的优势:通过模拟器将搜索成本降低多个数量级。例如,在第 7.3 节中,我们利用 Vidur-Search 进行了假设情景分析what-if analysis)。

注意:尽管 Vidur-Search 主要用于在线服务系统的配置优化,但其目标函数可灵活调整(如将 QPS per dollar 替换为 makespan 指标),从而适用于离线推理场景。

评估

在本节中,我们通过多种模型、硬件配置和工作负载的广泛测试,验证了 Vidur 的准确性和实用性。所有实验均基于优化后的 vLLM 框架(支持不同的调度策略和 CUDA 图形),以消除不必要的 CPU 开销。

我们的评估旨在回答以下问题:

1.Vidur 是否能准确预测不同规模模型、并行策略以及具有不同请求长度和到达模式的工作负载的端到端性能指标?§7.2

2.对于给定的硬件配置,Vidur 能否针对 LLM 部署挑战进行假设性分析(what-if analysis)?§7.3

7.1 评估设置

实现细节

我们以开源 vLLM 实现(Kwon et al., 2023; vLL)为基准,并扩展其功能:

·支持多种调度策略、分块预填充(Agrawal et al., 2024);

·添加了完善的遥测系统(telemetry system)以记录运行时数据。

模型与环境

我们在以下四类模型上评估 Vidur 的性能:

·LLaMA2-7B/70BTouvron et al., 2023b);

·InternLM-20BTeam, 2023);

·Qwen-72BBai et al., 2023)。

硬件环境包括:

·Azure Standard NC96ads A100 v4 虚拟机,每台配备 块 80GB A100 GPU,通过 NVLink 连接;

·H100 VMs块 80GB H100 GPU,同样通过 NVLink 连接)。

工作负载

为模拟真实场景,我们从以下数据集生成请求轨迹:

·LMSys-Chat-1M:包含 100 万条实际对话(涉及多种 SOTA LLM),支持多轮交互;

·Arxiv-SummarizationarXiv.org 上的科学论文及其摘要,代表微软 M365 Copilot 和 Google Duet AI 的典型工作负载;

·Bilingual-WebBook:中英文平行文档数据集(中文网络小说及英译版),输出令牌数远多于输入令牌数。

我们将请求长度限制为 4096 tokens(基于 LLaMA2 系列模型的最大上下文长度),生成三种缩短后的轨迹:

·Chat-1M(原始 LMSys-Chat-1M);

·Arxiv-4K(截断至 4096 tokens 的 Arxiv-Summarization);

·BWB-4KBilingual-WebBook 截断版)。

这些轨迹涵盖不同负载特性,例如:

·BWB-4K 的解码长度是 Chat-1M 的 10 倍,预填充长度是其 倍;

·预填充:解码(P:D)比值为 0.65 vs 2.3

详细数据见表 1

 1. 从开源数据集中整理的工作负载详情

7.2 模拟器保真度验证

我们测试 Vidur 对四种模型和三种工作负载(§7.1)的端到端请求级预测准确性。并行策略包括:

·InternLM-20B 使用张量并行(TP2);

·LLaMA2-70B 和 Qwen-72B 使用 TP4

所有实验均使用 vLLM 的默认调度器。

评估指标

对于动态工作负载,我们比较 Vidur 对归一化端到端延迟的预测误差(定义为请求总延迟除以输出令牌数,参考 Yu et al., 2022)。

·静态工作负载:仅测量请求执行时间(不包含调度延迟),以便更细致地分析 Vidur 的性能。

静态工作负载测试结果

 3 显示了 Vidur 在四种模型和三种数据集上的请求延迟保真度。我们发现,Vidur 对尾部延迟(P95)的预测误差不超过 3.33%

·7B 模型的误差略高:由于小模型 CPU 开销较大。

 3. Vidur 在四种模型和三种静态轨迹上的请求执行时间预测保真度

动态工作负载测试结果

我们进一步评估 Vidur 在动态工作负载(基于泊松分布的请求到达率)下的表现。为确保系统不超载,实验在接近容量点进行(即系统能稳定处理的最大请求数)。

 4. Vidur 在四种模型和三种动态轨迹上的执行时间预测保真度(负载为系统最大容量的 85%

结果显示:

·Vidur 的误差小于 5%,几乎覆盖所有场景;

·接近容量时,微小预测偏差可能导致显著误差膨胀。这源于队列延迟对性能的放大效应。

例如:当请求到达率或处理时间增加时,系统会快速进入超载状态,导致调度延迟激增,使得实际和模拟结果难以匹配。但生产环境通常预留缓冲区以避免此问题。

7.3 假设性分析(What-if Analysis

我们利用 Vidur-Search 对三种动态工作负载下的四种模型进行假设性分析,研究配置性能与成本变化的关系,并评估服务等级目标(SLO)对部署的影响。

输入参数

·模型选择LLaMA2-7B/70BInternLM-20BQwen-72B

·GPU 型号A100 或 H100(最多 16 块 GPU);

·SLO 约束TTFT P90 < 2sTBT P99 < 200ms

调度配置

实验涵盖以下策略:

·并行度TP/PP = 1, 2, 4

·调度器vLLM(吞吐优化)、Orca+(基于 paged attention 的 Orca 改进版)、Sarathi-Serve(混合批处理以保持 GPU 利用率)。

关键发现

1.工作负载变化导致配置显著差异

·例如,LLaMA2-70B 在 Chat-1M 中使用 batch size=256,但在 BWB-4K 中仅需 64(因解码序列更长);

·最优 GPU 型号从 H100Chat-1M)切换为 A100BWB-4K)。

2.架构差异影响成本

·LLaMA2-70B 使用 Group Query Attention (GQA),而 Qwen-72B 使用 Multi Head Attention (MHA)。后者导致 KV-Cache 负载增加 倍,服务成本几乎翻倍,并需调整部署策略。

 6. 最优配置下的 QPS per dollar 指标(SLOTTFT P90 < 2sTBT P99 < 200ms

3.成本对比

·**模拟成本仅需 125∗∗,而实际部署需要1,140,000

·BWB-4K 成本最高(因解码令牌占比大),Chat-1M 成本最低。

 2. 寻找最优部署配置的成本对比

配置稳定性分析

 1b 显示,若用一种工作负载的最优配置处理其他工作负载(如将 Arxiv-Summarization-4K 的最优配置用于 LMSys-Chat-1M),可能导致高达 倍的性能损失。这表明:即使同一模型,单一部署策略也可能显著偏离实际需求。

 5. 不同部署配置的每美元容量 vs TTFT-P90(左)和 TBT-P99(中)。右图显示帕累托前沿曲线,并用温度色谱展示 QPS per dollar。绿色点表示同时满足两个 SLO 的配置,蓝色点则表明某些帕累托最优可能仅满足单个指标的约束。

帕累托前沿分析

对于 LLaMA2-70B-LMSys-Chat-1M 和 Qwen-72B-Bilingual-WebBook-4K 工作负载,Vidur 生成了帕累托最优曲线:

·小幅度调整 SLO 可显著降低成本。例如,在 LLaMA2-70B-LMSys-Chat-1M 中,若将 TBT SLO 从 0.12s 增至 0.14s(仅增加 20ms),帕累托点的 QPS per dollar 将提升约 1.85 倍!

相关工作

现有技术主要依赖于深度神经网络(DNN)训练迭代过程的可预测性(Sivathanu et al., 2019; Xiao et al., 2018),以建模整个任务的性能。例如:

·HabitatYu et al., 2021)通过在特定 GPU 上采集少量训练迭代的运行时特征,推断不同 GPU 类型下训练任务的整体性能。其核心方法基于屋顶模型roofline model, Williams et al., 2009),利用操作符的计算和内存需求、GPU 的计算与带宽特性来预测单个操作符的性能。

·DaydreamZhu et al., 2020)提出了一种不同的方法,专注于模拟各种系统优化对训练任务在不同部署场景下的影响。例如,它可以回答:训练任务的主要瓶颈是内存还是网络带宽?内核融合、量化或梯度压缩等优化如何提升性能?为准确建模这些优化效果,Daydream 首先构建训练任务的计算图(computation graph),并通过图形变换(如将单个内核节点替换为合并后的复合节点)实现优化。

·ProteusDuan et al., 2023)进一步支持模拟多种并行策略,以识别特定训练任务的最佳划分和调度方案。其方法通过统一的策略树Strategy Tree)建模并行化策略,并将其编译为分布式执行图(distributed execution graph)。

·Lin 等人2022)提出了另一种基于关键路径(critical-path)的策略,用于预测深度学习推荐模型的每批次训练时间。

与这些面向训练任务的模拟器不同,Vidur 是首个专门针对大语言模型(LLM)推理特性的高保真模拟器。

结论

LLM 推理效率高度依赖于大量配置参数,例如并行策略类型及程度、调度算法、GPU 规格等。在实际硬件上运行所有可能的配置组合是不现实的。本文提出 Vidur:首个面向 LLM 推理的高保真且易于扩展的模拟器,并配套提供基准测试与搜索工具套件。
Vidur 能够回答与部署相关的假设性问题what-if questions),帮助识别生产环境中的高效部署策略,同时以极低成本评估各种系统优化方案的有效性。

【声明】内容源于网络
0
0
数据合成AI技术前沿
本公众号专注于分享合成数据的AI论文以及用于训练AI的数据合成论文。
内容 4
粉丝 0
数据合成AI技术前沿 本公众号专注于分享合成数据的AI论文以及用于训练AI的数据合成论文。
总阅读4
粉丝0
内容4