随着大语言模型(LLM)的快速发展,LLM API 已成为 AI 原生应用的核心基础设施。本文基于阿里云 AI 网关在 LLM API 场景下的实际压测数据,评估了多种压缩算法(ZSTD、GZIP、Brotli、QATZip)在流式与非流式响应场景中的性能表现。测试结果显示,启用响应压缩功能可显著降低网络带宽消耗,在流式响应场景下最高可减少 90% 以上的出方向带宽成本。
LLM API 特点
LLM API 通常具备以下特征:
以流式传输为主:为提升响应实时性,多数 LLM API 采用 Server-Sent Events(SSE)或流式数据传输机制。
响应数据量显著大于请求数据量:典型场景中,请求通常仅包含简短的提示词(Prompt),而响应则包含完整的生成文本,部分情况下还包括推理过程、置信度信息等附加内容,导致响应数据规模远超请求。因此,网络带宽消耗主要集中于出方向,即响应数据的传输阶段。
响应数据高度结构化:LLM API 的响应通常以 JSON 格式组织,具有明确的字段结构和较高的数据冗余度。结构化数据因存在重复模式与固定语法元素,更易于通过通用压缩算法实现高效压缩。在流式传输场景下,连续的数据帧常包含相似的结构信息,进一步提升了可压缩性。
综上,针对 LLM API 的响应数据,尤其是在流式传输场景下实施压缩,可显著降低传输带宽占用,提升整体传输效率。
核心优势与适用场景
解决的核心问题
高带宽成本:LLM 应用的响应通常为大量文本,在调用量较大时会产生较高的公网流出带宽费用。
弱网体验不佳:在移动或网络不佳的环境下,未经压缩的大体积响应会导致客户端卡顿,影响流式体验。
量化收益
启用响应压缩,特别是针对流式 API,能节约成本并提升体验。
成本节约:
在 流式响应 场景下,带宽节省率可达 92% - 97%。
在 非流式响应 场景下,带宽节省率约为 28% - 40%。
体验提升:降低传输数据量,加快响应在客户端的加载速度,在弱网环境下效果明显。
适用场景与决策建议
场景 | 推荐策略 | 说明 |
LLM 流式 API | 推荐 | 例如基于 SSE 的对话接口。流式传输的协议和数据结构存在冗余,压缩效果好,可节省最高 97% 的带宽。 |
返回大量文本/JSON 的普通 API | 推荐 | 例如返回长文章、大列表的 API。当响应体大于 100KB 时,压缩能带来带宽节约。 |
API 响应体已是压缩格式 | 不推荐 | 例如图片(JPEG/PNG)、视频、二进制文件等。对已压缩数据再次压缩,效果不佳,且会增加 CPU 开销。 |
API 响应体极小 | 不推荐 | 例如小于 1KB 的响应。压缩带来的开销(CPU、延迟)可能超过其收益。 |
性能评测
测试环境
参数 | 配置 |
网关节点 | 1 核 2GB 内存,单节点部署 |
压测 QPS | 固定 30 QPS |
测试场景 | LLM API 实际调用场景 |
压缩算法 | ZSTD、GZIP、Brotli、QATZip |
压缩算法
本次测试对比四种压缩算法:
算法 | 技术特点 |
GZIP | 经典的 DEFLATE 压缩算法,兼容性优秀。 |
ZSTD | Facebook 开源,压缩比和速度平衡优秀。 |
Brotli | Google 开源,压缩比高但 CPU 消耗较大。 |
QATZip | 基于 Intel QAT 技术的硬件加速 GZIP,适用于高并发、低延迟、低 CPU 消耗场景。 |
QATZip 技术详解:
QATZip 是基于 Intel QuickAssist Technology(QAT)硬件加速技术实现的 GZIP 压缩方案。QAT 是 Intel 提供的专用硬件加速平台,通过在独立的加速卡上执行压缩与解压缩操作,将原本由 CPU 承担的计算密集型任务卸载至专用硬件处理,从而显著提升系统性能。
工作原理:
QAT 硬件加速卡集成专用压缩/解压缩引擎,针对数据压缩计算任务进行优化,通过 PCIe 总线与主机连接,支持与CPU并行运行及异步操作模式。CPU 可将压缩任务提交至加速卡后立即返回处理其他任务,实现高效的任务卸载。
阿里云 AI 网关与云原生 API 网关支持 QATZip 技术,可通过硬件加速 Gzip 压缩,有效降低CPU利用率并减少网络带宽消耗。
测试方法
本次测试对比四种压缩算法在两种响应模式下的表现:
非流式响应:一次性返回完整的 JSON 响应。
流式响应:采用流式传输模式(SSE/Chunked Transfer Encoding)。
测试指标:
压缩比:压缩后数据大小与原数据大小的比例(越小越好)。
CPU 消耗:网关节点在处理压缩时的 CPU 使用率。
测试结果
压缩算法 | 响应模式 | 压缩比 | CPU 消耗 |
ZSTD | 非流式 | 72% | 6% |
流式 | 2.8% | 23.6% | |
GZIP | 非流式 | 68.8% | 6% |
流式 | 7.2% | 30% | |
Brotli | 非流式 | 60.8% | 6.2% |
流式 | 7.2% | 34.5% | |
QATZip | 非流式 | 67% | 4.8% |
流式 | 2.9% | 20.9% |
注:压缩比 = 压缩后大小 / 原始大小,压缩比越小表示压缩效果越好。例如,2.8% 表示压缩后数据仅为原始数据的 2.8%,节省了 97.2% 的带宽。
结果分析
流式响应压缩优势明显
流式响应的压缩效果显著优于非流式响应,两者压缩比可相差 10 倍以上。
非流式场景:压缩比在 60%-72% 区间,带宽节省约 28%-40%。
流式场景:压缩比可低至 2.8%-7.2%,带宽节省高达 92%-97%
流式响应采用分块传输机制,数据按 token 逐步返回。每个返回的 chunk 中包含重复性较高的数据结构(如 JSON 字段名、格式字符等),导致冗余信息较多,此类重复模式更易被压缩算法识别并高效压缩。针对 LLM API 的流式响应进行压缩,可显著降低出方向网络带宽消耗。
CPU 消耗权衡
流式响应在实现更高压缩率的同时,会带来相应的 CPU 开销增加。
在非流式场景下,CPU使用率稳定在4.8%至6.2%之间,资源消耗较低。而在流式场景下,CPU使用率上升至20.9%至34.5%,需要消耗更多的计算资源。
由于流式压缩需对连续数据进行实时分块处理,算法复杂度和数据处理量均显著增加,同时更高的压缩率通常伴随更多的计算操作,因此 CPU 使用率上升属于预期现象。
QATZip 综合性能更好
根据压缩算法的测试结果,QATZip 在综合性能上表现更优。
在流式场景下,ZSTD/QATZip的压缩比为2.8%~2.9%,显著优于 Gzip/Brotli 的7.2%。
在相近压缩比条件下,QATZip 的 CPU 消耗为20.9%,低于 ZSTD 的23.6%。得益于专用硬件加速支持,QATZip 在压缩效率和资源占用方面均具备优势。
实施步骤
创建支持硬件加速的 AI 网关实例
登录AI 网关控制台,在顶部菜单栏选择地域。
在左侧导航栏,选择 AI网关 > 实例。
单击创建实例,在配置页面完成以下配置:
商品类型选择专享实例。
网关规格选择
aigw.medium.x1及以上规格。勾选分配Gzip硬件压缩资源。
说明Serverless 实例不支持硬件加速。
仅
aigw.medium.x1及以上规格实例支持开启硬件加速。
单击立即购买。
在网关参数中开启压缩
返回实例页面,单击目标实例 ID 进入详情页。
在左侧导航栏,选择参数配置。
在网关引擎参数配置区,单击EnableGzipHardwareAccelerate参数右侧编辑,开启参数值开关。
开启后,需要客户端能够处理Gzip压缩的数据,对于支持的客户端需要在请求头中添加Accept-Encoding:gzip。