窄多之Blog

窄多之Blog

LLM学习:量化

- by Admin - 标签: LLM

人类平均阅读速度为每分钟约 250 个单词(转换为每分钟约 312 个令牌),即每秒约 5 个令牌,因此每个令牌的延迟为 200 毫秒。通常,近实时 LLM 应用程序可接受的延迟在每个令牌 100 毫秒到 200 毫秒之间。量化是通过降低模型参数和/或激活的精度来压缩神经网络模型(包括 Transformer)的技术。这种方法可以显着减少内存的使用。它利用低位精度算术并减少尺寸、延迟和能耗。类似于深度学习中的过程,降低模型参数的精度以使模型更高效,尽管会牺牲一些精度。

根据人工智能模型的参数数量来估计其所需的内存。例如,考虑 Llama2 70B 模型,其参数使用 Float16 精度。每个参数需要两个字节。要计算所需的内存(以千兆字节 (GB) 为单位),其中 1GB = $1024^3$ 字节,计算如下:$(70,000,000,000*2)/1024^3=130.385GB$

量化

  • 标量量化,理想情况下应考虑每个维度的数据分布,以避免信息丢失。乘积量化可以通过将每个向量划分为子向量并独立地量化每个子向量来保留更多信息。
  • 乘积量化的权衡基于质心的数量和我们使用的子向量的数量。我们使用的质心越多,精度就越高,但内存占用不会减少,反之亦然。
  • 由于参数空间较大,优化大型模型的量化过程也更加困难。对于较大的模型来说,找到在减小模型大小的同时最大限度地减少精度损失的最佳量化策略是一项更加复杂的任务。

稀疏是通过消除冗余或不太重要的权重和激活来降低 LLM 计算成本的技术。该方法可以显着降低片外内存消耗、相应的内存流量、能耗和延迟。通过深度卷积神经网络、对 Transformer 模型的快速训练后剪枝等方法修剪后的模型更小,推理过程中需要的计算资源更少,执行速度更快、能源效率更高。知识蒸馏则将见解从较大的模型转移到较小的模型。

OPT 量化脚本将自动加载模型并处理量化过程,只需执行单个命令即可。也可以使用量化库指定精确的量化目标,有助于加载大型语言模型(转换器),定义评估指标来衡量我们与目标的接近程度(评估),以及导入用于评估过程的数据集(数据集)。