七脉神剑的秘密

七脉神剑-日常学习笔记
日常学习的笔记稿与记录稿
  1. 首页
  2. 行业观点
  3. 正文

大模型推理效率和成本优化手段与GPU利用率优化手段

2025年9月7日 139点热度 0人点赞 0条评论
智能摘要
大模型推理效率与成本优化涉及多层面技术,包括模型量化、剪枝与知识蒸馏以减小模型体积;批处理、持续批处理、闪存注意力等推理技术提升吞吐与显存效率;张量/流水线并行支持大模型部署;结合TensorRT、vLLM等专用框架及算子融合、KV缓存等手段优化计算与内存使用。GPU利用率提升依赖SM利用率监控,通过混部调度、弹性资源管理与系统级协同优化实现高效推理。
— 此摘要由AI生成仅供参考。

大模型提高推理效率和成本优化

仅面向应用层:

优化大模型推理的效率和成本是一个系统工程,涉及模型、硬件、软件和策略等多个层面:

一、模型架构与权重层面优化(最根本的优化,也可能会影响效果)

这类优化旨在让模型本身变得“更轻、更快”。

  1. 模型量化

    • 做法:将模型权重和激活值从高精度(如FP32)转换为低精度(如FP16、BF16、INT8,甚至INT4)。

    • 效果:

      • 显存占用减半及以上:FP16比FP32小一半,INT8再小一半。

      • 计算速度提升:现代硬件(如GPU的Tensor Cores、CPU的AI指令集)对低精度计算有极致优化,速度可提升数倍。

    • 代价:可能会带来轻微的精度损失,但通过量化感知训练 可以在训练阶段模拟量化过程,大幅减少精度损失。

  2. 模型剪枝

    • 做法:移除模型中“不重要”的权重(如接近0的权重)或整个神经元/注意力头。

    • 效果:让模型变得稀疏,减少参数量和计算量。稀疏模型在专用硬件上可以跑得更快。

    • 代价:需要重新训练或微调以恢复精度。

  3. 知识蒸馏

    • 做法:用一个已经训练好的、庞大而精确的“教师模型”来教导一个小巧的“学生模型”,让学生模型模仿教师模型的行为。

    • 效果:得到一个体积小得多但性能接近大模型的小模型,推理速度自然大幅提升。

    • 例子:DistilBERT、TinyLlama等。


二、推理技术与调度层面优化

这类优化不改变模型本身,而是通过改进推理过程中的计算和资源调度方式来提升效率。

  1. 批处理

    • 做法:将多个用户的请求(输入序列)动态地组合成一个批次,一次性送给GPU计算。

    • 效果:充分利用GPU的并行计算能力,显著提高吞吐量(每秒处理的token数)。

    • 代价:会增加延迟(单个请求的响应时间),因为需要等待组批。适用于对吞吐量敏感、对延迟不极度敏感的场景(如后台任务)。

  2. 持续批处理/流式批处理

    • 做法:这是对普通批处理的革命性优化。在生成式任务中(每个序列的生成长度不同),当一个序列生成完成后,立即在该批次中插入一个新的请求,而不需要等待整个批次都完成。

    • 效果:极大地提升了GPU的利用率,尤其是在处理长文本生成时,可以同时优化吞吐量和延迟。vLLM 等框架的核心优势之一。

  3. 闪存注意力

    • 做法:一种高效计算Attention的算法。通过巧妙的分块计算,避免将巨大的注意力矩阵全部载入显存,从而减少显存占用和IO读写。

    • 效果:

      • 显著降低显存占用:允许以更小的显存运行更大的模型或更长的序列。

      • 提升计算速度:减少了GPU耗时高的显存访问操作。

    • 现状:已成为众多高性能推理框架(如vLLM, FlashAttention库)的标准配置。

例如:vLLM核心性能优化技术总结

核心技术 解决的痛点 核心机制 传统方法 性能提升效果
PagedAttention 内存碎片化、KV缓存浪费导致的有效批处理大小受限 借鉴虚拟内存和分页思想,将KV缓存划分为固定大小的块,非连续物理存储,但逻辑连续。 预先分配一块连续的物理内存给序列,序列结束后释放。产生大量内存碎片。 将内存浪费从~80%降至不到4%,吞吐量提升高达24倍。
连续批处理 推理停滞。传统动态批处理需等一个批次所有请求完成后才能处理下一批,GPU计算资源空闲。 当一个序列生成完毕,立即将新请求插入该批次的空闲槽位中,实现GPU持续计算,无需等待。 动态批处理:需等待批次内所有序列生成完成,高延迟请求会阻塞整个批次。 吞吐量提升数倍(如5-10倍),尤其在高并发和不同输出长度的场景下。
优化内核 计算效率未达硬件极限 深度优化自研的注意力计算等内核,与PagedAttention高度协同,减少计算开销。 使用PyTorch等框架的通用实现,未对LLM推理做特殊优化。 进一步提升了计算速度,是前述技术的基础保障。
  1. 张量并行/流水线并行

    • 做法:将一个大模型切分到多个GPU上。

      • 张量并行:将单个层的矩阵运算横切到多个GPU上(模型并行)。

      • 流水线并行:将模型的不同层放到不同的GPU上(层间并行)。

    • 效果:使得单个GPU无法容纳的大模型能够被推理。

    • 代价:GPU间通信会引入额外开销。通常用于非常大的模型(如175B+)。


三、硬件与部署层面优化

  1. 专用硬件选择

    • GPU:NVIDIA H100/A100(性能最强),L40S(优化推理和图形),消费级卡(如4090,成本效益高)。

    • 专用AI加速卡:AWS Inferentia (Graviton), Google TPU, 华为昇腾等。这些芯片为推理量身定制,往往有极佳的能效比(成本低)。

  2. 使用推理优化运行时和框架

    • 做法:不要直接使用PyTorch的原生推理,而是使用专门的优化框架。

    • 例子:

      • TensorRT (NVIDIA):将模型编译和优化成在该硬件上运行最高效的计划。

      • vLLM:专注于LLM,通过PagedAttention和连续批处理实现高吞吐量。

      • ONNX Runtime:支持多硬件平台(CPU/GPU),并能进行图优化、算子融合等。

      • GGML:专为CPU推理优化,支持量化,可以在Mac甚至手机上运行大模型。

  3. 算子融合

    • 做法:将多个细粒度的算子(如Linear + GeLU + LayerNorm)融合成一个粗粒度的“超级算子”。

    • 效果:减少了内核启动次数和显存读写次数,提升了执行效率。上述的TensorRT等框架会自动完成此事。


四、系统与架构层面优化

  1. 缓存

    • KV Cache缓存:对于生成任务,每次生成下一个token时,之前token的Key和Value向量可以被缓存起来,避免重复计算。这是所有推理引擎的基础。

    • 结果缓存:对于重复的或高度相似的请求,可以直接返回缓存的结果,适用于某些场景(如常见的问答)。

  2. 自适应模型加载

    • 做法:根据请求的难度,动态选择不同大小的模型。简单问题用小模型,复杂问题用大模型。

  3. 边缘计算/混合部署

    • 做法:将推理任务分散到离用户更近的边缘节点,或根据负载在云端和边缘之间动态调度。

    • 效果:降低网络延迟,并减轻中心云的成本压力。

 

GPU利用率优化手段(包含组织、应用、指标)

数据指标:SM利用率

  • 是什么:衡量流多处理器(Streaming Multiprocessors, SM)——GPU核心计算单元——在工作状态的时间百分比。在nvidia-smi中大致对应 Volatile GPU-Util。

  • 含义:高SM利用率(如>80%)通常表明计算核心很忙,是良好性能的表现。但低利用率不一定代表性能差,可能是因为任务受限于其他因素(如下述的“内存瓶颈”)

如何推动:

  • 推动不同的业务混部和资源流动;
  • 弹性资源,战略计算资源管理(中央和地方)
  • 多种经营模式,按需供给和包年包月;
  • 看的数据准、推动用起来、用的好(如上提供的优化利用率:模型结构、算子优化、训练调度、计算IO并行等)

 

 

 

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: GPU利用率 大模型优化 成本优化 推理框架
最后更新:2025年9月7日

七脉神剑

这个人很懒,什么都没留下

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2026 75live.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang