如何在保障精度的同时,轻量级部署 DeepSeek?

摘要:msModelSlim 支持多种模型压缩算法(包括量化压缩、稀疏压缩等),为开发者提供更加灵活、高效的模型压缩量化方案。
最近 AI 圈可以说是被新晋“顶流”DeepSeek 刷屏了,新发布的 V3/R1 系列模型,直接在全球火出圈,它的性能强劲到足以和全球顶尖模型一较高下!不过你知道吗?虽然网络版和 App 版已经足够好用,但只有把模型搬进自家地盘,进行本地部署,你才能享受到真正的“私人定制”,让 DeepSeek R1 的“深度思考”完全为你所用。
不过呢,问题也来了。原版的 DeepSeek - R1 671B 全量模型,文件体积大得离谱,足足有 720GB !这就好比你要搬一座大山回家,绝大部分个人和企业看到这样庞大的部署成本,都被吓得望而却步。
别担心,量化技术来救场!这项技术就像神奇的魔法,一边稳稳保住 DeepSeek 模型的高精度,一边还能把模型的计算效率和资源占用问题轻松搞定。这样一来,模型在实际应用中就能表现得更加出色,开发者和企业也能享受到更加灵活高效的部署方式。
什么是大模型量化
近年来,随着人工智能的发展和 Transformer 等架构的提出,使得深度学习的模型参数达上万亿规模,从而使得模型变得越来越大,计算和存储资源的需求也急剧增加。因此,为了降低计算和存储的开销,我们需要一些大模型压缩技术来降低模型部署的成本,并提升模型推理的性能。模型压缩主要有几种方法:量化、知识蒸馏、剪枝和低秩分解。
量化(Quantization)是通过降低模型当中的参数精度(权重或者激活值)将从较高位宽转化为(如 32 为浮点数)转化为较低位宽(如 8 位整数或 4 位整数),实现模型的压缩和优化,从而降低模型的占用显存和算力,提高运行效率。通常会伴随着一定量精度的损失,需要注意的是,在计算过程中我们还会将量化后的整数反量化为浮点数,得到结果。通过量化主要有以下收益:
1. 减少内存(显存)占用

整数数据类型(如 8 位整数)占用的内存比浮点数(如 32 位浮点数)少得多。假设一个模型有 1 亿个参数,使用 FP32 数据格式表示,需要的内存为:内存占用 4x108 字节, 将字节转换为 MB(1MB = 1,048,576 字节): 内存占用约 381.47MB;若使用 INT8 表示数据参数:内存占用=1x108 字节,将字节转换为 MB(1MB = 1,048,576 字节): 内存占用约 95.37MB。所以 bit 越短,内存占用越少,对硬件要求越低。
2. 提升计算效率
在硬件层面,整数运算更容易实现,许多处理器和加速器专门优化了整数运算,提供张量运算的专用指令集,所以整数运算(加法、乘法等)通常比浮点运算更简单和快速。
3. 能耗降低
整数运算搬运的数据量变少,减少了访存开销,同时计算过程中,NPU 所需的乘法器数目也减少,所以消耗的能量通常比浮点运算低。
当前模型量化主要包括后训练量化(Post-Training Quantization, PTQ)和量化感知训练(Quantization Aware Training, QAT)。PTQ 可以在没有原始的训练过程的情况下,就能将预训练的 FP32 模型直接转换为定点计算的网络。PTQ 最大的特点就是不需要数据或者只需要很少的校准数据集,且几乎不需要调整超参数,使得我们可以很方便的进行模型量化,是一种在训练期间模拟量化操作的方法。QAT 通过在模型中插入伪量化节点(FakeQuant)来模拟量化误差,并在训练过程中最小化这些误差,最终得到一个适应量化环境的模型。
量化在降低显存占用和算力的同时,不可避免存在一些挑战,如量化方法的精确性、低比特数带来的精度损失,与此同时,模型大小与精度之间也存在一种权衡。一般来说,模型越小,其表达能力和容纳参数的能力也越有限,所以较小模型,量化后精度损失可能更加显著。
在进行模型量化时,要综合考虑任务、模型大小、精度要求以及实际的应用场景,以确定最合适的量化策略。基于以上场景,MindStudio 模型压缩工具可以支持 DeepSeek 系列模型的量化,并且更加高效。
MindStudio 模型压缩工具介绍
msModelSlim(MindStudio 模型压缩工具),是一个以加速为目标、压缩为技术、昇腾为根本的亲和压缩工具。支持训练加速和推理加速,包括模型低秩分解、稀疏训练、训练后量化、量化感知训练等功能,昇腾 AI 模型开发用户可以灵活调用 Python API 接口,对模型进行性能调优,并支持导出不同格式模型,在昇腾 AI 处理器上运行。
当前 msModelSlim 根据开发者差异化需求,提供了模型蒸馏、大模型量化、大模型稀疏量化和权重压缩、训练后量化等多种模型压缩方案。
针对 DeepSeek 系列模型,msModelSlim 提供了支持 W8A8、W8A16 的量化方案,同时也在开发 W4A16、W4A8 量化算法,满足不同客户需求。
同时,针对 DeepSeek-V3/R1 的 W8A8 动态量化方案,大体分为三步:
1. 调整离群值抑制:通过一致量化过程中异常值,使能后续的量化更优。针对 V3/R1 版本,采用 SmoothQuant 优化算法。
2. 量化参数的选择:根据以往经验,选择指定的层回退(即对精度敏感的层使用浮点数计算);激活值量化方式选择 Min-Max 方式;采用混合量化方式,即 MoE 层选用 W8A8-Dynamic 量化,MLA 层选用 W8A8 量化。
3. 校准集调整,通过更新业务校准集进行 Label-Free 量化。
量化流程如下:

基于 msModelSlim 模型压缩工具的量化压缩能力,互联网、运营商、金融等 20+行业客户均在本地部署上线 DeepSeek-V3/R1 满血版量化模型。
结语
随着深度学习模型变得越来越庞大和复杂,高效地将其知识迁移至小型、轻量化的模型,已经成为 AI 技术走向实际生产的关键路径。msModelSlim 支持多种模型压缩算法(包括量化压缩、稀疏压缩等),为开发者提供更加灵活、高效的模型压缩量化方案。在保障精度的同时,以更低的资源消耗实现更快的推理速度,助力企业快速部署上线,为 AI 技术的普及和落地提供了强有力的支持。
msModelSlim 工具已开源发布昇腾社区及 Gitee 社区,诚邀大家点击链接下载使用。
https://gitee.com/ascend/msit/tree/master/msmodelslim/README.md
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/07fe6c126db8492cab480339d】。文章转载请联系作者。
评论