于模型压缩范畴之内,同时运用量化以及剪枝这两种方式,通常会致使性能出现极为严重的下降情况,然而,OBR框架得以问世,巧妙无比地化解了这一关键难题,使得处于极端压缩状态下的大模型,依旧能够维持可被使用的性能 。

OBR框架的核心思想

OBR框架设计的初衷在于,应对模型压缩后精度的大幅下降问题,当模型部分权重被置零或者降低数值精度时,其原有的功能平衡被打破,进而导致输出结果产生难以接受的偏差,这个框架的智能之处在于,它并非简单粗暴来执行压缩,而是主动进行工作量的重新分配,它通过精确结算,把那些被“削减”掉的工作任务,合理转移给模型中剩余的健康部分,以此在整体上维持系统的功能完整性 。此番方法的关键所在是动态补偿,其设定的目标是保证模型最终输出的结果跟压缩之前能够尽可能维持一致,把性能方面的损失降到最小程度 。

参数群体的划分策略

研究团队在开展OBR实施工作之际,最先针对模型的参数展开了具备策略性的区分,他们依据参数对于压缩操作所呈现出的敏感度,进而把参数划分作两大类别,其中一类被称作“稳定群体”,这类参数所具有的特性相对而言较为稳固,哪怕历经量化或者剪枝处理,其数值出现的变化对于模型最终予以输出所产生的影响也是比较小的,另外一部分则是对于压缩操作敏感的参数,它们出现的变化会对模型行为造成明显的扰动,基于这样的划分情况,OBR框架能够有针对性地去处理不同的参数。它主要针对那些敏感参数被压缩后所产生的功能缺口展开计算,接着去寻觅最为合适的“替补”参数用以弥补这些缺口,并非是针对所有参数进行不加区分的调整。

基于相互关系的优化策略

OBR框架达成高效补偿的根基,在于对模型参数彼此关系的深度剖析。在大语言模型里,数以亿计的参数并非独自发挥作用,它们借由复杂的网络架构相互联系、共同运行。OBR凭借剖析这种内在联系,能够预估当某个参数被变更时,会对网络里其他哪些参数造成连带效应。基于这些剖析,框架能够算出最优的补偿数值。比如,当某一个神经元连接的权重被修剪为零之后,OBR会对这一变化针对该神经元后续连接的所有路径的影响进行评估,并且通过调整其他相关权重的数值,以此来抵消这一改变所带来的负面效应。

问题分解的简化方法

海量参数致使计算复杂度极高的情况下,研究团队用了个巧妙办法简化问题,他们假定大型权重矩阵里不同行相互影响微弱,近似可视为独立的,这样把原本要处理完整巨型矩阵计算量极大的全局优化问题,成功分解成千上万个小型、能独立处理的子问题,每个子问题只聚焦于矩阵中一行或一个局部区块的参数调整。有这样一种“分而治之”的策略,它让在有限计算资源的情况下去解决涵盖大规模模型的补偿问题变成了可能,并且极大程度地提升了OBR框架的实用性,以及其可扩展性。

高效计算与闭式解

OBR框架于计算效率方面所具备的优势,在很大程度上归因于其所采用的闭式解方法,与诸多依靠迭代、耗费时间漫长的优化算法不一样,闭式解提供了一条直接进行计算的路径,这表明,针对分解之后的每一个子问题,系统并非需要历经反复的试错以及收敛过程,而是能够借助一组明确的数学公式,直接推导出最优的补偿数值,这种计算方式不但速度非常快,而且结果确定,规避了迭代算法有可能陷入局部最优或者不收敛的风险。所以,OBR能够于模型压缩之后迅速达成补偿调整,几乎不会增添额外的部署时间方面的成本。

广泛的适用性与实际效果

该框架有个显著优点是其具备普适性,它不依赖任何特定的底层剪枝算法,也不依赖特定的量化技术,它能够作为一个通用插件,与当前主流的多数模型压缩方法相结合,研究团队在Llama - 2、GPT系列等多个主流大语言模型上做了验证,在极端测试条件下,比如对模型同时施加4比特量化以及50%的稀疏化,使用OBR补偿的模型在标准语言理解任务上的性能,远远超过未经补偿的直接压缩基线,困惑度指标相差数百倍,证明了其具有强大的保性能能力。这为在手机等资源有限环境里,以及在像边缘设备这类资源受限情形下,去部署高质量的大模型,提供了切实可行的技术方案 。

请问你有没有试过于本地的相关设备上去运行经压缩处理好的大语言模型,所碰到的最为严重的性能方面的瓶颈究竟是什么,欢迎在于评论区那儿分享你的相关经验以及看法,要是感觉这篇文章是有一定帮助作用的话,请给予点赞予以支持!