最近,Meta开源了多模态模型Llama 3.2,此次开源的是1B和3B轻量级模型。Meta使用了带有LoRA适配器的量化感知训练和SpinQuant进行了大幅度性能优化,平均减少了41%的内存使用、减少56%的模型规模,但推理效率却提升了2—4倍。
作为整个系列里最轻量级的模型,Llama3.2 1B和3B适合边缘设备和移动应用程序的检索和摘要,可用于个人信息管理和多语言知识检索等,支持128k标记的上下文长度,可在手机、平板电脑等设备中使用。
Llama3.2 1B和3B特点介绍:
1、采用标准的Transformer结构
在架构方面,Llama 3.2 1B和3B采用了标准的Transformer结构。但对所有变压器块中的线性层进行了特定的量化处理,采用4位组方式量化权重,并对激活进行8位每标记动态量化。分类层则量化为8位每通道的权重和8位每标记的动态激活量化,同时使用了8位每通道量化用于嵌入。
2、使用LoRA适配器量化感知训练
LoRA适配器量化在初始化QAT时,会使用经过有监督微调后获得的BF16 Llama 3.2模型检查点,进行额外一轮带有QAT的有监督微调训练。然后冻结QAT模型的主干,再使用低秩自适应的LoRA适配器对变压器块内所有层进行另一轮有监督微调,并且LoRA适配器的权重和激活保持在BF16,最后通过直接偏好优化进行微调得到高能效模型。
3、使用SpinQuant技术
SpinQuant是目前最先进的后训练量化技术之一,通过使用WikiText数据集来学习旋转矩阵,这些矩阵有助于平滑数据中的异常值,促进更有效的量化。在确定了旋转矩阵之后,应用了包括范围设置和生成性后训练量化在内的最佳量化效果。该方法虽不如QAT+LoRA准确,但具有很灵活的可移植性,且无需访问通常是私有的训练数据集。这对于数据可用性或计算资源有限的应用来说,是一个非常好的解决方法。
开发者还可以使用此方法对自己微调后的Llama模型进行量化,以适应不同的硬件目标和用例,其开源库与ExecuTorch和Llama Stack完美兼容扩展性很强。
据悉,量化后的Llama 3.2在MMLU、GSM8K、MATH、MGSM等主流基准测试中不仅性能没有减少,还能与Llama 3 8B的性能媲美,充分证明了其高性能低消耗的特点。