十亿参数,一键瘦身!「模型减重」神器增强型 SmoothQuant,让大模型狂掉 3/4
新智元报道
新智元报道
作者:英特尔公司
【新智元导读】Sam Altman 曾表示,语言模型不是越大越好。不断炼大的模型,若想实现高效训练和部署还得需要「量化」。英特尔增强型 SmoothQuant 给出了解决方案。
本文介绍了可提升大语言模型的训练后量化表现的增强型 SmoothQuant 技术,说明了这项技术的用法,并证明了其在准确率方面的优势。此方法已整合至英特尔® Neural Compressor(1) 中。
英特尔® Neural Compressor 是一个包含量化、剪枝(稀疏性)、蒸馏(知识提炼)和神经架构搜索等多种常用模型压缩技术的开源 Python 库。
目前,诸如 TensorFlow、英特尔® Extension for TensorFlow(2)、PyTorch、英特尔® Extension for PyTorch(3)、ONNX Runtime 和 MXNet等主流框架,都能与之兼容。
英特尔® Neural Compressor 已经支持多款英特尔® 架构的硬件,比如英特尔® 至强® 可扩展处理器(4)、英特尔® 至强® CPU Max 系列(5) 、英特尔® 数据中心 GPU Flex 系列(6) 和英特尔® 数据中心 GPU Max 系列(7)。
本文涉及的实验基于第四代英特尔® 至强® 可扩展处理器(8) 进行。
大语言模型
大语言模型 (Large Language Model, LLM) 需基于海量数据集进行训练,可能拥有数十亿权重参数。
完成训练后的大语言模型,可针对各种下游的自然语言处理 (NLP) 和自然语言生成 (NLG) 任务进行调优,让其更适合对话式聊天机器人(如 ChatGPT)、机器翻译、文本分类、欺诈检测和情感分析等任务场景。
大语言模型部署面临的挑战
大语言模型在执行自然语言处理和自然语言生成任务方面表现出色,但其训练和部署颇为复杂,主要面临以下挑战:
AI 与内存墙(9) 瓶颈问题:算力每两年提高 3.1 倍,内存带宽却只提高 1.4 倍;
网络带宽挑战:训练大语言模型需要采用分布式系统,这对网络带宽提出了较高要求;
系统资源有限:训练后的模型往往会部署在算力和内存资源均有限的系统上。
因此,采用训练后量化的方法来为大语言模型瘦身,对于实现低时延推理至关重要。
大语言模型的量化
增强型 SmoothQuant
模型的激活异常值越大,就越需要使用更大的 α 值来将更多的量化难度转移到权重上。
原始的 SmoothQuant 旨在通过针对整个模型使用一个固定值 α 来分割权重和激活值的量化难度。
然而,由于激活异常值的分布不仅在不同模型之间存在差异,而且在同一模型的不同层之间也不尽相同,因此,本文推荐使用英特尔® Neural Compressor 的自动调优能力,逐层获取最佳 α 值。
相关方法包括以下五个主要步骤(伪代码如下所示):
通过特殊的回调函数 register_forward_hook 捕获 (hook) 模型各层的输入和输出值。
根据用户定义的 α 范围和步长生成一个 α 值列表。
根据给定的 α 值重新计算平滑因子并调整参数(权重值和激活值)。
对权重执行每通道量化与反量化 (quantization_dequantization),对输入值执行每张量 (per-tensor) 量化与反量化,以预测与给定 α 值对应的每层输出值。
计算相对实际输出值的均方损失,将调整后的参数恢复回来,并保存每层的最佳 α 值。
本文提出的方法支持用多个标准(如最小值、最大值和平均值)来确定 Transformer 块的输入层归一化 (LayerNorm) 操作的 α 值。
实验发现,将 α 范围设为 [0.3, 0.7],步长设为 0.05,对大多数模型来说都能达到很好的平衡。
这一方法有两个显著特点:一是全自动化,二是比原始方法支持的融合模式多。
下图提供了在 BLOOM-1b7 模型上执行 SmoothQuant α 值自动调优的样例代码:
启用增强型 SmoothQuant 的样例代码
用户只需传递一个模型名称 (model_name) 和一个数据加载器。
值得注意的是,模型分析主要依靠的是 Torch JIT。用户可以在加载 Hugging Face 模型(14) 时将 torchscript 设置为 True,或将 return_dict 设置为 False。更多信息请参阅英特尔® Neural Compressor 文档(10)。
结果
作者
英特尔公司人工智能资深架构师沈海豪、英特尔公司人工智能资深软件工程师程文华、英特尔公司人工智能软件工程师陆崟彤、何欣、郭恒、王畅、王梦妮,他们都在从事模型量化及压缩的研究与优化工作。
注释:
1. 英特尔® Neural Compressor
微信扫码关注该文公众号作者