您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[天津大学]:2024年大模型轻量化技术研究报告 - 发现报告

2024年大模型轻量化技术研究报告

信息技术2024-08-24张 鹏天津大学Z***
AI智能总结
查看更多
2024年大模型轻量化技术研究报告

张鹏2024.8.24 01大语言模型轻量化的技术需求 02大语言模型轻量化的技术概览 03大语言模型轻量化技术的详细讲解 04大语言模型轻量化技术的未来展望 语言模型背景 l语言模型是自然语言处理任务中的核心技术,大语言模型的发展取得突破性进展 l自然语言处理是国家重大战略需求 国务院新一代人工智能发展规划 自然语言处理技术 自然语言 语言模型的发展历史和关键难题 总体思路:用轻量化的方式解决大模型实际应用部署过程中遇到的问题 大模型轻量化目标 大模型轻量化的细粒度解析 Ø多头注意力计算造成大量的计算成本,影响计算速度,参数量占比较大。此外,KV Cache部分使用空间换取时间,造成缓存压力。 ØQKV作为中间表示存于内存中,也会对存储造成压力 ØEmbedding层,语义表示的初始化,影响效果,占据一定的参数量 大模型轻量化技术的意义 大模型轻量化技术为模型在实际应用和发展中带来更多便利和机遇 01大语言模型轻量化的技术需求 02大语言模型轻量化的技术概览 03大语言模型轻量化技术的详细讲解 04大语言模型轻量化技术的未来展望 轻量化技术总览 减少模型计算复杂度和内存占用,同时尽可能保持性能和泛化能力 轻量化相关理论 u轻量化的优化目标 Ø降低参数数量 更多的参数数量通常意味着模型更复杂通过提高参数压缩比,可以降低存储和计算需求 Ø减少占用存储空间大小 模型参数越多,模型文件需要的存储空间越大压缩存储空间可以降低部署成本,提高模型在存储设备上的传输效率 Ø降低浮点运算数(FLOPs) 模型参数越多,通常意味着在一次前向传播中所需的浮点运算数量越多降低FLOPs可以为模型带来更快的推理速度 轻量化相关理论 u轻量化模型减轻硬件压力 Ø显存(GPU Memory) 用于存储训练、推理中的模型参数、梯度和激活值减少显存占用可降低对显卡设备的要求,增加训练批次大小,减少训练时间。 Ø带宽(Bandwidth) 代表数据在处理器和内存之间的传输速度 降低带宽占用可以减少因数据传输带来的延迟,提高计算速度。 Ø内存(RAM) 用于存储训练数据、模型参数和中间计算结果降低内存空间需求可以减少磁盘交换操作,提升训练效率。 轻量化相关理论 u轻量化模型评估指标 参数压缩比(Compression Rate):轻量化后模型的参数占原始参数的比例 Ø内存占用(Memory Footprint)模型在运行过程中占用的内存大小。较小的内存占用有助于在内存受限的设备上高效运行模型。 Ø吞吐量(Throughput)单位时间内模型输出token的数量高吞吐量表示模型能够更高效地处理大批量数据,适用于需要高处理能力的应用。每个虚拟 轻量化相关理论 u轻量化模型评估指标 Ø推理速度(Inference Speed) 模型每次推理所需的时间,通常以毫秒(ms)为单位。高推理速度对于实时应用和用户体验非常重要。 Ø延迟(Latency) 模型从接收到输入到输出结果所需的时间。 低延迟对于实时应用(如语音识别、自动驾驶)尤为重要。在LLM推理中,计算公式如下: 𝑇=𝑇()+𝑇*++,-+()-+𝑇..- 轻量化相关理论 u轻量化模型评估指标 Ø推理效果(performance) 压缩后模型在各类任务上的表现,如精准度(ACC),困惑度(PPL),BLEU值等。 维持压缩后模型的推理效果是轻量化的重要的目标之一。 01大语言模型轻量化的技术需求 02大语言模型轻量化的技术概览 03大语言模型轻量化技术的详细讲解 04大语言模型轻量化技术的未来展望 轻量化技术总览 减少模型计算复杂度和内存占用,同时尽可能保持性能和泛化能力 量化技术 u量化基本理论 大模型量化是一种将深度学习模型的参数从高精度(16位浮点数,FP16)转换为低精度(如8位整数,INT8)的方法。 Ø量化过程: 以INT8对称量化为例,在存储权重参数时,将16位浮点数组成的矩阵𝑊!"#$经量化存储为8位整数矩阵为𝑊%&'(:16WFP 其中,𝑟𝑜𝑢𝑛𝑑()为近似取整函数,scale为缩放因子:|}{|maxw 𝑊%&'(内所有值均为[−127,127]内的整数。 量化技术 u量化基本理论 大模型量化是一种将深度学习模型的参数从高精度(16位浮点数,FP16)转换为低精度(如8位整数,INT8)的方法。 Ø解量化过程 在推理时,为了恢复近似的原始浮点数值,需要进行解量化,即将量化后的整数矩阵𝑊/012映射回浮点数矩阵2𝑊3456: 解量化后的矩阵2𝑊3456相对于原矩阵𝑊3456有一定的误差,使用的比特数(bits)越多,误差越小。 量化技术 u低比特量化的难点 当大模型参数量大于6.7B时,经激活层生成的矩阵𝑋存在占总参数量0.1%的异常值(outlier),这些异常值导致量化时矩阵一部分正常值被量化为零(如中间示例图标红部分),严重影响量化大模型的性能。 DettmersT,LewisM,BelkadaY,etal.LLM.int8():8-bitMatrixMultiplicationforTransformersatScale[C].NeurIPS2022 量化技术 uLLM.int8()解决方案 LLM.int8()采用混合精度量化的方法,保持𝑋矩阵内的异常值为16位浮点数(FP16)且不参与量化,𝑋其余的参数正常量化,取得了很好的效果。 问题:混合精度在实际应用中难以部署 量化技术 uSmoothQuant:缓解异常值的影响 SmoothQuant方法利用𝑊矩阵的参数分布均匀,无异常值的特点,从数学等价的角度出发,令𝑊矩阵“代偿”一部分异常值的影响,实现了𝑊和𝑋的高精度INT8量化: 普通量化方法为直接对𝑊和𝑋分别做量化,由于异常值的存在,𝑋难以被高精度量化: XiaoG,LinJ,SeznecM,etal.Smoothquant:Accurateandefficientpost-trainingquantizationforlargelanguagemodels[C].ICML2023 量化技术 •业界常用的量化工具 通用 名称/特点or优势Ø训练后量化●SmoothQuant●AWQ●OmniQuant●Squeeze LLM … Ø量化感知训练●LLM-QAT●QLoRA●TensorRT-LLM… 端侧 ●TinyChat●GPTQ●llama.cpp… LinJ,TangJ,TangH,etal.AWQ:Activation-wareweightquantizationforon-devicellmcompressionandacceleration[C].MLSys2024FrantarE,AshkboosS,HoeflerT,etal.GPTQ:Accuratepost-trainingquantizationforgenerativepre-trainedtransformers[C].ICLR2023ShaoW,ChenM,ZhangZ,etal.Omniquant:Omnidirectionallycalibratedquantizationforlargelanguagemodels[C].ICLR2024KimS,HooperC,GholamiA,etal.SqueezerLLM:Dense-and-SparseQuantization[C].ICML2024 稀疏化技术 u参数稀疏化 背景 随着模型参数量的增大,训练一个巨大的生成式模型,需要很大的GPU内存,并且产生巨大的计算量。大模型稀疏化通过减少参数的密集度来加快计算速度和减少存储成本。 稀疏化的基本思想 直接 移除 权重 矩阵 中最 不重 要 的权重 值,使 得 它们变为零 (1)非结构化稀疏寻找一种方法来确定模型中哪些参数对模型的输出贡献较小 或不重要,然后将这些参数设置为零或进行其他形式的删减。这样可以在保持模型性能的前提下,大幅减少模型的参数数量。 (2)结构化稀疏基于结构式的稀疏策略对参数进行剪枝或置零,以充分利用 移除 整个 行、列、卷 积 核 或 者 神 经元等结构单元 参数的稀疏性来加速计算过程。例如,在矩阵乘法等运算中,跳过零值参数的计算,从而提高计算效率。 稀疏化技术 u示例 Ø稀疏注意力机制: Ø稀疏激活: 稀疏注意力机制通过限制注意力计算的范围,减少了不必要的计算。例如,使用局部注意力或分块稀疏注意力来降低计算量。 可以在激活函数层面上引入稀疏性,例如使用ReLU激活函数自然产生的零值。 稀疏化技术 u非结构化稀疏 非结构化稀疏产生的问题 为什么使用非结构化稀疏? 由于GPU中的张量核专门设计用于加速稠密矩阵乘法计算的专用单元,对非结构化稀疏矩阵乘法计算的效率较低,因此会造成模型推理速度的大幅下降。 结构化稀疏由于限制了剪枝元素的选择自由,会导致模型准确率的大幅下降,而采用非结构化稀疏则可以较好的保留模型的准确率。 问题:如何在使用非结构化稀疏的同时,保持较高的模型推理速度呢? XiaH,ZhengZ,LiY,etal.Flash-llm:Enablingcost-effectiveandhighly-efficientlargegenerativemodelinferencewithunstructuredsparsity.VLDB2023. 稀疏化技术 u非结构化稀疏 针对非结构化稀疏矩阵乘法较慢的问题,Flash-LLM提出将稀疏矩阵转化为密集矩阵,每次进行计算前都将稀疏矩阵转化为这种稠密格式 Tiled-CSL密集存储格式 用数组TileOffsets存储每个Tile的非零元素的数量 将稀疏矩阵分成多个大小固定的Tiles 用数组NonZeros依次存储每个Tile的非零元素 NonZeros中的每个N都存储着非零元素值与其位置 XiaH,ZhengZ,LiY,etal.Flash-llm:Enablingcost-effectiveandhighly-efficientlargegenerativemodelinferencewithunstructuredsparsity.VLDB2023. 稀疏化技术 u非结构化稀疏 问题:张量核进行计算前,需要进行矩阵数据加载,而加载时张量核空闲,造成了核使用率低 解决方案:Flash-LLM提出了一种双缓冲计算重叠的计算流水线。 计算重叠:可以看出每次迭代时,都会在一个缓冲区加载数据,另一个缓冲区计算矩阵乘法。 优势:采用这种新的流水线进行计算能够减少GPU的空闲时间。有效提升了模型推理的效率。 XiaH,ZhengZ,LiY,etal.Flash-llm:Enablingcost-effectiveandhighly-efficientlargegenerativemodelinferencewithunstructuredsparsity.VLDB2023. 稀疏化技术 上述结果表明,Flash-LLM在非结构化稀疏矩阵乘法的性能方面具有显著优势,能够更好地支持大规模生成模型的推理。 XiaH,ZhengZ,LiY,etal.Flash-llm:Enablingcost-effectiveandhighly-efficientlargegenerativemodelinferencewithunstructuredsparsity.VLDB2023. 知识蒸馏 u知识蒸馏基础理论 性能较好、复杂度较高的模型 较小的、轻量化的模型 知识蒸馏(KnowledgeDistillation)旨在将知识从大型复杂模型(教师模型)转移到更小更简单的模型(学生模型),使得学生模型能够