LLM量化的终极手册:从入门到夺目

打印 上一主题 下一主题

主题 332|帖子 332|积分 996

     
       接待来到雲闪天下。大型号CPU 上的 LM?是的,你没听错。从处理对话到创建自己的图像,人工智能自诞生以来已经取得了长足的进步。但它也带来了瓶颈。随着模型的扩展,它们的计算需求也随之增长。人工智能开始严重依靠计算能力。为了满足这些需求,我们转向了 GPU,剩下的就成了历史。
   许多设备不具备强大的 GPU,因此无法发挥 AI 功能。为了在计算能力有限的设备(如手机或仅配备 CPU 的计算机)上运行 AI 模型,有必要缩小这些模型的大小和性能。早期的努力包括修剪和蒸馏等技术。然而,这些方法对于通常具有大规模架构的 LLM 来说并不可行。
   近来,LLM 的 AI 革命或多或少是基于云服务器举行练习、部署和推理的。然而,重要参与者现在正在将 LLM 功能扩展到边缘设备。微软的 copilot+PC 就是一个很好的例子,值得期待。随着我们走向边缘部署,在不影响性能或质量的情况下优化 LLM 大小变得至关告急。实现这种优化的一种有效方法是通过量化
   在本文中,我们将深入探究量化和一些最先进的量化方法。我们还将相识怎样使用它们。
   量化:是什么?为什么?

   根据精度要求和可用的计算资源,神经网络的权重可以用各种数据范例表现。量化是一种将高精度权重值(如 FP32)的范围(由数据范例的 [最小值,最大值] 决定)映射到较低精度值(如 FP16 或甚至 INT8(8 位整数)数据范例)的过程。
   

      考虑一下你的 400M 参数 LLM。通常,权重以 FP32(32 位)存储。此模型的内存占用可以计算如下:
       4x10⁸ 参数 x 4 字节= 1.6 GB
      量化上述模型可以显着减小尺寸。考虑从 FP32 到 INT8 的转换。量化模型的内存占用量可以计算如下:
       4x10⁸ 参数 x 1 字节 = 0.4 GB
      这是原始大小的1/4 !这有助于模型占用更少的内存,并提高推理速度,只管这大概会轻微影响准确性。别的,其中一些轻量级模型可以轻松由 CPU 处理。
   

            
          量化过程中权重的范围映射通常使用两种方法完成。
   线性/尺度量化

   这里的量化雷同于在指定范围内的缩放。Rmin被映射到QminRmax被映射到Qmax。现实范围内的0被映射到量化范围内的相应zero_point 。
   

      

      

   仿射量化

   此方法可以表现更多不对称范围。这里的参数是:
   

      对于 INT8 数据范例,公式如下
   

      应用此转换后,某些数据将超出范围。为了将它们纳入范围,必要使用额外的裁剪操作。
         

           在量化大型语言模型 (LLM) 时,重要有两种范例的量化技术:
    练习后量化(PTQ)

    顾名思义,LLM 在练习阶段后举行量化。权重从较高精度转换为较低精度的数据范例。它可以应用于权重和激活。虽然速度、内存和功耗都得到了高度优化,但仍存在准确性的衡量。
在量化过程中,会发生舍入或截断,从而引入量化误差。此误差会影响模型表现权重之间细粒度差别的能力。
    量化感知练习

    这项技术是为了减轻 PTQ 情况下模型精度的潜伏损失而开辟的。与 PTQ 相比,量化过程与练习本身融为一体,因此使该过程具有“量化感知”功能。
    在 QAT 中,模型架构最初经过修改,以同时保留元素的全精度和量化版本,其中包括权重和激活,从而创建双存储体系。在练习过程的前向传递过程中,将模仿或“假”量化引入模型,使其在计算梯度时体验量化效果,同时仍保留精度,从而增强模型对量化的鲁棒性。
   

                             
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

星球的眼睛

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表