小米大模型端侧部署落地探索 演讲人:黄武伟 小米/大模型算法工程师 CONT目E录NTS 01 端侧AI的重要性 02 LLM端侧部署的挑战 03 相关技术探索 04 总结与展望 端侧AI的重要性 在终端设备上直接运行和处理人工智能算法 隐私和安全:所有数据的存储和计算都在本地完成,避免了数据传输到云端可能带来的安全风险。 可靠性:端侧AI减少了对网络连接的依赖,即使在网络不稳定或断开的情况下也能正常工作,提高了系统的鲁棒性。 成本效益:端侧AI减少了对云端计算资源的需求,有助于降低成本,特别是在大规模部署时更为明显。 个性化服务:端侧AI可以根据用户的具体使用习惯和偏好提供更加个性化的服务,增强用户体验。 (软件×硬件)ᴬᴵ 轻量化、本地部署是小米大模型技术主力突破方向 小米的端侧设备数量大 LLM端侧部署的挑战 服务器GPU 手机 计算能力 数百TFLOPS的算力(如A100) 相对较低 内存 大容量显存 有限的内存和存储 (通常几个GB到十几GB) 功耗 设计用于高功耗环境,散热要求高 低功耗设计,优化能效 带宽 A100显存带宽接近1.6TB/s NPU约70G/s 云端VS端侧 存储差异 内存瓶颈 6B 6B模型 手机内存~16G 模型分片? 12GB 推理速度 平均阅读速度: 对于母语读者,平均阅读速度通常在300至500个字每分钟。(50+字/s) 快速阅读速度: 快速阅读者或经过训练的读者可以达到500至700字每分钟,甚至更高。(100+字 /s) 端侧推理速度不做优化20tokens/s以内 相关技术探索 推理时延=计算时间+数据搬运时间减少计算量 •剪枝 •量化 减小数据搬运 •剪枝 •量化 •投机推理 移除神经网络中不重要的权重,或者完全移除这些权重对应的神经元连接。 非结构化剪枝结构化剪枝半结构化剪枝 结构化剪枝 目前硬件支持最友好 Layer4 Layer3 Layer2 Layer1 Layer3 Layer2 Layer1 剪层剪Head剪维度 ShearedLLaMA 剪枝校准目标:加mask训练模型,优化一般的损失+mask稀疏度损失 Sheared-Llama会剪深度和hiddendim,我们认为: •损失较大 •KVcache压缩不足 剪枝+少量恢复训练超越相同大小的预训练模型 简单但很重要,这个结论让剪枝有了意义 [ICLR’24]ShearedLLaMA:AcceleratingLanguageModelPre-trainingviaStructuredPruning LLM剪枝 高效剪枝TransAct 我们的结构设计有以下特点:1)保留深度和hiddendim 2)减小MHA和MLP模块内的激活维度 3)参数量相近时,KVcache显著减小 [ACL’2024]PruningLargeLanguageModelstoIntra-moduleLow-rankArchitecturewithTransitionalActivations. 计算量端到端时延(w4a16) 剪枝效果结构搜索 什么是量化(quantization)? •在深度学习领域,量化是将浮点数值转化为定点数值的方法。 存储开销 优点带宽开销(显存->SRAM) 计算开销 GPUNPU 影响量化精度的几个因素 •量化位宽 •量化粒度 •量化范围 •离群值(Outlier) 量化 x xint=푐푙amp(s+z;0,2b−1) xmax−xmin s= z= 反量化 2b −xmin s x=(xint−z)·s 将fp16/fp32的数值转换为int4/int8的数值 量化中权重的Outlier对于精度影响较大 [0.1,0.2,3.6]->[0,0,4] 由于3.6的存在,导致量化误差较大! [0.1,0.2,0.6]->[0,0.2,0.6] 数值分布范围缩小,量化相对容易! 消除权重中的异常值! 量化方法选择上注意的问题 结合硬件特性 额外计算和存储开销 参数弥补 •逐行量化参数,适当调整未量化的权重来弥补造成已经量化参数的损失 Outlier裁剪 •对于每个通道的minmax进行放缩 •使用MSEloss获得最优的放缩系数 Outlier放缩转移 •将权重和激活中难量化的值进行等价转移操作 大模型推理的两个阶段预填充 KVcache自回归 自回归LLM的缺陷: 1)每次前向计算只生成一个词 2)LLM前向需要大量的数据访问和搬运 解码阶段算力充足,但带宽不足 解决方案:投机推理 •充分利用算力 •减少带宽压力 •一次前向生成多个tokens 投机推理的流程 •SpeculativeInference: 采用高效的的方式获取1个(或多个) 解码候选 •Verification: 采用原LLM对解码候选做并行验证,保留符合输出条件的部分 基于Prompt的投机词生成加速 生成投机词通过: Prompttokens Promptkvcache BiTA:Bi-DirectionalTuningforLosslessAccelerationinLargeLanguageModels Attentionmask •端侧Treeattention 采样词的logits取topK,形成树状结构进行验证 提高接受率 •采样和验证融合 加速比1.7~2.1 结构化剪枝 低比特量化 轻量化 X 推理优化 稀疏加载 推理加速 总结与展望 •平台 高通/天玑GPU 高通平台NPU天玑平台NPU •模型 1.3B~6.7B 更强 融合 个性化 THANKS 智能未来,探索AI无限可能 IntelligentFuture,ExploringtheBoundlessPossibilitiesofAI