微商网消息:
本文描述了一种增强技术,可以提高大型语言模型的训练后量化性能,说明其用途,并展示其准确性优势。 该方法已集成到英特尔® (1) 中。
英特尔® 是一个开源库,包含多种常见模型压缩技术,包括量化、剪枝(稀疏性)、蒸馏(知识蒸馏)和神经架构搜索。
目前Intel® for (2)、Intel® for (3)、ONNX、MXNet等主流框架均与其兼容。
英特尔® 已支持多种英特尔® 架构硬件,例如英特尔® 至强® 可扩展处理器(4)、英特尔® 至强® CPU Max 系列(5)、英特尔® 数据中心 GPU Flex 系列(6) 和英特尔® 数据中心 GPU Max 系列(7)。
本文介绍的实验是在第四代 Intel® Xeon® 可扩展处理器(8) 上进行的。
大语言模型
大型语言模型(Large Model,LLM)需要基于海量数据集进行训练,这些数据集可能有数十亿个权重参数。
其先进的网络结构和大量的参数使它们能够很好地应对自然语言本身的复杂性。
完成训练后,大语言模型可以针对各种下游自然语言处理(NLP)和自然语言生成(NLG)任务进行调优,使其更适合对话式聊天机器人(如)、机器翻译、文本分类、任务场景例如欺诈检测和情绪分析。
大型语言模型部署的挑战
大型语言模型在执行自然语言处理和自然语言生成任务方面表现良好,但其训练和部署相当复杂,主要面临以下挑战:
AI与内存墙(九)瓶颈问题:算力每两年增长3.1倍,但内存带宽仅增长1.4倍; 网络带宽挑战:训练大型语言模型需要分布式系统,这对网络带宽提出了更高的要求; 系统资源有限:训练好的模型通常部署在计算能力和内存资源有限的系统上。
因此,使用训练后量化方法来精简大型语言模型对于实现低延迟推理至关重要。
大语言模型的量化
量化是一种常见的压缩操作,可以减少模型占用的内存空间,提高推理性能。 采用量化方法可以降低部署大型语言模型的难度。 具体来说,量化是将浮点矩阵转换为整数矩阵:
其中,S和Z分别是输入矩阵、比例因子和整数零。
请参阅相关文档 (10),了解为什么每通道 (per-) 量化策略虽然可以减少量化损失,但不能用于激活量化。
然而,激活值量化误差的损失是导致模型量化精度下降的重要因素。 为此,人们提出了许多方法来减少激活值量化损失,例如:SPIQ(11)、(12)和(13)。
这三种方法的思路相似,即将激活值量化的难度转移到权重的量化上,但三者在转移的难度上有所不同。
增强型
引入超参数α作为平滑因子来计算每个通道的量化比例因子并平衡激活和权重的量化难度。
其中 j 是输入通道索引。
对于大多数模型如期权定价模型(OPT)和BLOOM来说,α=0.5是一个平衡值,可以很好地分割权重和激活值量化难度。
模型的激活异常值越大,需要使用越多的α值来将更多的量化难度转移到权重上。
最初的目的是通过对整个模型使用固定值α来分割权重和激活的量化难度。
然而,由于激活异常值的分布不仅在不同模型之间存在差异,而且同一模型的不同层之间也存在差异,因此本文建议使用英特尔® 的自动调优功能来逐层获得最佳的 α 值。
相关方法由以下五个主要步骤组成(伪代码如下所示):
模型每一层的输入和输出值都被一个特殊的回调函数k捕获(钩子)。 根据用户定义的 alpha 范围和步长生成 alpha 值列表。 根据给定的 alpha 值重新计算平滑因子并调整参数(权重和激活)。 对权重执行每通道量化和反量化(),对输入值执行每张量(per-)量化和反量化,以预测与给定 alpha 值对应的每层输出值。 计算相对于实际输出值的均方损失,将调整后的参数恢复回来,并保存每层的最佳alpha值。
本文提出的方法支持多种标准(例如最小值、最大值和平均值)来确定块的输入层 () 操作的 alpha 值。
实验发现,将alpha范围设置为[0.3,0.7],步长为0.05,对于大多数模型来说可以达到很好的平衡。
该方法有两个显着特点:一是完全自动化,二是比原来的方法支持更多的融合模式。
下图提供了在 BLOOM-1b7 模型上执行 alpha 值自动调整的示例代码:
启用增强示例代码
用户只需传递模型名称()和数据加载器。
值得注意的是,模型分析主要依赖于Torch JIT。 加载面部模型时,用户可以设置为 True 或 False (14)。 请参阅英特尔® 文档(10) 了解更多信息。
结果
本文提出的增强模型的主要优点是提高了准确性。
经过对多种主流大语言模型的评估,具有自动调优能力的INT8最后一个token的预测精度高于原有的INT8和FP32基线方法。 详细见下图:
FP32 基线方法、INT8(启用和不启用)和 INT8(启用本文提出的增强功能)的精度比较
从上图可以看出,在OPT-1.3b和BLOOM-1b7模型上,本文提出的增强模型的准确率分别比默认提高了5.4%和1.6%。
量化模型也缩小至 FP32 模型的四分之一,大幅减少内存占用,从而有效提升大型模型在英特尔® 平台上的推理性能。
请参阅存储库(10)以获取更全面的结果。 另外,欢迎您创建拉取请求或对问题 (15) 发表评论。 期待听到您的反馈和建议。
作者
英特尔公司高级人工智能架构师沉海浩,英特尔公司高级人工智能软件工程师程文华,英特尔公司人工智能软件工程师陆彦通、何欣、郭恒、王畅、王梦妮等均从事模型量化和压缩的研究和优化。
笔记:
1.英特尔®
2. 英特尔®
3. 英特尔®
4.英特尔®至强®可扩展处理器
5.英特尔®至强®CPU Max系列
6.英特尔®数据中心GPU Flex系列
7. 英特尔® 数据中心 GPU Max 系列
8. 第四代英特尔®至强®可扩展处理器
9.人工智能和记忆墙
10. 相关文档/英特尔®文档/存储库
11.SPIQ
12.
13.
14.人脸模型
15. 问题
免责声明 ① 本网所刊登文章均来自网络转载;文章观点不代表本网立场,其真实性由作者或稿源方负责 ② 如果您对稿件和图片等有版权及其他争议,请及时与我们联系,我们将核实情况后进行相关删除 ③ 联系邮箱:215858170@qq.com