跳到正文

模型优化方法有哪些?

从训练、推理到部署,系统性提升大模型性能

原题:在大模型应用中,常见的模型优化方法有哪些?请从训练、推理和部署角度阐述如何系统性地提升模型性能。

推理优化 · 百度真题

回答与解析

从训练、推理和部署三层建立性能账本

训练侧先 profile 参数、梯度、优化器状态、激活与通信。FSDP 会在数据并行进程间分片参数、梯度和优化器状态,用通信换每卡显存,并非只适合显存充足时使用。activation checkpointing 用反向重算换激活内存;BF16 具有与 FP32 相同数量级的指数范围,通常不需要 FP16 式 loss scaling,但仍要监控溢出和算子精度。

推理侧可使用权重量化、KV Cache、PagedAttention、FlashAttention、连续批处理、speculative decoding 和并行。GQA 与 MQA 通过减少 KV 头降低缓存和带宽,它们属于模型注意力结构。已有 MHA checkpoint 不能靠服务开关无损变成 GQA/MQA;结构转换需要权重映射、继续训练或微调,并重新验证质量。

部署侧关注模型格式、kernel 支持、冷启动、请求调度、自动扩缩、监控和回滚。优化必须固定模型、数据、硬件、精度、输入输出长度和并发,联合比较任务质量、TTFT、TPOT、吞吐、峰值显存与成本。

口语版讲法(30秒速答 + 90秒主答 + 完整展开)

  • 建立训练与推理资源账本
  • 说明 FSDP 分片对象和通信代价
  • 区分 BF16 与 FP16 的数值边界
  • 区分结构级 KV 优化与服务开关
  • 用端到端指标验收部署

【30秒速答】 系统优化应从资源账本开始。训练侧用 FSDP 分片参数、梯度和优化器状态,用 activation checkpointing 以重算换激活显存,并按硬件选择 BF16 或 FP16。BF16 通常不需要 FP16 式 loss scaling。推理侧再看量化、KV Cache、PagedAttention、连续批处理和投机解码。GQA、MQA 是模型结构,已有 MHA 权重不能靠开关直接无损切换。部署效果要在同模型、同硬件、同输入输出长度下同时看质量、TTFT、TPOT、吞吐和峰值显存。

【90秒主答】 训练优化先拆参数、梯度、优化器状态、激活、临时 workspace 与跨卡通信。若模型状态是主导项,FSDP 可以在数据并行 ranks 间分片参数、梯度和优化器状态,计算时按配置聚合需要的参数。它正是为了降低每卡常驻状态,但通信、峰值 all-gather、自动 wrap 粒度与 checkpoint 方式都需要实测。若长序列激活占用更大,activation checkpointing 只保存部分边界,反向时重算中间结果。混合精度方面,FP16 指数范围小,常配动态 loss scaling;BF16 的指数范围更接近 FP32,通常不需要同类缩放,不过归一化、归约和少数算子的累加精度仍要检查。

推理优化要看瓶颈在权重、KV、计算还是调度。权重量化减少显存和带宽,KV 分页减少碎片,FlashAttention 降低注意力中间内存,连续批处理提高设备利用率。投机解码用较小草稿模型提议,再由目标模型验证。每种技术都有 kernel、质量和负载条件,不能把实验室单请求结果直接推广到高并发服务。

【完整展开】 GQA 与 MQA 需要单独说明。MHA 为每个 Query 头保留对应的 K/V 头,GQA 让多组 Query 共享较少的 K/V 头,MQA 进一步共享为一个 K/V 头。这样能降低 KV Cache 与解码内存带宽,但头共享关系已经写入权重形状和训练过程。把任意 MHA checkpoint 的 K/V 权重简单平均,可能损失质量;可行的转换方案也需要继续训练并在长上下文、困惑度和任务集上回归。因此服务框架支持 GQA,不等于任何模型都能临时开启。

部署还包括模型加载、编译缓存、健康检查、队列、限流、自动扩缩和回滚。应固定 checkpoint、dtype、量化方式、batch、上下文与生成长度,记录冷启动、P50/P95 TTFT、TPOT、tokens/s、最大并发、峰值显存和目标任务质量。若吞吐提高却 P95 超过业务 SLO,或显存下降伴随长尾质量退化,就不能称为系统性提升。最终选择应来自 profile 与回归,而不是按卡数或模型名字套固定方案。

【验证补充】训练优化还要做恢复演练。分片 checkpoint 能否在目标并行拓扑恢复、数据游标是否重复、恢复后 loss 是否连续,都属于性能方案的一部分。只证明单步不 OOM,不代表长时间训练稳定。

关键一句:GQA 和 MQA 的收益来自模型结构,服务框架支持不等于已有权重可直接切换。

核验来源

  1. PyTorch FullyShardedDataParallel Documentation
  2. PyTorch Automatic Mixed Precision Documentation
  3. GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
  4. Efficient Memory Management for Large Language Model Serving with PagedAttention

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设现在要上线一个生成式助手,输入逐渐变长,训练显存、首 token 延迟和并发吞吐都出现瓶颈。你会先怎样测量,再从训练、推理、部署三层优化?

  2. 问法 2 · 层层追问

    训练显存不足先看哪些张量和并行策略?……推理时 prefill 与 decode 的瓶颈有什么不同?……KV Cache、量化和连续批处理各解决什么?……怎样验证优化没有越过质量门槛?

  3. 问法 3 · 直球技术

    请给出大模型训练、推理和部署的系统优化框架,覆盖并行、检查点、注意力/KV、量化、批处理、服务调度与质量回归,并说明各手段的适用条件。

同模块相关题目