新闻

LLM推理优化:从每一层压低成本与延迟(2026)| Morph

新闻 2026-05-11 0 次浏览

平均而言,LLM API 调用中有 40-60% 的输入 Token 被浪费在模型并不需要的上下文上。过时的对话记录、冗长的系统提示词、明明只需三个函数却包含整个文件。你不仅要在 API 账单上为这些冗余 Token 买单,还要在模型处理填充内容时承担额外的延迟代价。

80%
成本降幅(多重叠加优化)
2-4倍
量化带来的内存节省
3-10倍
连续批处理带来的吞吐量提升
33K tok/s
紧凑型上下文压缩速度
LLM 推理优化层级:模型量化、系统批处理与上下文压缩,配合成本降低箭头示意图

成本难题

从 2025 年到 2026 年,LLM API 的价格大约下降了 80%。达到 GPT-4 级别的性能目前每百万 Token 仅需 0.40 美元,远低于 2023 年 3 月的 30 美元。然而,推理量的增长速度超过了价格下降的速度。那些每个任务需要调用 50-200 次 LLM 的 Agentic 工作流,会让原本低廉的单 Token 价格变成高昂的单任务成本。

这一问题在三个方面不断恶化:

上下文膨胀

在多轮对话中,Agent 会不断积累上下文。到了第 30 轮,单次调用的输入 Token 量可能是第一轮的 5-10 倍。其中大部分内容都是陈旧无用的。

冗余计算

如果没有缓存机制,模型会在每次调用时重新计算相同的系统提示词和对话前缀。对于一个 10K Token 的前缀,这意味着每个请求都有数十亿次被浪费的浮点运算。

硬件利用率低下

默认的服务配置会导致 GPU 在请求间隔期间处于闲置状态。如果不使用连续批处理,一台时薪 3 美元的 H100 可能每秒仅处理 50 个 Token,而非 16,000+ 个。

优化的核心不仅仅是压缩几个百分点,而是消除默认配置带来的 3-10 倍额外开销。以下技术将针对每一处浪费产生的源头进行治理。

模型层优化

模型层技术旨在降低单个参数的计算成本。它们是在模型处理请求之前,直接对模型本身进行修改。

量化 (Quantization)

量化将权重精度从 FP16 降至 INT8、INT4 或更低。这是一种权衡:精度的降低意味着更小的内存占用和更快的矩阵运算,代价是轻微的准确度损失。

2-4倍
内存缩减 (INT8/INT4)
~50%
单次推理成本降低
95-99%
保留的准确度
1.56倍
加速比 (SmoothQuant)

SmoothQuant 将量化难度从激活值转移到权重,实现了 2 倍的内存缩减且几乎无损精度。GPTQAWQ 利用校准数据来确定最佳的逐层量化参数。谷歌的 TurboQuant(2026 年 3 月)将 KV 缓存本身压缩至每值 3 比特,实测无精度损失,将 KV 缓存内存削减了 6 倍。

剪枝 (Pruning)

剪枝是指移除模型中的冗余参数。结构化剪枝会移除整个注意力头或 MLP 列;非结构化剪枝则将独立的权重归零。一个经过剪枝的 6B 参数模型运行速度比其稠密版本快 30%,且在 MMLU 上得分 72.5,击败了未剪枝的 4B 模型(70.0 分)。

知识蒸馏 (Knowledge Distillation)

蒸馏是指训练一个较小的“学生”模型,使其输出分布匹配较大的“教师”模型。学生模型的运行成本仅为前者的一小部分。最佳的压缩流程是 P-K-D-Q:先剪枝,再蒸馏,最后量化。每一步的效果都会叠加。

使用场景指南

对于 API 提供商和自部署用户来说,量化拥有最高的性价比(投入产出比)。剪枝和蒸馏虽然需要训练算力,但能产生永久更廉价的模型。如果你通过 API 使用 LLM,这些由供应商处理。如果是自托管,建议从量化(零训练成本)开始,然后针对特定工作负载评估剪枝和蒸馏。

系统层优化

系统层技术旨在不改变模型的前提下最大化硬件利用率。它们运作于模型与网络之间的服务层。

连续批处理 (Continuous Batching)

静态批处理会等待批次内的所有请求完成后才接受新请求。短请求必须等待长请求生成完毕。连续批处理则在旧请求完成时动态插入新请求,保持 GPU 满载。

吞吐量差异显著:相同硬件下可获得 3-10 倍的提升。Anyscale 在生产工作负载中实测,启用连续批处理后,聚合吞吐量提升了 23 倍。

PagedAttention 与 KV 缓存管理

KV 缓存存储已计算的注意力键值,避免模型在每个 Token 上重复计算。问题在于:为最大序列长度预分配 KV 缓存内存会浪费高达 90% 的 GPU 内存,因为大多数请求并未用满整个上下文窗口。

PagedAttention (vLLM) 将 KV 缓存分割成小的、可复用的页面,按需分配。这将内存浪费削减了高达 90%,并使服务吞吐量提升至 24 倍,因为更多请求可以同时容纳在内存中。

ChunkKV 将语义块而非孤立的 Token 作为压缩单元,在激进压缩下保留语言结构。RocketKV 使用两阶段流水线:先进行粗粒度的 KV 驱逐,再对幸存者进行细粒度压缩。

投机解码 (Speculative Decoding)

自回归解码每次生成一个 Token,导致每次前向传递中 GPU 利用率不足。投机解码引入了一个小型、快速的草稿模型,提前预测多个 Token。目标模型在单次并行传递中验证它们。被接受的 Token 在数学上与目标模型单独生成的完全一致。

2-3倍 典型加速

使用现成的 EAGLE3 草稿模型在通用查询上的生产基准测试。这种加速本质上是免费的:输出质量完全相同。

最高 5倍 优化加速

特定领域或硬件优化的实现相比标准自回归解码可达 5-5.5 倍加速。

草稿延迟至关重要

最近的基准测试显示,草稿模型的准确度与吞吐量之间的相关性很小。草稿模型的延迟才是决定端到端速度的更强因素。

FlashAttention

FlashAttention 通过分块计算以及融合 Softmax 和矩阵乘法,重新组织注意力计算以最小化内存 I/O。FlashAttention-3 提供了目前最快的自定义注意力内核,并已集成到 vLLM 和 SGLang 中。

推理引擎对比

2026 年的生产环境 LLM 服务主要由四大引擎主导。它们采用了不同的优化路径。

引擎版本吞吐量 (H100)核心特性适用场景
SGLangv0.4.316,200 tok/sRadixAttention 前缀缓存重前缀工作负载 (RAG, 聊天)
LMDeployLatest16,200 tok/s持久批处理调度高吞吐量服务
vLLMv0.7.312,500 tok/sPagedAttention, Blackwell 支持灵活性,频繁模型切换
TensorRT-LLMLatest高并发下最高编译的 CUDA 内核单模型,长期生产环境

SGLang/LMDeploy 与 vLLM 之间 29% 的吞吐量差距,在重前缀工作负载下会缩小,因为 SGLang 的 RadixAttention 提供了额外优势。TensorRT-LLM 需要编译步骤,但一旦编译完成,能在规模上提供最高的吞吐量。

对于大多数团队,建议如下:vLLM 适合频繁更换模型且希望以最简单路径上线的场景。 SGLang 适合具有共享前缀(聊天机器人、RAG、多轮对话)的工作负载。 TensorRT-LLM 适合运行单一模型且吞吐量为首要目标的长期生产环境。

应用层优化

应用层技术旨在减少发送给模型的 Token 数量。对于通过 API 消费 LLM 的团队来说,这是 ROI 最高的优化手段,因为它们能叠加在供应商已完成的模型层和系统层工作之上。

提示词缓存 (Prompt Caching)

提示词缓存会复用注意力层中先前计算出的 KV 张量。当连续的请求共享一个公共前缀(系统提示词、对话历史)时,缓存部分会完全跳过预填充阶段。

Anthropic、OpenAI 和 Google 都提供提示词缓存。对于超过 10K Token 的上下文,缓存部分的延迟可降低 80-90%。在 Anthropic 的实现中,缓存的输入 Token 不计入速率限制,在 80% 缓存命中率下,相当于将吞吐量提升了 5 倍。

语义缓存 (Semantic Caching)

语义缓存更进一步:它存储完整的请求-响应对,并为语义相似的查询返回缓存响应。一旦命中缓存,LLM 推理调用被完全消除。AWS 基准测试显示,对于具有重复查询模式的工作负载,成本可降低 3-10 倍。

上下文压缩 (Context Compression)

在 Agentic 工作流中,大多数输入 Token 都是低信号密度的:旧的对话轮次、样板化的文件头、模型已处理过的文件内容。上下文压缩会在推理前移除这些内容。

LLMLingua 这样的技术通过排序并保留关键 Token,可实现高达 20 倍的压缩率。但重写内容的压缩方法会引入保真度问题。基于摘要的方法在生产评估中准确度得分仅为 3.4-3.7/5,因为它们会改写掉文件路径、错误代码和具体决策。

逐字压缩 (Verbatim compaction) 采取了不同的方法:它删除低信息 Token,同时保留每个幸存句子的逐字内容。不生成新内容,不重新格式化。JetBrains 发现,相比逐字压缩,基于摘要的压缩会导致 Agent 轨迹延长 13-15%,因为 Agent 需要重新推导被改写掉的信息。

Morph Compact

Morph Compact 在自定义推理引擎上以 33,000 tok/s 的速度运行逐字上下文压缩。它在保持每个幸存句子原封不动的同时,将上下文缩小 50-70%。速度足够快,可以在每次 LLM 调用前实时运行,而不仅仅是在 95% 容量极限时。

模型路由 (Model Routing)

并非每个请求都需要你最昂贵的模型。将分类和提取任务路由到 Haiku(输入 $0.25/M)而非 Sonnet(输入 $3/M),可在这些任务类型上实现 12 倍的成本降低,且质量差异极小。生产环境中的路由通常能带来 2-5 倍的总体成本节约。

叠加优化层级

每一层针对不同的瓶颈。它们的效果叠加且互不干扰。

层级降低对象典型节省实施难度
量化 (模型)单参数内存2-4倍 内存, ~50% 成本低 (已有工具)
连续批处理 (系统)GPU 空闲时间3-10倍 吞吐量低 (引擎配置)
PagedAttention (系统)KV 缓存内存浪费最高 24倍 吞吐量低 (使用 vLLM/SGLang)
投机解码 (系统)解码延迟2-5倍 速度中 (需选择草稿模型)
上下文压缩 (应用)发送的输入 Token减少 50-70% Token低 (API 调用)
提示词缓存 (应用)冗余预填充缓存部分延迟降 80-90%低 (API 标记)
模型路由 (应用)单次请求成本2-5倍 总体节省中 (需分类器)

一个具体的例子:一个运行在量化版 Llama 70B 模型(成本减半)上的编码 Agent,通过 vLLM 并使用连续批处理服务(吞吐量提升 5 倍),并在每次调用前使用 Morph Compact 压缩上下文(输入 Token 减少 60%)。综合效果:相比使用全上下文的原始 FP16 服务,单任务成本降低约 80%。

对于使用托管 API(OpenAI、Anthropic、Google)的团队,模型层和系统层由供应商处理。应用层优化,特别是上下文压缩、提示词缓存和模型路由,是你可控的杠杆。这也是 ROI 最高的部分,因为它们减少了进入一个已被供应商优化的系统的 Token 量。

衡量优化效果

错误的指标会掩盖浪费。请分别追踪以下数据:

单位任务 Token 数

完成单位工作消耗的总 Token(而非单次请求)。这是映射到成本的指标。一个需要 50 次请求且平均 8K Token 的编码 Agent,每个任务成本为 400K Token。

时长

点击查看文章原文
上一篇
Inference Cost Reduction | Technical Training for AI Engineers
下一篇
LLM推理优化:最大化每美元Token产出 | 最佳GPU云
返回列表