1、DataFunSummit#2024大模型推理框架升级之路 肖彬量化投机采样TTFT与TPOT的优化通信优化我们将从四个优化专项介绍如何优化大模型推理框架性能01量化量化作为大模型最重要的性能优化手段,能有效降低显存占用,降低访存量,充分利用计算资源以下是大模型计算流程:Weight-int8+KV_cache_int8最早上线的一个版本,显著降低显存占用,使得模型使用较少卡启动,增大服务承载能力,降低成本50%weight 跟 kv cache在推理框架占用显存为大头,优先优化能有效降低成本Activation int8A8是在w8/kv8基础上对gemm相关计算的输入激活进行量化,能有效降
2、低gemm运算耗时,首token耗时下降50%,成本下降15%Weight-int4+kv_cache-int4Int4 主要目标是将显存占用压至更低,能在低端卡型上部署并支持更长的序列,支持更大的batch,成本下降30%使用了类似quorat的技术,并结合marlin算子,针对性做了优化,已在多个业务落地,后续可能会有论文输出Communication int8通信量化,降低低端卡通信耗时开销,首token耗时下降30%后续会有论文产出Attention QKV int8将gemm计算全线转为int8计算Q(int8)*K(int8)-softmax-V(int8)目前处于开发中02投机采
3、样投机采样就是利用decode过程算力冗余使用额外的技术生成多个候选token同时输送给大模型并行验证,充分使用算力且不会增加额外太多的时延1(大模型输出的最后一个token)+4(候选token)-一次验证通过4个token需要考虑云端大batch下候选token数量限制Clover模型结构设计路线使用transformer block 前几层信息预测效果不好尝试获取全局的信息而不是仅仅当前预测token的信息通过h=concat(token_emb,h)效果提升有限尝试attention结构qk之争,h表示全局信息,不断吸收token_emb效果不错https:/arxiv.org/abs
4、/2405.00263尝试使用前置候选token信息辅助后续token预测单独建一层可学习的transformer block收集全局信息提升不错Sample 策略我们的目标是大batch场景下投机有效,要求的候选token仅仅为4,此时sample策略就影响很大了开源的都是固定组合的形式,如 head_0_top1+head_1_top1+head_2_top1,head_0_top2+head_1_top1+head_2_top1核心策略:1.单token级别(保证树深度)1.prob先进行top p丢弃2.按照top1/4 长尾小概率丢弃2.token tree级别(子节点排序依据)1.
5、从根节点的联合概率排序3.每层token预算数量(保证树最大宽度,防止计算量激增)1.去除所有父节点token数动态构建候选token树,较为激进的贪心搜索策略Clover收益命中率上提升50%+,端到端推理速度提升30%+Clover2模型结构升级1.loss 优化仅仅根据CrossEntropyLoss预测token偏序关系,训练多轮,过拟合会出现对一些高频token增强概率的情况增加数据蒸馏loss使得clover能更加关注与主模型的一致性上,而不是走捷径https:/arxiv.org/abs/2408.002642.主模型预测token信息前置,提前加入transformer blo
6、ck,帮助更远的预测Clover2模型结构升级3.Regressive attention block output projector结构提升后几个head预测能力4.增加Augmenting Block层数,增强全局信息提取能力Augmenting Block 位于第一个head之前只会跑一次,增加层数不会导致跑多次的问题,eagle增加层就会导致每个head都多跑,耗时会暴增这为clover提供更多可能,可以设计更加复杂的Augmenting Block,我们尝试最简单的加层获取收益Clover2收益clover为rnn为主的架构,但仍然能打败ea