AiPaper
论文状态:已完成

RServe: Overlapping Encoding and Prefill for Efficient LMM Inference

发表:2025/09/29
原文链接PDF 下载
价格:0.10
价格:0.10
已有 9 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

RServe旨在解决LMM推理服务效率低、现有解耦架构并行性不足的问题。它基于解耦架构,通过细粒度调度,在请求内重叠多模态编码与语言模型预填充,并利用请求间可调度令牌平衡负载。实验证明,RServe可将延迟降低66%,吞吐量提升109%。

摘要

Large multimodal models (LMMs) typically employ an encoding module to transform multimodal data inputs into embeddings, which are then fed to language models for further processing. However, efficiently serving LMMs remains highly challenging due to the inherent complexity of their inference pipelines. Traditional serving engines co-locate the encoding module and the language model, leading to significant resource interference and tight data dependency. Recent studies have alleviated this issue by disaggregating the encoding module from the model, following a design style of prefill-decode disaggregation. Nevertheless, these approaches fail to fully exploit parallelism both within individual requests (intra-request) and across multiple requests (inter-request). To overcome the limitation, we propose REDServe, an LMM inference system that efficiently orchestrates intra- and inter-request pipelines. REDServe is designed to reduce low latency and maximize parallelism at both intra- and inter-request granularities. Built on the disaggregated architecture of the encoding module and language model, REDServe adopts a fine-grained scheduling method that overlaps multimodal encoding with the forward computation of the language model within a single request. For inter-request pipeline, REDServe leverages schedulable tokens and token budgets to balance computational loads across micro-batches. Combined with chunked prefill, this enables a novel scheduling strategy that coordinates the execution of intra- and inter-request pipelines. Experimental evaluations on representative LMMs show that REDServe achieves substantial latency reduction of up to 66% while improving throughput by up to 109%, significantly outperforming existing serving approaches.

思维导图

论文精读

中文精读

1. 论文基本信息 (Bibliographic Information)

  • 标题 (Title): RServe: Overlapping Encoding and Prefill for Efficient LMM Inference (RServe:通过重叠编码与预填充实现高效的大型多模态模型推理)
  • 作者 (Authors): Tianyu Guo, Tianming Xu, Xianjie Chen, Junru Chen, Nong Xiao, Xianwei Zhang. 作者主要来自中山大学 (Sun Yat-sen University) 和 Rednote (小红书)。
  • 发表期刊/会议 (Journal/Conference): arXiv 预印本。arXiv 是一个公开的、非同行评审的学术论文预发布平台,通常用于快速分享最新的研究成果。
  • 发表年份 (Publication Year): 2025 (根据论文中的参考文献格式推断,但提交至 arXiv 的日期更早,版本号为 v1)。
  • 摘要 (Abstract): 大型多模态模型 (LMM) 的推理服务极具挑战性。传统服务引擎将编码模块和语言模型部署在一起,导致资源冲突和紧密的数据依赖。尽管近期的研究通过解耦编码模块和语言模型缓解了此问题,但它们未能充分利用请求内 (intra-request) 和请求间 (inter-request) 的并行性。为解决此局限,本文提出了 RServe,一个高效协调请求内和请求间流水线的 LMM 推理系统。RServe 在解耦架构的基础上,通过一种细粒度调度方法,在单个请求内重叠多模态编码和语言模型的前向计算。对于请求间流水线,RServe 利用可调度令牌 (schedulable tokens) 和令牌预算 (token budgets) 来平衡微批次 (micro-batches) 的计算负载。实验表明,RServe 可将延迟降低多达 66%,并将吞吐量提高多达 109%
  • 原文链接 (Source Link):

2. 整体概括 (Executive Summary)

  • 研究背景与动机 (Background & Motivation - Why):

    • 核心问题: 高效地为大型多模态模型 (LMMs) 提供推理服务是一个难题。LMM 的推理流程比纯文本的 LLM 更复杂,因为它包含一个额外的、耗时的多模态编码 (multimodal encoding) 阶段,用于将图像、视频等数据转换为语言模型可以理解的嵌入 (embeddings)。
    • 现有挑战 (Gap):
      1. 资源干扰: 传统方法将编码模块和语言模型部署在一起,两者争抢 GPU 资源,互相干扰。
      2. 串行瓶颈: 近期工作将编码模块和语言模型解耦 (disaggregate),部署在不同设备上,解决了资源干扰问题。然而,它们仍然遵循一个严格的串行执行逻辑:必须等待一个请求中所有的多模态数据(例如,所有图片)都被编码完成后,才能开始语言模型的预填充 (prefill) 计算。这导致编码阶段成为一个无法被隐藏的延迟瓶颈。
      3. 并行性未被充分利用: 现有系统没有充分挖掘请求内部(例如,编码一张图片的同时处理文本部分)和请求之间(混合调度多个处于不同处理阶段的请求)的并行潜力。
    • 切入点/创新思路: 本文的创新点在于打破编码和预填充之间的严格串行依赖。其核心思想是:“边编码,边预填充”。当一个请求中的部分输入(如文本或第一张图片)准备好后,就可以立即送入语言模型进行预填充计算,而无需等待后续的图片完成编码。通过这种细粒度的流水线调度,将原本串行的两个耗时阶段重叠 (overlap) 起来,从而隐藏编码延迟,提升整体效率。
  • 核心贡献/主要发现 (Main Contribution/Findings - What):

    • 主要贡献:
      1. 提出了 RServe 系统: 一个专为 LMM 设计的高效推理服务系统,它通过精心设计的调度策略,同时优化请求内 (intra-request)请求间 (inter-request) 的并行流水线。
      2. 设计了请求内流水线机制: 通过 Embedding Tracker 追踪每个输入部分(文本、图片)的就绪状态,实现了多模态编码与语言模型预填充的细粒度重叠执行,显著降低单请求延迟。
      3. 设计了请求间流水线机制: 引入 schedulable tokens 的概念,结合 token budget,跨多个请求聚合已就绪的令牌,形成计算负载均衡的微批次 (micro-batches),从而填满计算流水线,最大化系统吞吐量。
    • 关键发现:
      • 实验证明,RServe 的方法非常有效,与现有领先的推理服务系统相比,能够将端到端延迟最多降低 66%,同时将系统吞吐量最多提升 109%

      • 该方法不仅在流水线并行 (pipeline parallelism) 配置下表现优异,也能与张量并行 (tensor parallelism) 等其他并行策略结合,具有良好的通用性。


3. 预备知识与相关工作 (Prerequisite Knowledge & Related Work)

  • 基础概念 (Foundational Concepts):

    • 大型多模态模型 (Large Multimodal Model, LMM): 指能同时处理和理解多种类型数据(如文本、图像、音频)的大型神经网络模型。其典型结构是一个多模态编码器 (multimodal encoder) + 一个大型语言模型 (LLM)。
    • 模型推理 (Model Inference): 指使用训练好的模型进行预测或生成内容的过程。它主要分为两个阶段:
      1. 预填充 (Prefill): 处理用户输入的完整提示 (prompt),计算并生成其对应的键值缓存 (KV Cache),并产出第一个输出令牌 (token)。这个阶段是计算密集型 (compute-bound)
      2. 解码 (Decode): 自回归地 (autoregressively) 生成后续的令牌。每生成一个新令牌,都会利用之前所有令牌的 KV Cache。这个阶段是内存带宽密集型 (memory-bound)
    • 键值缓存 (Key-Value Cache, KV Cache): 在 Transformer 模型中,为了避免在生成每个新令牌时重复计算历史令牌的注意力键 (Key) 和值 (Value),系统会将它们缓存起来。KV Cache 的大小与序列长度成正比,是长序列推理中的主要内存开销。
    • 架构解耦 (Disaggregation): 由于 PrefillDecode 阶段的计算特性截然不同,现代推理系统倾向于将它们部署在不同的硬件集群上。例如,用计算能力强的 GPU 集群处理 Prefill,用内存容量大的集群处理 Decode。本文更进一步,将 LMM 的编码 (Encoding) 阶段也解耦出来,形成 Encoder-Prefill-Decode (EPD) 的三级解耦架构。
    • 模型并行 (Model Parallelism): 当单个模型大到无法装入单个 GPU 时,需要将其切分到多个 GPU 上。主要有两种方式:
      1. 张量并行 (Tensor Parallelism, TP): 在模型层内进行切分,将单个矩阵运算(如矩阵乘法)分布到多个 GPU 上并行计算。它能有效降低延迟,但要求 GPU 间有极高的通信带宽(如 NVLink)。
      2. 流水线并行 (Pipeline Parallelism, PP): 按模型的层进行切分,将连续的层分配到不同的 GPU 上,形成一个流水线。它能提高吞吐量,但传统上对降低单次前向传播的延迟效果不佳。
    • 分块流水线并行 (Chunked Pipeline Parallelism, CPP): 对传统流水线并行的改进。它将输入序列切分成多个小块 (chunks),然后将这些小块依次送入流水线。这使得不同设备可以同时处理同一个请求的不同分块,从而实现了请求内的并行,有效降低了 Prefill 阶段的延迟。
  • 前人工作 (Previous Works):

    • 传统 LLM 服务系统 (vLLM, Orca): 这些系统优化了内存管理(如 PagedAttention)和调度(如迭代级调度),但主要面向纯文本模型,没有专门处理 LMM 的编码开销。
    • 解耦架构系统 (Splitwise, DistServe, Mooncake): 这些系统开创了 Prefill-Decode 解耦的先河,有效解决了两个阶段的资源冲突问题。特别是 Mooncake 提出的 CPP 技术,使得流水线并行也能实现低延迟,为 RServe 的工作提供了重要基础。
    • LMM 服务系统 (ModServe, EPD Disaggregation): 这些工作将解耦思想扩展到 LMM,提出了 Encoder-Prefill-Decode (EPD) 架构。它们解决了编码与预填充的资源争抢问题,但仍将编码和预填充视为串行步骤,未能实现二者的重叠执行,这是 RServe 主要攻击的性能瓶颈。
  • 技术演进 (Technological Evolution): 该领域的技术演进路线清晰可见:

    1. 单体服务: 所有功能(编码、预填充、解码)混合部署,资源冲突严重。
    2. Prefill-Decode 解耦: 分离计算密集型和内存密集型任务,提升资源利用率。
    3. Encoder-Prefill-Decode 解耦: 进一步分离 LMM 特有的编码任务,消除更多资源干扰。
    4. RServe 的细粒度流水线:EPD 解耦的基础上,打破阶段间的串行壁垒,通过重叠执行来隐藏延迟,将并行化推向了更深的层次。
  • 差异化分析 (Differentiation): 与最相关的 EPD 解耦工作相比,RServe 的核心区别在于调度粒度。之前的工作是在请求级别 (request-level) 进行调度,即一个请求的编码任务完成后,其预填充任务才能开始。而 RServe 是在令牌块级别 (token-chunk-level) 进行调度,它允许一个请求的预填充任务在编码任务尚未完全结束时就开始执行,实现了真正的任务内流水线并行 (intra-task pipeline parallelism)


4. 方法论 (Methodology - Core Technology & Implementation Details)

RServe 的设计基于 EPD 解耦架构,其核心在于通过三个关键模块来协同调度请求内和请求间的流水线。

该图像是一个流程示意图,对比了RServe系统下大型多模态模型(LMM)推理的不同调度策略。它展示了从传统的Vanilla顺序执行到通过编码-预填充解耦、分块预填充(CPP)以及令牌调度逐步优化的过程。最终的令牌调度方法利用微批处理,实现了请求内(intra-request)和请求间(inter-request)的并行,显著重叠了多模态编码与语言模型预填充,以提高处理效率。 该图像是一个流程示意图,对比了RServe系统下大型多模态模型(LMM)推理的不同调度策略。它展示了从传统的Vanilla顺序执行到通过编码-预填充解耦、分块预填充(CPP)以及令牌调度逐步优化的过程。最终的令牌调度方法利用微批处理,实现了请求内(intra-request)和请求间(inter-request)的并行,显著重叠了多模态编码与语言模型预填充,以提高处理效率。

上图(原文 Figure 8)清晰地展示了 RServe 各个组件如何逐步优化 LMM 推理流程。从 Vanilla 的完全串行,到 EP Disaggregated 分离了工作负载,再到 CPP 引入了请求内分块并行,最后 RServeToken Scheduling 实现了请求内和请求间的完美协同。

  • 方法原理 (Methodology Principles): 核心思想是化整为零、异步执行。将一个包含多个多模态输入的 LMM 请求,分解为一系列更小的、可独立调度的子任务(文本块的预填充、单个或小批量多模态输入的编码和预填充)。通过一个中央协调机制,动态地将已完成的子任务的输出(即 embeddings)送入下一阶段,从而最大化计算资源的并行利用。

  • 方法步骤与流程 (Steps & Procedures):

    Figure 11. Overall workflow of RServe prototype. 该图像是图11,展示了RServe原型系统的整体工作流程。它始于用户提交的多模态输入(文本、音频、图像、视频),通过编码器调度和并行编码生成多模态嵌入。这些嵌入随后经过嵌入追踪器和Token调度,最终进入并行的Prefill阶段。整个流程体现了LMM推理中编码与Prefill的重叠与并行处理。

    上图(原文 Figure 11)展示了 RServe 的整体工作流程,主要包含以下三个核心组件:

    1. Embedding Tracker (用于请求内流水线):

    • 作用: 这是实现“边编码,边预填充”的关键。它为每个进入系统的请求维护一个状态追踪器。
    • 工作流程:
      1. 初始化: 当一个新请求(例如,包含“文本1-图像1-文本2-图像2”)到达时,Embedding Tracker 会立即为其创建一个元数据记录。文本部分的 embeddings 可以瞬间生成,其状态被标记为就绪 (ready)。图像部分的 embeddings 空间被预留,状态标记为未就绪 (not-ready)
      2. 动态更新: 编码器模块开始处理图像1。一旦图像1的编码完成,Embedding Tracker 会将其对应的状态更新为就绪,并将生成的 embedding 填入预留空间。
      3. 触发调度: 调度器查询 Tracker,发现“文本1”和“图像1”的 embeddings 均已就绪,于是将这部分数据送入 LLM 进行 Prefill 计算。与此同时,编码器可以开始处理图像2。
      4. 内存释放: 一旦某部分的 embedding 完成了 Prefill 计算,Tracker 就会将其从 GPU 内存中释放,以节省空间。
    • 优势: 通过这种机制,编码图像2的过程与预填充“文本1+图像1”的过程可以并行发生,显著缩短了请求的端到端延迟。

    2. Encoder Scheduling (用于请求内流水线):

    • 作用: 优化编码器自身的效率。如果每次只编码一个多模态项目(如一张图片),批量太小会导致 GPU 利用率低下。如果一次性编码所有项目,又会回到串行瓶颈。
    • 策略: RServe 采用了一种批量编码 (batched encoding) 策略。它会将请求中的多模态项目(如多张图片)收集起来,当积攒到一定数量(由一个超参数 CC,即 embedding batch size 控制)后,再作为一个批次送入编码器进行处理。
    • 伪代码 (Algorithm 1):
      Algorithm 1: Encoder Scheduling in LMM Inference
      Require: Waiting queue Q, Embedding batch size C
      1: while True do
      2:   if Q is not empty then
      3:     req <- Dequeue(Q)
      4:     buffer <- []
      5:     for each element e in req do
      6:       if e is multimodal data then
      7.         Append e to buffer
                 8:         if size(buffer) >= C then
      9:           Encode(buffer) // 将编码结果通知 Embedding Tracker
      10:          buffer <- []
      11:        end if
      12:      end if
      13:    end for
      14:    if size(buffer) > 0 then
      15:      Encode(buffer) // 处理剩余部分
      16:    end if
      17:  else
      18:    Wait for new request
      19:  end if
      20: end while
      
    • 权衡: 这是一种在延迟硬件效率之间的权衡。C 值越小,可重叠的机会越多,但单次编码效率越低;C 值越大,编码效率越高,但等待时间变长,重叠机会减少。

    3. Token Scheduling (用于请求间流水线):

    • 作用: 解决仅有请求内流水线时,可能出现的“流水线气泡” (pipeline bubble) 问题。单个请求在某一时刻可能没有足够多的“就绪”令牌来喂饱整个 Prefill 计算集群。

    • 核心概念:

      • 可调度令牌 (Schedulable Tokens): 对于一个请求,只有那些自身的 embedding 已经就绪,并且它前面的所有令牌都已经完成 Prefill 的令牌,才被认为是“可调度的”。
      • 全局令牌预算 (Global Token Budget): 在每一轮调度中,系统有一个总的令牌处理预算 B(例如,本次调度最多处理 8192 个令牌的 Prefill)。
    • 工作流程 (Algorithm 2):

      1. 调度器遍历等待队列中的所有请求。
      2. 对于每个请求 r,它会查询 Embedding Tracker,计算出该请求当前有多少可调度令牌 t
      3. 如果 t 小于等于剩余的预算 B,则将这 t 个令牌加入当前的执行批次 (execution batch),并更新预算 B = B - t
      4. 如果 t 大于 B,则只将预算允许的部分加入批次,并将该请求标记为未完成,放回队列头部,以便在下一轮优先调度。
      5. 将从多个不同请求中收集到的令牌块合并成一个大的微批次 (micro-batch),送入 LLM 进行 Prefill
    • 优势: 如下图(原文 Figure 10)所示,通过聚合多个请求的可调度令牌,RServe 能有效地填满每个微批次的计算容量,避免了 GPU 空闲,从而在保持低延迟的同时,大幅提升了系统总吞吐量。

      Figure 10. Comparison between the intra-request pipeline and the combined intra- and inter-request pipeline. 该图像是图10的示意图,比较了RServe系统中“请求内管道”与“请求内和请求间组合管道”的计算调度。它展示了后者如何通过重叠多模态编码和语言模型预填充(包括微批次处理)来显著提高并行度并缩短处理时间。

  • 数学公式与关键细节 (Mathematical Formulas & Key Details): 本文的核心是系统设计和调度算法,没有引入复杂的数学公式。其关键在于算法流程的逻辑设计,如 Algorithm 1 和 2 所示。


5. 实验设置 (Experimental Setup)

  • 数据集 (Datasets):

    • MMMU: 一个大规模、多学科的多模态基准测试数据集,包含科学、工程、人文等领域的文本、图像、图表等内容,需要专家级的推理能力。
    • SGLang Benchmark: 一个开源的 LLM 服务基准测试工具,用于模拟真实的云服务环境。
    • 请求生成: 实验中的请求到达模式遵循泊松分布 (Poisson distribution),这是一种常用于模拟独立随机事件(如用户请求到达)的模型。
  • 评估指标 (Evaluation Metrics):

    • 首次令牌时间 (Time to First Token, TTFT):
      1. 概念定义: 该指标衡量系统的响应速度。它计算的是从用户发送请求到系统生成第一个输出令牌所花费的平均时间。TTFT 越短,用户感受到的延迟就越低。
      2. 数学公式: TTFT=1Ni=1N(Tfirst_token,iTrequest_arrival,i) \text{TTFT} = \frac{1}{N} \sum_{i=1}^{N} (T_{\text{first\_token}, i} - T_{\text{request\_arrival}, i})
      3. 符号解释:
        • NN: 总请求数量。
        • Tfirst_token,iT_{\text{first\_token}, i}: 第 ii 个请求的第一个令牌生成的时间戳。
        • Trequest_arrival,iT_{\text{request\_arrival}, i}: 第 ii 个请求到达系统的时间戳。
    • 吞吐量 (Throughput):
      1. 概念定义: 该指标衡量系统的处理能力。它计算的是单位时间内系统成功处理的输入令牌总数,单位通常是tokens/s。吞吐量越高,代表系统在单位时间内能完成的工作越多。
      2. 数学公式: Throughput=i=1NLprompt,iTendTstart \text{Throughput} = \frac{\sum_{i=1}^{N} L_{\text{prompt}, i}}{T_{\text{end}} - T_{\text{start}}}
      3. 符号解释:
        • NN: 在测量时间段内处理的总请求数。
        • Lprompt,iL_{\text{prompt}, i}: 第 ii 个请求的输入提示 (prompt) 的长度(以令牌计)。
        • TstartT_{\text{start}}TendT_{\text{end}}: 测量周期的开始和结束时间。
    • 服务水平目标达成率 (SLO Attainment):
      1. 概念定义: 该指标衡量系统在满足预设服务质量标准方面的表现。服务水平目标 (Service Level Objective, SLO) 通常定义为一个延迟阈值(例如,TTFT 必须小于 10 秒)。SLO 达成率就是所有请求中,满足该延迟要求的请求所占的百分比。
      2. 数学公式: SLO Attainment=Count(TTFTiSLOthreshold)Total Number of Requests×100% \text{SLO Attainment} = \frac{\text{Count}(\text{TTFT}_i \le \text{SLO}_{\text{threshold}})}{\text{Total Number of Requests}} \times 100\%
      3. 符号解释:
        • TTFTi\text{TTFT}_i: 第 ii 个请求的首次令牌时间。
        • SLOthreshold\text{SLO}_{\text{threshold}}: 预先定义的服务水平目标延迟阈值。
  • 对比基线 (Baselines):

    • **vLLM`:** 当前业界广泛使用的高性能 LLM 推理引擎,作为性能标杆。实验中测试了其 `TP` 和 `PP` 两种配置。 * **`gLLM`:** `RServe` 实现所基于的轻量级推理框架,用于公平比较。 * **`gLLM-epd`:** 在 `gLLM` 基础上实现了 `Encoder-Prefill` 解耦,但没有 `RServe` 的重叠调度优化,用于验证重叠调度的纯粹收益。 * **`RServe-intra`:** `RServe` 的一个消融版本,只实现了请求内流水线,没有请求间调度。用于验证请求间调度的重要性。 --- # 6. 实验结果与分析 * **核心结果分析 (Core Results Analysis):** 实验在 Qwen2.5-VL-72B 模型和 H100 GPU 上进行,主要结论如下: * **延迟 (Latency - Figure 12):** ![Figure 12. Latency comparison of vLLM, gLLM and RServe (logarithmic coordinate system).](/files/papers/68ef93f18ebb678713499a6e/images/12.jpg) *该图像是图12,比较了vLLM、gLLM和REDServe三种LMM推理系统的延迟性能。图表以对数坐标系展示了Qwen2.5-VL-72B模型在1K和2K分辨率下,请求速率与首次生成令牌时间(TTFT)的关系。REDServe在所有测试配置下均表现出最低的TTFT,显著优于vLLM和gLLM,证实了其在降低延迟方面的优势。* * **结果:** `RServe` (绿色实线) 在所有请求速率下都实现了最低的 TTFT。与 `gLLM-epd` (蓝色方块线) 相比,`RServe` 实现了 **18%-19%** 的额外延迟降低。与 `gLLM` (红色圆点线) 相比,总延迟降低高达 **66%**。 * **分析:** 这强有力地证明了重叠编码和预填充的有效性。在低请求速率下,请求内流水线是主要优化点,因此 `RServe` 的优势非常明显。随着请求速率增加,排队延迟成为主导,但 `RServe` 依然保持领先。 * **吞吐量 (Throughput - Figure 13):** ![Figure 13. Throughput comparison of vLLM, gLLM and RServe.](/files/papers/68ef93f18ebb678713499a6e/images/13.jpg) *该图像是图13,展示了vLLM、gLLM和RServe的吞吐量比较。它包含两个子图:(a) Qwen2.5-VL-72B模型在1K分辨率下的吞吐量随请求率的变化,以及(b) 同一模型在2K分辨率下的吞吐量变化。在两个子图中,REDServe(绿色曲线)均表现出最高的吞吐量,尤其是在请求率达到一定阈值后,其性能明显优于gLLM-epd(蓝色曲线)、gLLM(红色虚线)和vLLM(黑色及紫色曲线),证实了REDServe在LMM推理服务中的卓越效率和并行化能力。* * **结果:** `RServe` 的最大吞吐量达到了约 10600-11100 `tokens/s`,显著高于所有基线。与 `vLLM` 相比,提升高达 **109%**。 * **分析:** 这得益于请求间流水线 (`Token Scheduling`) 的有效性。通过跨请求聚合可调度令牌,`RServe` 能够持续地让 GPU 满负荷工作,从而压榨出系统的最大处理能力。 * **SLO 达成率 (SLO Attainment - Figure 14):** ![Figure 14. SLO Attainment comparison of gLLM and RServe.](/files/papers/68ef93f18ebb678713499a6e/images/14.jpg) *该图像是图14,展示了gLLM和REDServe在不同请求速率下的服务水平目标(SLO)达成率对比。两幅图分别在1K和2K分辨率下,比较了两种系统。结果显示,REDServe在两种分辨率下均表现出更高的SLO达成率,尤其在高请求速率下优势更明显,表明其卓越的性能。* * **结果:** 在相同的请求速率下,`RServe` (绿色虚线) 的 SLO 达成率始终高于 `gLLM-epd` (蓝色实线)。曲线下的覆盖面积比 `gLLM-epd` 大 **23%**。 * **分析:** 这表明 `RServe` 不仅平均性能更好,而且性能更稳定,能够在高负载下为更多用户提供满足质量要求的服务。 * **消融实验/参数分析 (Ablation Studies / Parameter Analysis):** * **嵌入批大小的影响 (Impact of Embedding Batch Size - Figure 16):** ![Figure 16. Impact of varying embedding batch size. Two requests with about 2 \mathrm { k }texttokensand text tokens and 2 0 ~ \mathrm { M M }itemsaresenttoRServe items are sent to RServe ( \mathrm { P P 4 + E } 1 )$ . The data…](/files/papers/68ef93f18ebb678713499a6e/images/16.jpg) 该图像是图表,展示了图16中不同嵌入批处理大小对RServe系统性能的影响,包括吞吐量(Throughput)和首个 token 延迟(TTFT)。图(a)为高质量多模态数据(1024 toks/MM item),图(b)为低质量多模态数据(32 toks/MM item)。结果显示,在两种数据质量下,RServe在多数嵌入批处理大小下均能保持较高的吞吐量和较低的TTFT。最右侧的"gLLM-epd"代表所有多模态数据编码完成后才执行预填充操作,其TTFT显著高于RServe,尤其是在高质量数据场景下。

      • 结果分析:
        • 高质量数据 (图a): 此时单个多模态项目(如一张高清图)产生的令牌很多。更小的批大小(如 1024)能提供更多重叠机会,因此 TTFT 最低。随着批大小增加,等待编码完成的时间变长,TTFT 随之升高。
        • 低质量数据 (图b): 此时单个项目产生的令牌很少。批太小会导致编码器效率低下,反而增加总时间。因此存在一个最佳批大小(如 128),在该点上编码器效率和重叠机会达到最佳平衡。
      • 结论: 最佳的 embedding batch size 取决于具体的工作负载特性,这是一个需要根据实际应用场景进行调优的超参数。
    • 请求间流水线的重要性 (Inter-request Pipeline - Figure 17):

      Figure 12. Latency comparison of vLLM, gLLM and RServe (logarithmic coordinate system). 该图像是图17,展示了RedServe与RedServe-intra在不同请求速率下的吞吐量(toks/s)和TTFT(s)的消融研究对比。图中显示,RedServe在所有请求速率下均表现出更高的吞吐量(深蓝色条形)和更低的TTFT(红色折线),显著优于RedServe-intra(浅蓝色条形和橙色虚线)。这表明RedServe在效率和延迟方面具有优势。

      • 结果: 完整的 RServe (深蓝色条) 相比只包含请求内流水线的 RServe-intra (浅蓝色条),吞吐量高出 32%,延迟低了 172%
      • 分析: 这是整个系统设计的关键验证。它表明,仅仅优化单个请求的执行流程是不够的,必须通过跨请求的协同调度来消除计算资源的空闲,才能实现系统级的最优性能。
    • 功能正确性研究 (Functional Study - Table 1):

      • 转录表格:

        Framework vLLM gLLM gLLM-epd RServe
        MMMU Score 62.7 62.6 62.4 62.6
      • 分析: 所有系统在 MMMU 基准测试上的得分几乎没有差异(波动小于 0.5%)。这证明 RServe 的所有系统级优化没有对模型的推理逻辑和最终输出精度产生任何负面影响,保证了其功能的正确性。


7. 总结与思考 (Conclusion & Personal Thoughts)

  • 结论总结 (Conclusion Summary): 本文成功地识别并解决了现有 LMM 服务系统中因编码与预填充串行执行而导致的性能瓶颈。通过提出 RServe 系统,论文展示了一种新颖的、高效的调度范式:

    1. 请求内,通过 Embedding Tracker 实现多模态编码和 LLM 预填充的细粒度重叠,显著降低了延迟。
    2. 请求间,通过 Schedulable TokensToken Budget 机制,跨请求聚合计算任务,有效填补了流水线空隙,极大地提升了吞吐量。 RServe 的设计在理论上是创新的,在实践中通过详实的实验被证明是高效的,为未来 LMM 服务系统的发展提供了重要的设计思路和实现参考。
  • 局限性与未来工作 (Limitations & Future Work):

    • 局限性 (论文未明确指出,为个人推断):
      1. 超参数敏感性: 系统的性能(特别是延迟与吞吐量的权衡)可能对 embedding batch size 这个超参数比较敏感,需要针对不同模型和硬件进行调优。
      2. 调度复杂性增加: 相比简单的先进先出或请求级调度,RServe 的令牌级调度逻辑更复杂,可能会带来额外的调度器开销,尽管实验结果表明其总体收益远大于开销。
      3. 对特定请求结构的依赖: RServe 的优势在处理包含多个多模态项目(如多图穿插文本)的请求时最为明显。对于只有一个多模态项目或纯文本的请求,其收益会相对减小。
    • 未来工作 (论文未明确指出,为个人推断):
      1. 自适应调度: 开发动态调整 embedding batch size 的策略,使其能根据实时的请求负载特性(如图片分辨率、数量分布)自适应优化。
      2. 扩展到更多模态: 将该调度框架扩展到更复杂的模态,如长视频和音频流,这些模态的编码过程本身就是流式的,与 RServe 的思想天然契合。
      3. 与硬件感知的调度结合: 结合底层硬件的特性(如不同 GPU 间的通信拓扑),设计更智能的令牌调度和放置策略。
  • 个人启发与批判 (Personal Insights & Critique):

    • 启发:
      1. 打破抽象边界: 这篇论文的精髓在于打破了“编码”和“预填充”这两个被传统系统视为原子操作的抽象边界。通过深入到任务内部,挖掘更细粒度的并行性,是系统优化领域一个永恒且有效的主题。
      2. 流水线思想的深化应用: 它将计算机体系结构中的流水线思想,从指令级、处理器级,巧妙地应用到了分布式 AI 系统的任务调度级别,并且同时在时间和空间(跨请求)两个维度上进行优化,构思非常精巧。
      3. 问题导向的系统设计: RServe 的每一个组件都是为了解决一个具体问题而设计的:Embedding Tracker 解决依赖管理,Encoder Scheduling 解决编码效率,Token Scheduling 解决资源空闲。这种清晰的问题分解和对应的解决方案,是优秀系统论文的典范。
    • 批判性思考:
      1. 真实世界工作负载的复杂性: 实验中使用的泊松分布是标准的模拟方法,但真实世界的用户请求模式可能更具“突发性” (burstiness) 或带有潮汐效应。RServe 在这种更复杂的负载下的鲁棒性有待进一步验证。
      2. 对解码阶段的关注不足: 本文的优化重点完全集中在 Prefill 阶段(影响 TTFT 和输入吞吐量)。虽然这确实是当前 LMM 服务的瓶颈之一,但对于长序列生成任务,Decode 阶段的内存管理和效率也同样重要。RServe 的调度策略是否会对解码阶段的批处理 (batching) 效率产生间接影响,是一个值得探讨的问题。
      3. 实现与部署的挑战: RServe 的调度器需要全局视角和对每个请求内部状态的精细追踪,这在超大规模的分布式部署中可能会带来一致性和扩展性的挑战。虽然论文基于 gLLM 进行了原型实现,但将其无缝集成到如 vLLM 这样复杂的、拥有庞大社区和特性的成熟系统中,可能需要大量工程努力。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。