提示调优(Prompt Tuning)方法是由Brian Lester在论文“The Power of Scale for Parameter-Efficient Prompt Tuning”中提出的。
提示调优采用“软提示”(Soft Prompt)的方式,通过冻结整个预训练模型,只答应每个下游任务在输入文本前面添加k个可调的标记(Token)来优化模型参数,赋予语言模型可以或许执行特定的下游任务的能力。提示调优的架构如图2所示。
大型语言模型取得了迅猛发展,只管在许多语言明白任务中表现强大,但由于巨大的计算负担,尤其是在需要将它们摆设到边缘设备时,应用受到了限定。具体而言,预训练权重矩阵的每一列只伴随一个缩放和零参数对,但有很多LoRA参数。这种不平衡不但导致了大量的量化偏差(对LLM的正确性造成侵害),而且使得将辅助权重整合到主模型中变得困难。
在论文“QA-LoRA: Quantization-aware Low-rank Adaptation of large language models”中,研究者提出了一种量化感知的低秩顺应(QA-LoRA)算法。该方法泉源于量化和顺应的自由度不平衡的思想。
研究者提出采用分组运算符的方式,旨在增加量化自由度的同时淘汰顺应自由度。
QA-LoRA的实现轻便,仅需几行代码,同时赋予原始的LoRA两倍的能力:
图 6 L o R A 、 Q L o R A 、 Q A − L o R A 的架构对比 图6 LoRA、QLoRA、QA-LoRA的架构对比 图6LoRA、QLoRA、QA−LoRA的架构对比
9 LongLoRA
通常情况下,用较长的上下文长度训练大型语言模型的计算本钱较高,需要大量的训练时间和GPU资源。
为了在有限的计算本钱下扩展预训练大型语言模型的上下文大小,研究者在论文“LongLoRA: Efficient Fine-tuning of Long-Context Large Language Models”中提出了LongLoRA的方法,整体架构如图7所示。
图 7 L o n g L o R A 的整体架构 图7 LongLoRA的整体架构 图7LongLoRA的整体架构
LongLoRA在两个方面举行了改进:
LongLoRA在从70亿、130亿到700亿个参数的LLaMA2模型的各种任务上都取得了良好的结果。具体而言,LongLoRA采用LLaMA2-7B模型,将上下文长度从4000个Token扩展到10万个Token,展现了其在增加上下文长度的同时保持了高效计算的能力。这为大型语言模型的进一步优化和应用提供了有益的思路。
10 VeRA
LoRA是一种常用的大型语言模型微调方法,它在微调大型语言模型时可以或许淘汰可训练参数的数目。然而,随着模型规模的进一步扩大大概需要摆设大量顺应于每个用户或任务的模型时,存储问题仍旧是一个挑战。
研究者提出了一种基于向量的随机矩阵顺应(Vector-based Random matrix Adaptation,VeRA)的方法,VeRA的实现方法是通过利用一对低秩矩阵在所有层之间共享,并学习小的缩放向量来实现这一目标。
与LoRA相比,VeRA成功将可训练参数的数目淘汰了10倍,同时保持了雷同的性能水平。VeRA与LoRA的架构对好比图8所示,LoRA通过训练低秩矩阵和来更新权重矩阵,中心秩为。在VeRA中,这些矩阵被冻结,在所有层之间共享,并通过可训练向量和举行顺应,从而显著淘汰可训练参数的数目。在这种情况下,低秩矩阵和向量可以合并到原始权重矩阵中,不引入额外的延长。这种新颖的结构设计使得VeRA在淘汰存储开销的同时,还可以或许保持和LoRA相媲美的性能,为大型语言模型的优化和应用提供了更加灵活的解决方案。
图 8 V e R A 与 L o R A 的架构对比 图8 VeRA与LoRA的架构对比 图8VeRA与LoRA的架构对比
实行证实,VeRA在GLUE和E2E基准测试中展现了其有效性,并在利用LLaMA2 7B模型时仅利用140万个参数的指令就取得了肯定的效果。这一方法为在大型语言模型微调中降低存储开销提供了一种新的思路,有望在实际应用中取得更为显著的效益。
11 S-LoRA
LoRA作为一种参数高效的大型语言模型微调方法,通常用于将根本模型顺应到多种任务中,从而形成了大量派生自根本模型的LoRA模型。由于多个采用LoRA形式训练的模型的底座模型都为同一个,因此可以参考批处置惩罚模式举行推理。
据此,研究者提出了一种S-LoRA(Serving thousands of con current LoRA adapters)方法,S-LoRA是一种专为可伸缩地服务多个LoRA适配器而设计的方法。
S-LoRA的设计理念是将所有适配器存储在主内存中,并在GPU内存中动态获取当前运行查询所需的适配器。为了高效利用GPU内存并淘汰碎片,S-LoRA引入了同一分页。同一分页采用同一的内存池来管理具有不同秩的动态适配器权重以及具有不同序列长度的KV缓存张量。别的,S-LoRA还采用了一种新颖的张量并行计谋和高度优化的自界说CUDA核心,用于异构批处置惩罚LoRA计算。这些特性使得S-LoRA可以或许在单个GPU或跨多个GPU上提供数千个LoRA适配器,而开销相对较小。
通过实行发现,S-LoRA的吞吐量进步了4倍多,而且提供的适配器数目增加了数个数目级。因此,S-LoRA在实现对许多任务特定微调模型的可伸缩服务方面取得了显著进展,并为大规模定制微调服务提供了潜伏的可能性。
12 总结