1 低比特量化技术如何帮助LLM提升性能-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

低比特量化技术如何帮助LLM提升性能

英特尔物联网 来源:OpenVINO 中文社区 2023-12-08 15:26 次阅读

作者:杨亦诚

针对大语言模型 (LLM) 在部署过程中的性能需求,低比特量化技术一直是优化效果最佳的方案之一,本文将探讨低比特量化技术如何帮助 LLM 提升性能,以及新版 OpenVINO对于低比特量化技术的支持。

大模型性能瓶颈

相比计算量的增加,大模型推理速度更容易受到内存带宽的影响(memory bound),也就是内存读写效率问题,这是因为大模型由于参数量巨大、访存量远超内存带宽容量,意味着模型的权重的读写速度跟不上硬件对于算子的计算强度,导致算力资源无法得到充分发挥,进而影响性能。

f7a0f750-957b-11ee-8b88-92fbcf53809c.png

图:memory bound与compute bound比较

低比特量化技术

低比特量化技术是指将模型参数从 fp32/fp16 压缩到更低的比特位宽表达,在不影响模型输出准确性和参数量的情况下,降低模型体积,从而减少缓存对于数据读写的压力,提升推理性能。由于大模型中单个 layer 上的权重体积往往要远大于该 layer 的输入数据(activation),因此针对大模型的量化技术往往只会针对关键的权重参数进行量化(WeightOnly),而不对输入数据进行量化,在到达理想的压缩比的同时,尽可能保证输出结果,实现最高的量化“性价比”

f7c40178-957b-11ee-8b88-92fbcf53809c.png

图:权重压缩示意

经验证常规的 int8 权重量化,对大模型准确性的影响极低,而为了引入像 int4,nf4 这样的更极致的压缩精度,目前在权重量化算法上也经过了一些探索,其中比较典型的就是 GPTQ 算法,简单来说,GPTQ 对某个 block 内的所有参数逐个量化,每个参数量化后,需要适当调整这个 block 内其他未量化的参数,以弥补量化造成的精度损失。GPTQ 量化需要准备校准数据集,因此他也是一种 PTQ(Post Training Quantization)量化技术。

OpenVINO 2023.2

对于 int4 模型的支持

OpenVINO 2023.2 相较 2023.1 版本,全面引入对 int4 模型以及量化技术的支持。主要有以下 2 个方面:

01CPU 及 iGPU 支持原生 int4 模型推理

OpenVINO工具目前已经可以直接读取经 NNCF 量化以后的 int4 模型,或者是将 HuggingFace 中使用 AutoGPTQ 库量化的模型转换后,进行读取及编译。由于目前的 OpenVINO 后端硬件无法直接支持 int4 数据格式的运算,所以在模型执行过程中,OpenVINO runtime 会把 int4 的权重反量化的到 FP16 或是 BF16 的精度进行运算。简而言之:模型以 int4 精度存储,以 fp16 精度计算,用计算成本换取空间及 IO 成本,提升运行效率。这也是因为大模型的性能瓶颈主要来源于 memory bound,用更高的数据读写效率,降低对于内存带宽与内存容量的开销。

f7ebf480-957b-11ee-8b88-92fbcf53809c.png

图:经 NNCF 权重压缩后的模型结构

02NNCF 工具支持 int4 的混合精度量化策略(Weights Compression)

刚提到的 GPTQ 是一种 data-based 的量化方案,需要提前准备校验数据集,借助 HuggingFace 的 Transformers 和 AutoGPTQ 库可以完成这一操作。而为了帮助开发者缩短 LLM 模型的压缩时间,降低量化门槛,NNCF 工具在 2.7.0 版本中引入了针对 int4 以及 nf4 精度的权重压缩模式,这是一种 data-free 的混合精度量化算法,无需准备校验数据集,仅对 LLM 中的 Linear 和 Embedding layers 展开权重压缩。整个过程仅用一行代码就可以完成:

compressed_model = compress_weights(model, mode=CompressWeightsMode.NF4, group_size=64, ratio=0.9)

左滑查看更多

其中model为 PyTorch 或 OpenVINO 的模型对象;mode代表量化模式,这里可以选择CompressWeightsMode.NF4,或是CompressWeightsMode.INT4_ASYM/INT4_SYM等不同模式;为了提升量化效率,Weights Compression 使用的是分组量化的策略(grouped quantization),因此需要通过group_size配置组大小,例如 group_size=64 意味 64 个 channel 的参数将共享同一组量化参数(zero point, scale value);此外鉴于 data-free 的 int4 量化策略是比带来一定的准确度损失,为了平衡模型体积和准确度,Weights Compression 还支持混合精度的策略,通过定义ratio值,我们可以将一部分对准确度敏感的权重用 int8 表示,例如在 ratio=0.9 的情况下,90% 的权重用 int4 表示,10% 用 int8 表示,开发者可以根据量化后模型的输出结果调整这个参数。

在量化过程中,NNCF 会通过搜索的方式,逐层比较伪量化后的权重和原始浮点权重的差异,衡量量化操作对每个 layer 可能带来的误差损失,并根据排序结果以及用户定义的 ratio 值,将损失相对较低的权重压缩到 int4 位宽。

中文大语言模型实践

随着 OpenVINO2023.2 的发布,大语言模型的 int4 压缩示例也被添加到了openvino_notebooks 仓库中,这次特别新增了针对中文 LLM 的示例,包括目前热门模型ChatGLM2Qwen。在这个 notebook 中,开发者可以体验如何从 HuggingFace 的仓库中导出一个 OpenVINO IR 格式的模型,并通过 NNCF 工具进行低比特量化,最终完成一个聊天机器人的构建。

f8093eb4-957b-11ee-8b88-92fbcf53809c.png

图:fp16 与 int4 模型空间占用比较

通过以上这个截图可以看到,qwen-7b-chat 经过 NNCF 的 int4 量化后,可以将体积压缩到原本 fp16 模型的 1/3,这样使得一台 16GB 内存的笔记本,就可以流畅运行压缩以后的 ChatGLM2 模型。此外我们还可以通过将 LLM 模型部署在酷睿 CPU 中的集成显卡上,在提升性能的同时,减轻 CPU 侧的任务负载。

f81349cc-957b-11ee-8b88-92fbcf53809c.png

图:Notebook 运行效果

总结

OpenVINO 2023.2 中对 int4 权重量化的支持,可以全面提升大模型在英特尔平台上的运行性能,同时降低对于存储和内存的容量需求,降低开发者在部署大模型时的门槛,让本地化的大语言模型应用在普通 PC 上落地成为可能。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 轻量化技术
    +关注

    关注

    0

    文章

    6

    浏览量

    2227
  • 大模型
    +关注

    关注

    2

    文章

    2423

    浏览量

    2637
  • LLM
    LLM
    +关注

    关注

    0

    文章

    286

    浏览量

    327
  • OpenVINO
    +关注

    关注

    0

    文章

    92

    浏览量

    196

原文标题:如何利用低比特量化技术在 iGPU 上进一步提升大模型推理性能|开发者实战

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

收藏 人收藏

    评论

    相关推荐

    Arm KleidiAI助力提升PyTorch上LLM推理性能

    热门的深度学习框架尤为突出,许多企业均会选择其作为开发 AI 应用的库。通过部署 Arm Kleidi 技术,Arm 正在努力优化 PyTorch,以加速在基于 Arm 架构的处理器上运行 LLM性能。Arm 通过将 Kle
    的头像 发表于 12-03 17:05 727次阅读
    Arm KleidiAI助力<b class='flag-5'>提升</b>PyTorch上<b class='flag-5'>LLM</b>推理<b class='flag-5'>性能</b>

    Labview开发技术丛书--运行性能提升技巧

    Labview开发技术丛书--运行性能提升技巧
    发表于 09-02 18:09

    基于RDMA技术的Spark Shuffle性能提升

    一篇文章教你使用RDMA技术提升Spark的Shuffle性能
    发表于 10-28 16:46

    求一种采用分段量化比特滑动技术的流水并行式模数转换电路?

    本文提出了一种采用分段量化比特滑动技术的流水并行式模数转换电路,较好地结合了并行式和逐次逼近比较式两种模数转换各自的长处,在保证高速工作的同时,可实现并行式难以实现的8位以上的高分辨率模数转换,而且比现有的流水并行式模数转换电
    发表于 04-08 06:34

    量化算法介绍及其特点分析

    模型量化作为一种能够有效减少模型大小,加速深度学习推理的优化技术,已经得到了学术界和工业界的广泛研究和应用。模型量化有 8/4/2/1 bit等,本文主要讨论目前相对比较成熟的 8-bit
    发表于 07-26 08:08

    LLM性能的主要因素

    现在是2023年5月,截止目前,网络上已经开源了众多的LLM,如何用较低的成本,判断LLM的基础性能,选到适合自己任务的LLM,成为一个关键。 本文会涉及以下几个问题: 影响
    的头像 发表于 05-22 15:26 1702次阅读
    <b class='flag-5'>LLM</b><b class='flag-5'>性能</b>的主要因素

    基于MacroBenchmark的性能测试量化指标方案

    介绍基于Google MacroBenchmark的性能量化指标测试的工程配置、测试流程、核心指标和应用案例,帮助Android 开发者更好地评估和比较App的性能
    的头像 发表于 10-17 10:15 778次阅读

    Nvidia 通过开源库提升 LLM 推理性能

    加利福尼亚州圣克拉拉——Nvidia通过一个名为TensorRT LLM的新开源软件库,将其H100、A100和L4 GPU的大型语言模型(LLM)推理性能提高了一倍。 正如对相同硬件一轮又一轮改进
    的头像 发表于 10-23 16:10 641次阅读

    深度学习模型量化方法

    深度学习模型量化是一种重要的模型轻量化技术,旨在通过减少网络参数的比特宽度来减小模型大小和加速推理过程,同时尽量保持模型性能。从而达到把模型
    的头像 发表于 07-15 11:01 487次阅读
    深度学习模型<b class='flag-5'>量化</b>方法

    OpenVINO 2024.4持续提升GPU上LLM性能

    本次新版本在整个 OpenVINO 产品系列中引入了重要的功能和性能变化,使大语言模型 (LLM) 的优化和部署在所有支持的场景中更容易、性能更高,包括边缘和数据中心环境的部署。
    的头像 发表于 10-12 09:41 393次阅读
    OpenVINO 2024.4持续<b class='flag-5'>提升</b>GPU上<b class='flag-5'>LLM</b><b class='flag-5'>性能</b>

    理解LLM中的模型量化

    在本文中,我们将探讨一种广泛采用的技术,用于减小大型语言模型(LLM)的大小和计算需求,以便将这些模型部署到边缘设备上。这项技术称为模型量化。它使得人工智能模型能够在资源受限的设备上高
    的头像 发表于 10-25 11:26 222次阅读
    理解<b class='flag-5'>LLM</b>中的模型<b class='flag-5'>量化</b>

    LLM技术对人工智能发展的影响

    随着人工智能技术的飞速发展,大型语言模型(LLM技术已经成为推动AI领域进步的关键力量。LLM技术通过深度学习和自然语言处理
    的头像 发表于 11-08 09:28 344次阅读

    TensorRT-LLM精度推理优化

    本文将分享 TensorRT-LLM 中低精度量化内容,并从精度和速度角度对比 FP8 与 INT8。首先介绍性能,包括速度和精度。其次,介绍量化工具 NVIDIA TensorRT
    的头像 发表于 11-19 14:29 262次阅读
    TensorRT-<b class='flag-5'>LLM</b><b class='flag-5'>低</b>精度推理优化

    一种信息引导的量化LLM微调新算法IR-QLoRA

    大模型应用开卷,连一向保守的苹果,都已释放出发展端侧大模型的信号。 问题是,大语言模型(LLM)卓越的表现取决于“力大砖飞”,如何在资源有限的环境中部署大模型并保障性能,仍然颇具挑战。 以对大模型
    的头像 发表于 11-19 17:16 275次阅读
    一种信息引导的<b class='flag-5'>量化</b>后<b class='flag-5'>LLM</b>微调新算法IR-QLoRA

    解锁NVIDIA TensorRT-LLM的卓越性能

    Batching、Paged KV Caching、量化技术 (FP8、INT4 AWQ、INT8 SmoothQuant 等) 以及更多功能,确保您的 NVIDIA GPU 能发挥出卓越的推理性能
    的头像 发表于 12-17 17:47 108次阅读