首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

量化新范式:智源提出首个1bit自然语言理解预训练模型BiPFT

研究背景

预训练模型近年来成为了实现通用人工智能最有潜力的技术之一。然而,为了最大限度地提高基座模型的知识存储,增大模型规模也给推理带来了挑战,尤其是在计算资源有限的设备上,例如移动设备。

智源团队提出了首个用于自然语言理解任务的 1bit 轻量化预训练模型 BiPFT。与标准的FP32相比,使用 1bit weight 和 1bit activation,在推理阶段显著节省了56倍的操作数量和28倍的内存。该工作已被 AAAI 2024 收录。

与以往面向特定任务的 1bit Transformer结构的模型相比,BiPFT显著提升了 1bit 神经网络(BNN)的学习和泛化能力,推动 1bit 神经网络进入预训练时代。与直接在下游任务上进行二值量化的BERT模型相比,BiPFT 模型在GLUE标准测试集上平均性能超过15.4%。

BiPFT还展示了较强的鲁棒性,在下游任务上微调时摆脱了1bit量化模型对特定超参数和模型蒸馏的依赖,从而在各种自然语言理解任务上具有更好的泛化能力。

此外,受益于大量的预训练数据,智源团队创新采用一种数据驱动的1bit量化方法,减少量化损失。具体来说,首先通过分析自注意力操作中的1bit量化误差,推导出1bit量化误差的多项式表示,然后将1bit量化误差定义为二值化残差多项式模拟全精度自注意力,最后引入可学习的低秩估计器来对这些多项式进行参数化。

研究论文

BiPFT: Binary Pre-trained Foundation Transformer with Low-rank Estimation of Binarization Residual Polynomials

方法创新

1. 1bit 量化新范式!直接对基座模型进行 1bit 预训练

以往量化 1bit BERT模型时,量化过程在下游数据上完成,即,首先在特定任务上训练全精度模型,然后使用全精度模型作为教师,蒸馏的得到1bit模型,流程如图(a)所示:

这种方式存在两个主要缺点:

1bit BERT模型缺少独立学习的能力,其训练依赖于全精度教师模型的知识蒸馏,如果去掉蒸馏损失,往往又会导致精度大幅下降。

1bit BERT模型对训练的超参数敏感,造成训练不稳定,影响训练效率。实验显示,在下游任务中进行 1bit 量化的BERT模型在面对超参数(例如学习率,批量大小)的扰动时鲁棒性较差,因此在下游任务上量化的1bit BERT模型训练时需要持续进行超参数搜索,导致训练效率低下。

因此,智源团队提出新的 1bit 量化范式:直接在预训练阶段使用大量文本数据对 BERT模型进行 1bit 预训练,得到 1bit 轻量化预训练模型——BiPFT,其中模型权重和激活全部采用 1bit 位宽。在下游任务上微调时,BiPFT并不依赖于全精度教师模型的蒸馏,直接进行一次微调即可应用于各种下游任务,因此 BiPFT 具备较强的泛化能力。流程如图(b)所示:

在预训练阶段,BiPFT进行的训练任务包括掩码预测(MLM),句子匹配预测(NSP)和任务无关的蒸馏(task-agnostic distillation),其中,任务无关的蒸馏由于只在预训练阶段存在,并不会影响微调的训练开销。

直接进行1bit预训练的语言模型模型具有更好的鲁棒性。由于预训练带来的1bit参数的学习能力的增强,微调时不需要进行蒸馏和超参数搜索。

2. 通过对 Self-Attention 量化误差的参数化,减少量化损失

在以往的1bit量化方法中,往往直接对权重(weight)和激活(activation)进行1bit量化,带来了巨大的量化误差。

自注意力操作的 1bit量化可以进行如下表示:

其中

和 Clip 定义为:

在本文中,我们对量化误差进行估计,并使用参数化方法尝试减小1bit量化误差。对量化误差进行参数化的具体方法如下:

将 Q,K矩阵乘法带来的量化误差分解为多项式乘法的形式(公式13)。随后,我们对产生量化误差的多项式使用低秩矩阵乘法进行拟合,由于我们把秩设定为1,因此低秩矩阵乘法只会引入少量的计算量和参数。对量化误差多项式的低秩乘法近似如公式14所示。

其中,Q*,K*,V*的定义如下:

对self-attention的量化误差进行参数化后,self-attention map的计算可以使用公式14的计算结果对1bit量化误差进行校正:

对于attention map和 V 的矩阵乘法的量化误差,我们使用了相似的低秩方法进行近似估计,误差多项式的推导如公式16所示,对1bit量化误差的低秩校正如公式17所示:

实验结果

1.预训练方法对1bit量化性能的提升

注:

baseline 表示直接在下游进行训练的1bit量化模型;

baseline* 表示在baseline的基础上增加了全精度模型蒸馏和超参数搜索的训练技巧,训练流程较繁琐;

BiPFT-A 表示直接进行1bit预训练的1bit基座模型,然后进行微调;

BiPFT-B 表示在BiPFT-A的基础上增加了提出的“Self-attention 量化误差的参数化”。

实验结果表明

使用1bit预训练的BiPFT-B模型和baseline相比提升了15.4%的平均性能,体现了该方法的有效性;

增加额外蒸馏和超参数搜索的baseline*模型相比,直接微调BiPFT-B依然可以超过2.7%

在计算量上,BiPFT-B模型在1bit activation时需要 0.4G FLOP和 14.9M 的参数存储,总计算量和内存消耗相比于全精度32位模型降低56倍的操作数量和28倍的内存。

2. 1bit预训练模型在微调阶段提升训练的鲁棒性

左图中,每一张子图表示不同batchsize大小时的下游训练结果;右图中,每一张子图表示不同倍数的基准学习率下的下游训练结果;第一行表示带有蒸馏的baseline模型和BiPFT-A预训练模型在下游训练时的对比;第二行表示不带蒸馏的baseline模型和BiPFT-A的对比。

实验结果表明 在各种超参数设定情况下,直接进行1bit预训练的模型BiPFT-A 都能取得更好的效果:

1bit预训练模型BiPFT-A有着较好的独立学习能力:对于直接在下游训练的baseline模型,第一行和第二行的对比说明,baseline模型性能依赖于全精度教师模型的蒸馏。BiPFT-A在下游任务中,不需要教师模型进行蒸馏即可获得更好的效果。

1bit预训练模型BiPFT-A有着较好的超参数鲁棒性:使用蒸馏方法的baseline模型收到鲁棒性差,改变批量和学习率大小会显著影响训练效果。BiPFT-A对超参数(例如:训练批量大小,学习率)的变化不敏感,在常规设定下即可获得较好的结果。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OnYKeDic0YsQbxniMqSdqUSw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券