QLoRA: 基于量化的 LLMs 高效微调
我们提出了一种内存高效的大型语言模型微调算法 (ModuLoRA),支持在只有一个 48GB 的 GPU 上以 3 位或 4 位精度对具有 65B 参数的语言模型进行微调。通过将任何用户指定的权重量化器与低秩适配器 (LoRAs) 结合使用,我们的方法通过简单的量化无关后向传递来适应动态生成来自自定义黑盒量化模块的低精度语言模型权重。在实验中,ModuLoRA 在文本分类、自然语言推理和指令跟随任务上获得了有竞争力的性能,并且在使用比现有方法更少的内存的同时,我们还超过了流行的摘要任务的最新 ROUGE 分数。我们将 ModuLoRA 与一系列低精度模型一起发布,其中包括第一个 3 位指令跟随型 Alpaca LLMs 系列,作为 LLMTOOLS 的一部分,LLMTOOLS 是一个用户友好的用于在消费级 GPU 上进行量化、运行和微调 LLMs 的库。
Sep, 2023
我们提出了 LoftQ,这是一个新的量化框架,旨在同时量化 LLM 并为 LoRA fine-tuning 找到适当的低秩初始化,以改善量化和全精度模型之间的差异,并显著提高下游任务的泛化性能。
Oct, 2023
我们提出了一种量化感知的低秩自适应算法(QA-LoRA),通过使用分组运算符,增加量化的自由度,减少自适应的自由度,将大型语言模型(LLMs)权重量化以减少时间和内存使用,并将 LLM 和辅助权重自然地集成到一个量化模型中,而不损失准确性。我们应用 QA-LoRA 算法于 LLaMA 和 LLaMA2 模型系列,并在不同的微调数据集和下游场景中验证了其有效性。
Sep, 2023
我们提出了一种简单的方法来对预训练语言模型进行内存高效的适应。我们的方法使用迭代算法将每个预训练矩阵分解成高精度低秩部分和内存高效的量化部分。在微调过程中,量化部分保持固定,只有低秩部分被更新。我们提出了量化部分的整数线性规划形式,可以在总体存储器预算的情况下动态配置量化参数(例如,位宽,块大小)给每个矩阵。我们进一步探索了数据感知版本的算法,该算法使用 Fisher 信息矩阵的近似来加权矩阵分解过程中的重构目标。在适应 RoBERTa 和 LLaMA-2(7B 和 70B)的实验中,我们的低秩加量化矩阵分解方法(LQ-LoRA)优于 QLoRA 和 GPTQ-LoRA 基准,并且能实现更激进的量化。例如,在 OpenAssistant 基准测试中,LQ-LoRA 能够学习一个 2.5 位的 LLaMA-2 模型,与使用 4 位 QLoRA 微调的模型竞争。在语言建模校准数据集上微调时,LQ-LoRA 还可以用于模型压缩;在这种情况下,我们的 2.75 位 LLaMA-2-70B 模型(考虑了低秩部分的平均位数,并且需要 27GB 的 GPU 内存)与原始模型在全精度上竞争。
Nov, 2023
本文提出了一种低秩适应方法(Low-Rank Adaptation,简称 LoRA),通过将可训练秩分解矩阵注入变压器结构的每个层中,极大地减少了下游任务中的可训练参数,并且性能与微调相当或更好,同时具有更高的训练吞吐量和没有额外推理延迟,这解决了大规模预训练模型对于微调参数和 GPU 内存占用过高的问题。
Jun, 2021
通过使用 S-LoRA 系统,可以在单个 GPU 上或多个 GPU 上以较小的开销提高吞吐量并使 LoRA 适配器的数量成倍增加,从而实现可伸缩的运行多个 Fine-tuned 模型的服务。
Nov, 2023
GLoRA 是一种用于通用参数节约的微调任务的高级方法。它使用广义提示模块来优化预训练模型权重和调整中间激活,并通过采用可伸缩的、模块化的逐层结构搜索来促进高效参数适应,从而实现强大的转移学习、少样本学习和领域泛化能力。
Jun, 2023
提出了 MultiLoRA,通过减少 LoRA 中观察到的顶层奇异向量的主导性,通过水平扩展 LoRA 模块和改变适应矩阵的参数初始化来减少参数依赖性,从而产生更平衡的单元子空间,从而实现更好的多任务适应性。MultiLoRA 在多个基准和模型规模上优于单个 LoRA 对应项和微调,仅需额外 2.5%的参数。对 MultiLoRA 的权重更新矩阵进行进一步研究表明,其对顶层奇异向量的依赖性减小,单元变换贡献更加均衡。
Nov, 2023