0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在英特尔? 平台上实现高效的大语言模型训练后量化

英特尔中国 ? 来源:未知 ? 2023-07-14 20:10 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文介绍了可提升大语言模型的训练后量化表现的增强型 SmoothQuant 技术,说明了这项技术的用法,并证明了其在准确率方面的优势。此方法已整合至英特尔Neural Compressor1中。英特尔 Neural Compressor 是一个包含量化、剪枝(稀疏性)、蒸馏(知识提炼)和神经架构搜索等多种常用模型压缩技术的开源 Python 库。目前,诸如 TensorFlow英特尔Extension for TensorFlow2、PyTorch、英特尔Extension for PyTorch3、ONNX Runtime 和 MXNet等主流框架,都能与之兼容。

英特尔 Neural Compressor已经支持多款英特尔架构的硬件,比如英特尔至强可扩展处理器4英特尔至强CPU Max 系列5英特尔数据中心GPU Flex 系列6英特尔数据中心 GPU Max 系列7。本文涉及的实验基于第四代英特至强可扩展处理器8进行。

ccecbb12-223e-11ee-962d-dac502259ad0.gif ?大语言模型

大语言模型 (Large Language Model, LLM) 需基于海量数据集进行训练,可能拥有数十亿权重参数。其先进的网络结构和庞大的参数量,使它们能够很好地应对自然语言本身的复杂性。完成训练后的大语言模型,可针对各种下游的自然语言处理 (NLP) 和自然语言生成 (NLG) 任务进行调优,让其更适合对话式聊天机器人(如 ChatGPT)、机器翻译、文本分类、欺诈检测和情感分析等任务场景。

ccecbb12-223e-11ee-962d-dac502259ad0.gif ?大语言模型部署面临的挑战

大语言模型在执行自然语言处理和自然语言生成任务方面表现出色,但其训练和部署颇为复杂,主要面临以下挑战:

AI 与内存墙9瓶颈问题:算力每两年提高 3.1 倍,内存带宽却只提高 1.4 倍;

网络带宽挑战:训练大语言模型需要采用分布式系统,这对网络带宽提出了较高要求;

系统资源有限:训练后的模型往往会部署在算力和内存资源均有限的系统上。

因此,采用训练后量化的方法来为大语言模型瘦身,对于实现低时延推理至关重要。 ccecbb12-223e-11ee-962d-dac502259ad0.gif ?大语言模型的量化

量化是一种常见的压缩操作,可以减少模型占用的内存空间,提高推理性能。采用量化方法可以降低大语言模型部署的难度。具体来说,量化是将浮点矩阵转换为整数矩阵:

cd413ca0-223e-11ee-962d-dac502259ad0.png

其中 X_fp32、S 和 Z 分别为输入矩阵、比例因子和整数零点。有关每通道 (per-channel) 量化策略虽然可能会减少量化损失,但不能用于激活值量化的原因,请参看 SmoothQuant 相关文档10。不过,激活值量化误差损失却是导致模型量化准确率下降的重要因素。为此,人们提出了很多方法来降低激活值量化损失,例如:SPIQ11OutlierSuppression12SmoothQuant13。这三种方法思路相似,即把激活值量化的难度转移到权重量化上,只是三者在转移难度的多少上有所不同。ccecbb12-223e-11ee-962d-dac502259ad0.gif ?增强型 SmoothQuant SmoothQuant 引入了一个超参数 α 作为平滑因子来计算每个通道的量化比例因子,并平衡激活值和权重的量化难度。

cd6edc14-223e-11ee-962d-dac502259ad0.png

其中 j 是输入通道索引

cd856470-223e-11ee-962d-dac502259ad0.png

对于OPT 和 BLOOM 等大多数模型来说,α=0.5 是一个能够较好实现权重和激活值量化难度分割的平衡值。模型的激活异常值越大,就越需要使用更大的 α 值来将更多的量化难度转移到权重上。原始的 SmoothQuant 旨在通过针对整个模型使用一个固定值 α 来分割权重和激活值的量化难度。然而,由于激活异常值的分布不仅在不同模型之间存在差异,而且在同一模型的不同层之间也不尽相同,因此,本文推荐使用英特尔 Neural Compressor 的自动调优能力,逐层获取最佳 α 值。

相关方法包括以下五个主要步骤(伪代码如下所示):

  1. 通过特殊的回调函数 register_forward_hook 捕获 (hook) 模型各层的输入和输出值。

  2. 根据用户定义的 α 范围和步长生成一个 α 值列表。

  3. 根据给定的 α 值重新计算平滑因子并调整参数(权重值和激活值)。

  4. 对权重执行每通道量化与反量化 (quantization_dequantization),对输入值执行每张量 (per-tensor) 量化与反量化,以预测与给定 α 值对应的每层输出值。

  5. 计算相对实际输出值的均方损失,将调整后的参数恢复回来,并保存每层的最佳 α 值。

cdad2884-223e-11ee-962d-dac502259ad0.png

本文提出的方法支持用多个标准(如最小值、最大值和平均值)来确定 Transformer 块的输入层归一化 (LayerNorm) 操作的 α 值。实验发现,将 α 范围设为 [0.3, 0.7],步长设为 0.05,对大多数模型来说都能达到很好的平衡。 这一方法有两个显著特点:一是全自动化,二是比原始方法支持的融合模式多。 下图提供了在 BLOOM-1b7 模型上执行 SmoothQuant α 值自动调优的样例代码: cdd25b40-223e-11ee-962d-dac502259ad0.png

启用增强型 SmoothQuant 的样例代码

用户只需传递一个模型名称 (model_name) 和一个数据加载器。值得注意的是,模型分析主要依靠的是 Torch JIT。用户可以在加载Hugging Face 模型14时将 torchscript 设置为 True,或将 return_dict 设置为 False。更多信息请参阅英特尔Neural Compressor 文档10ccecbb12-223e-11ee-962d-dac502259ad0.gif ?

结果

本文提出的增强型 SmoothQuant 的主要优势在于提高了准确率。 经过对多种主流大语言模型的评估,具备自动调优能力的 INT8 SmoothQuant 最后一个词元 (last-token) 的预测准确率要高于原始 INT8 SmoothQuant 和 FP32 基线方法。详见下图: ce15bc50-223e-11ee-962d-dac502259ad0.png

FP32 基线方法、INT8(启用和不启用 SmoothQuant)以及 INT8(启用本文提出的增强型 SmoothQuant)的准确率对比

从上图可以看出,在 OPT-1.3b 和 BLOOM-1b7 模型上,本文提出的增强型 SmoothQuant 的准确率比默认的 SmoothQuant 分别高 5.4% 和 1.6%。量化后的模型也缩小到 FP32 模型的四分之一,大大减少了内存占用空间,从而有效地提升大模型在英特尔平台上的推理性能。 更全面的结果请见 GitHub 存储库10。同时,也欢迎您创建拉取请求或就 GitHub 问题15发表评论。期待听到您的反馈意见和建议。 作者

他们都在从事模型量化
及压缩的研究与优化工作

沈海豪英特尔公司人工智能资深架构师 程文华英特尔公司人工智能资深软件工程师 陆崟彤、何欣、郭恒、王畅、王梦妮英特尔公司人工智能软件工程师

注释:

本文主要介绍在英特尔平台上提升大语言模型的训练后量化表现的增强型SmoothQuant技术,说明了这项技术的用法,并证明了其在准确率方面的优势。本文中列出的链接和资源。需要说明的是,将SmoothQuant适配到英特尔平台并实现它在英特尔平台上的增强,是英特尔的原创。

1.英特尔Neural Compressor

https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/neural-compressor.html2.英特尔Extension for TensorFlowhttps://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/optimization-for-tensorflow.html3.英特尔Extension for PyTorchhttps://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/optimization-for-pytorch.html4.英特尔至强可扩展处理器https://www.intel.cn/content/www/cn/zh/products/details/processors/xeon/scalable.html5.英特尔至强CPU Max 系列https://www.intel.cn/content/www/cn/zh/products/details/processors/xeon/max-series.html6.英特尔数据中心 GPU Flex 系列https://www.intel.cn/content/www/cn/zh/products/details/discrete-gpus/data-center-gpu/flex-series.html7.英特尔数据中心 GPU Max 系列https://www.intel.com/content/www/us/en/products/details/discrete-gpus/data-center-gpu/max-series.html8. 第四代英特尔至强可扩展处理器https://www.intel.cn/content/www/cn/zh/events/accelerate-with-xeon.html9. AI 与内存墙https://medium.com/riselab/ai-and-memory-wall-2cb4265cb0b810. SmoothQuant 相关文档 /英特尔Neural Compressor 文档 / GitHub 存储库https://github.com/intel/neural-compressor/blob/master/docs/source/smooth_quant.md11. SPIQhttps://arxiv.org/abs/2203.1464212. Outlier Suppressionhttps://arxiv.org/abs/2209.1332513. SmoothQuanthttps://arxiv.org/abs/2211.1043814. Hugging Face 模型https://huggingface.co/models15. GitHub 问题https://github.com/intel/neural-compressor/issues

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    61

    文章

    10213

    浏览量

    175489
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11116

    浏览量

    218314

原文标题:如何在英特尔? 平台上实现高效的大语言模型训练后量化

文章出处:【微信号:英特尔中国,微信公众号:英特尔中国】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    硬件与应用同频共振,英特尔Day 0适配腾讯开源混元大模型

    今日,腾讯正式发布新一代混元开源大语言模型英特尔凭借在人工智能领域的全栈技术布局,现已在英特尔? 酷睿? Ultra 平台上完成针对该
    的头像 发表于 08-07 14:42 ?486次阅读
    硬件与应用同频共振,<b class='flag-5'>英特尔</b>Day 0适配腾讯开源混元大<b class='flag-5'>模型</b>

    2.0.0版本的ST Edge AI Core在linux平台上可以把量化的onnx模型转换为.nb,但是运行报错,缺少文件,为什么?

    2.0.0版本的ST Edge AI Core工具在linux平台上应该是可以把量化的onnx模型转换为.nb,但是运行报错,缺少文件。
    发表于 06-17 06:29

    高效更安全的商务会议:英特尔联合海信推出会议领域新型垂域模型方案

    2025年4月16日,北京 ——在今日召开的专业视听行业的年度盛会InfoComm China 2025上,英特尔携手海信联合发布海信自研端侧会议领域垂域模型解决方案,助力商务会议更加安全、高效
    的头像 发表于 04-21 09:50 ?259次阅读
    更<b class='flag-5'>高效</b>更安全的商务会议:<b class='flag-5'>英特尔</b>联合海信推出会议领域新型垂域<b class='flag-5'>模型</b>方案

    用PaddleNLP为GPT-2模型制作FineWeb二进制预训练数据集

    作者:算力魔方创始人/英特尔创新大使刘力 《用PaddleNLP在4060单卡上实践大模型训练技术》发布收到读者热烈反响,很多读者要求进一步讲解更多的技术细节。本文主要针对大
    的头像 发表于 03-21 18:24 ?2336次阅读
    用PaddleNLP为GPT-2<b class='flag-5'>模型</b>制作FineWeb二进制预<b class='flag-5'>训练</b>数据集

    是否可以输入随机数据集来生成INT8训练量化模型

    无法确定是否可以输入随机数据集来生成 INT8 训练量化模型
    发表于 03-06 06:45

    请问OpenVINO?工具套件英特尔?Distribution是否与Windows? 10物联网企业版兼容?

    无法在基于 Windows? 10 物联网企业版的目标系统上使用 英特尔? Distribution OpenVINO? 2021* 版本推断模型
    发表于 03-05 08:32

    英特尔?NCS2运行演示时“无法在启动找到启动设备”怎么解决?

    使用 英特尔? NCS2 运行 推断管道演示脚本 。 在首次尝试中成功运行演示应用程序。 从第二次尝试开始遇到错误:E: [ncAPI] [ 150951] [security_barrie
    发表于 03-05 06:48

    何在英特尔平台上高效部署DeepSeek模型

    随着人工智能技术的迅猛发展,大规模语言模型(LLMs)在自然语言处理、内容生成和智能对话等领域的应用日益广泛。国产 AI 大模型 DeepSeek 凭借其强大的生成能力和广泛的应用场景
    的头像 发表于 02-21 10:16 ?1689次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>英特尔</b><b class='flag-5'>平台上高效</b>部署DeepSeek<b class='flag-5'>模型</b>

    英特尔赋能DeepSeek本地运行,助力汽车升级“最强大脑”

    英特尔近期宣布支持DeepSeek在本地实现高效运行。据悉,借助英特尔的软件定义汽车车载平台,DeepSeek-R1系列
    的头像 发表于 02-17 09:37 ?749次阅读

    英特尔酷睿Ultra处理器支持DeepSeek运行

    Janus-Pro更是将其多模态的本领发挥至极。DeepSeek模型因其高效、易部署等特性,非常适合在英特尔AI PC进行本地化应用。
    的头像 发表于 02-08 10:13 ?975次阅读

    英特尔与扣子云平台合作推出AI PC Bot专区与端侧插件商店

    近日,在2024年火山引擎FORCE原动力大会的开发者论坛硬件终端专场上,英特尔携手扣子云平台共同推出了行业首个端云协同智能体开发平台——Coze-AIPC。这一合作标志着智能体技术应用发展的新突破
    的头像 发表于 12-27 14:11 ?1143次阅读

    使用英特尔AI PC为YOLO模型训练加速

    之后,情况有了新的变化,PyTorch2.5正式开始支持英特尔显卡,也就是说,此后我们能够借助英特尔 锐炫 显卡来进行模型训练了。
    的头像 发表于 12-09 16:14 ?1736次阅读
    使用<b class='flag-5'>英特尔</b>AI PC为YOLO<b class='flag-5'>模型</b><b class='flag-5'>训练</b>加速

    英特尔助力百度智能云千帆大模型平台加速LLM推理

    “大模型在各行业的广泛应用驱动了新一轮产业革命,也凸显了在AI算力方面的瓶颈。通过携手英特尔释放英特尔 至强 可扩展处理器的算力潜力,我们为用户提供了高性能、灵活、经济的算力基础设施方案,结合千帆
    的头像 发表于 11-25 16:59 ?1042次阅读
    <b class='flag-5'>英特尔</b>助力百度智能云千帆大<b class='flag-5'>模型</b><b class='flag-5'>平台</b>加速LLM推理

    使用PyTorch在英特尔独立显卡上训练模型

    《PyTorch 2.5重磅更新:性能优化+新特性》中的一个新特性就是:正式支持在英特尔独立显卡上训练模型
    的头像 发表于 11-01 14:21 ?2198次阅读
    使用PyTorch在<b class='flag-5'>英特尔</b>独立显卡上<b class='flag-5'>训练</b><b class='flag-5'>模型</b>

    IBM Cloud将部署英特尔Gaudi 3 AI芯片

    近日,科技巨头IBM与英特尔宣布了一项重大合作计划,双方将共同在IBM Cloud平台上部署英特尔最新的Gaudi 3 AI芯片,预计该服务将于2025年初正式上线。此次合作标志着两家公司在推动AI技术创新与应用方面迈出了坚实的
    的头像 发表于 09-03 15:52 ?724次阅读