百川智能BAICHUANAI大模型推理框架升级之路肖彬DataFunSummit #2024DataFun.
百川智能BAICHUANAI我们将从四个优化专项介绍如何优化大模型推理框架性能量化投机采样TTFT与TPOT的优化通信优化DataFun.
百川智能BAICHUANAI01量化作为大模型最重要的性能优化手段,能有效降低显存占用,降低访存量,充分利用计算资源以下是大模型计算流程:量化sDataFun.
百川智能Weight-int8+KV cache int8BAICHUANAI最早上线的一个版本,显着降低显存占用,使得模型使用较少卡启动,增大服务承载能力,降低成本50%weight跟kvcache在推理框架占用显存为大头,优先优化能有效降低成本attentionsDataFun.
百川智能Activationint8BAICHUANAIA8是在w8/kv8基础上对gew相关计算的输入激活进行量化,能有效降低qeww运算耗时,首token耗时下降50%,成本下降15%mlpWwightap/gate小inKemel↓08*1p16=b1
百川智能Weight-int4 +kvcache-int4BAICHUANAIInt4主要目标是将显存占用压至更低,能在低端卡型上部署并支持更长的序列,支持更大的batch,成本下降30%使用了类似quorat的技术,并结合marlin算子,针对性做了优化,已在多个业务落地,后续可能会有论文输出CommunicationintA通信量化,降低低端卡通信耗时开销,首token耗时下降30%后续会有论文产出AttentionQKV int8将gemm计算全线转为int8计算R(int8)*K(int8)->softmax->V(int8)目前处于开发中DataFun.
百川智能BAICHUANAI02使用额外的技术生成多个候选token同时输送给大模型并行验证充分使用算力且不会增加额外太多的时延投机EfficientlyDraft.O采样(spuooes)aupung0.32Verify in ParallelAutoregressiveDecoding00EfficientlyDraft堂51210241920Numberofprompt tokens (p)1(大模型输出的最后一个token)+4(候选token)->一次验证通过4个token需要考虑云端大batch下候选token数量限制>DataFun.
百川智能Clover模型结构设计路线https//arxivorg/abs/2405.00263BAICHUANAI使用transformerblack前儿层信息预测单独建一层可学习的transformerblock收集全局信息效果不好尝试获取全局的信息而不是仅仅当前预测token的信息尝试使用前置候选token信息辅助后续token预测尝试attention结构通过hct+1>-concat(token_emb,hctr),h表示全局信息,不断吸收tokan_emb效果提升有限效果不错DataFun.
百川智能BAICHUANAISample策略我们的目标是大batcA场景下投机有效,要求的候选token仅仅为4,此时sample策略就影响很大了开源的都是固定组合的形式,如head,O.top1+head,.1.top1+head,2.top1,head,O.top2+head,1.top1+head.2,top1动态构建候选token树,较为激进的贪心搜索策略核心策略:1.单token级别(保证树深度)1.prob先进行topp丢弃2.按照top1/4长尾小概率丢弃2.tokentree级别(子节点排序依据)1.从根节点的联合概率排序3.每层token预算数量(保证树最大宽度,防止计算量激增1.去除所有父节点token数DataFun.
百川智能Clover收益BAICHUANAIClover(Baichuan)Medusa(Baichuan)BaichuanLarge2.0dagsJadsuayoqespgu0.50.0-sDataFun.
百川智能Clover2模型结构升级BAICHUANAIhttps//anxiv.ora/abs/2408.002641.loss优化6日仅仅根据CrossEntropyLoss预测token偏序关系,训练多轮,过拟合会出现对一些高频token增强概率的情况L二增加数据蒸馏loss使得clover能更加关注与主模型的一致性上,而不是走捷径ower-2.Ie theoptimalpractkes2.主模型预测token信息前置,提前加入transformerblock,帮助更远的预测DataFun.
百川智能Clover2模型结构升级BAICHUANAI3.Regressive attentionblockoutput projector结构提升后几个head预测能力regressivesttentionbleck4.增加AugmentinaBlock层数,增强全局信息提取能力AugmentingBlock位于第一个head之前只会跑一次,增加层数不会导致跑多次的问题,eaale增加层就会导致每个head都多跑,耗时会暴增这为clover提供更多可能,可以设计更加复杂的AugmentingBock,我们尝试最简单的加层获取收益DataFun.
百川智能Clover2收益BAICHUANAIclover为mn为主的架构,但仍然能打败eaqle这种以decodelauer为主的模型结构在各个数据集上都超过eagleclover2Clover-2V7BEAGLEClo...