首页 > 其他分享 >【机器学习】LoRA:大语言模型中低秩自适应分析

【机器学习】LoRA:大语言模型中低秩自适应分析

时间:2024-06-04 20:03:57浏览次数:14  
标签:微调 模型 中低 矩阵 秩自 调优 LoRA 性能

LoRA:大型语言模型中的低秩自适应调优策略


在这里插入图片描述

随着人工智能技术的飞速发展,大型语言模型已成为自然语言处理领域的明星技术。然而,这些模型通常拥有数以亿计的参数,使得在特定任务上进行微调变得既昂贵又耗时。为了克服这一挑战,研究者们提出了一种名为“低秩自适应”(Low-Rank Adaptation,简称LoRA)的参数高效调优方法。本文将深入探讨LoRA的原理、优势以及在编程和数学任务中的性能表现。

一、LoRA的原理与优势

LoRA是一种针对大型语言模型的参数高效调优策略,其核心理念是通过只训练选定权重矩阵的低秩扰动来节省内存和计算资源。在传统的完全微调方法中,模型的所有参数都需要进行更新,这不仅需要巨大的计算资源,还可能导致模型在微调过程中“遗忘”之前学到的知识。而LoRA则通过引入一个低秩矩阵,仅对这部分矩阵进行训练,从而实现对模型的高效调优。

LoRA的优势在于其能够在保证模型性能的同时,显著降低计算和存储成本。具体来说,LoRA通过以下步骤实现参数高效调优:
在预训练模型的基础上,选择一个或多个权重矩阵作为调优目标
**为每个选定的权重矩阵添加一个低秩矩阵作为扰动项b。
**在微调过程中,仅对低秩矩阵进行训练,而保持原始权重矩阵不变
g。
这种方法能够有效地减少需要训练的参数数量,从而降低计算和存储需求。同时,由于低秩矩阵的引入,LoRA还能够在一定程度上防止模型在微调过程中的“遗忘”现象,保持模型在目标域之外任务上的性能。

二、LoRA在编程和数学任务中的性能表现

为了评估LoRA在实际任务中的性能表现,研究者们进行了一系列实验,比较了LoRA和完全微调在编程和数学任务中的性能。实验结果表明,在大多数情况下,LoRA的性能略低于完全微调,但其在目标域之外任务上的性能保持能力更强。

具体来说,在编程任务中,LoRA能够在不显著降低模型性能的前提下,实现对代码的自动补全和错误检测等功能。与完全微调相比,LoRA在保持模型在编程任务上性能的同时,还能够更好地维护模型在其他自然语言处理任务上的性能。这得益于LoRA的低秩扰动策略,使得模型在微调过程中能够保持对原始知识的记忆。

在数学任务中,LoRA同样展现出了良好的性能。研究者们使用LoRA对大型语言模型进行微调,使其能够理解和解答数学问题。实验结果表明,LoRA能够在一定程度上提高模型对数学问题的理解和解答能力,尤其是在处理复杂数学问题时表现出色。这进一步证明了LoRA在参数高效调优方面的优势。
三、LoRA的代码实例
下面是一个使用LoRA对大型语言模型进行微调的简化代码实例:

python

import torch
from loralib import LoRA

# 假设 pretrained_model 是一个预训练好的大型语言模型
pretrained_model = ...

# 选择一个权重矩阵进行LoRA调优
weight_matrix = pretrained_model.some_layer.weight

# 初始化LoRA模块
lora_module = LoRA(weight_matrix, rank=8, lr=1e-3)

# 将LoRA模块添加到模型中
pretrained_model.add_lora_module(lora_module)

# 在训练过程中,只更新LoRA模块的参数
optimizer = torch.optim.SGD(lora_module.parameters(), lr=1e-3)

# ... 训练过程 ...

在上述代码中,我们首先选择了一个权重矩阵作为调优目标,并初始化了一个LoRA模块。然后,我们将LoRA模块添加到预训练模型中,并在训练过程中仅更新LoRA模块的参数。通过这种方式,我们可以实现对大型语言模型的高效调优,同时降低计算和存储成本

四、总结与展望

LoRA作为一种参数高效调优方法,在大型语言模型领域展现出了巨大的潜力。通过仅训练低秩扰动到选定的权重矩阵,LoRA能够在保证模型性能的同时,显著降低计算和存储成本。虽然LoRA在某些任务上的性能略低于完全微调,但其在目标域之外任务上的性能保持能力更强,这使得LoRA成为一种理想的正则化形式。未来,随着技术的不断发展,我们有理由相信LoRA将在更多领域得到广泛应用。

标签:微调,模型,中低,矩阵,秩自,调优,LoRA,性能
From: https://blog.csdn.net/richard_yuu/article/details/139451370

相关文章

  • 给vllm添加热添加lora的功能
    写在前面原生vllm并不支持热添加lora,但是考虑到微调机微调后,需要在不停机的情况下传递lora,于是我们需要增加一个逻辑修改VLLM包中的vllm/entrypoints/openai/api_server.py文件,添加下方的代码:1frompydanticimportBaseModel23classAddLoraRequest(BaseModel):4......
  • 山东大学项目实训-基于LLM的中文法律文书生成系统(十七)- 微调-LoRA(2)
    LoRALORA是一种低资源微调大模型方法,出自论文LoRA:Low-RankAdaptationofLargeLanguageModels。使用LORA,训练参数仅为整体参数的万分之一、GPU显存使用量减少2/3且不会引入额外的推理耗时。自然语言处理的一个重要范式包括对一般领域数据的大规模预训练和对特定任务或领......
  • lora_adapter 模型和原模型合并成一个模型
    lora部分合并到原模型参数上importtorchfrompeftimportPeftModelfromtransformersimportAutoTokenizer,AutoModelForCausalLM,LlamaTokenizerfromtransformers.generation.utilsimportGenerationConfigdefapply_lora(model_name_or_path,output_path,lor......
  • LoRa无线通信低功耗原理
    LoRa无线通信模块的工作原理主要基于扩频调制技术,特别是采用了ChirpSpreadSpectrum(CSS)调制方式。这种技术通过线性频率调制(LFM)产生“啁啾”信号,每个数据包的载波频率随着时间线性变化,从而实现远距离、低功耗和高抗干扰性的通信特性。在发送过程中,LoRa模块首先将要......
  • ICML 2024 | 新型傅立叶微调来了!脱离LoRA架构,训练参数大幅减少
    前言 本文介绍了香港科技大学(广州)的一篇关于大模型高效微调(LLMPEFTFine-tuning)的文章「Parameter-EfficientFine-TuningwithDiscreteFourierTransform」,本文被ICML2024接收,代码已开源。欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解......
  • LLM 大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、A
    LLM大模型学习必知必会系列(六):量化技术解析、QLoRA技术、量化库介绍使用(AutoGPTQ、AutoAWQ)模型的推理过程是一个复杂函数的计算过程,这个计算一般以矩阵乘法为主,也就是涉及到了并行计算。一般来说,单核CPU可以进行的计算种类更多,速度更快,但一般都是单条计算;而显卡能进行的都是基......
  • LLM 大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘
    LLM大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘诀进阶实战指南1.微调(SupervisedFinetuning)指令微调阶段使用了已标注数据。这个阶段训练的数据集数量不会像预训练阶段那么大,最多可以达到几千万条,最少可以达到几百条到几千条。指令微调可以......
  • LLCC68低功耗Sub-GHz LoRa射频收发器LLCC68IMLTRT
    目录·LLCC68简介·主要特性·射频开关参考原理图·应用领域LLCC68简介LLCC68是一款Sub-GHzLoRa射频收发器,适用于中距离室内以及室内到室外的无线应用。支持SPI接口。与SX1262的引脚兼容,专为延长电池寿命而设计,有效接收电流消耗低至4.2mA。SX1261、SX1262、SX1268和LLCC68是专......
  • 淘宝在线扭蛋机一番赏中低层代码权重算法是怎么运作的
    权重算法在抽赏功能中的运用主要体现在通过设定不同选项的权重值,来决定它们被抽中的概率。具体来说,权重越大的选项,在抽奖时被选中的概率就越大。在抽赏功能的实现中,可以采用带权重的随机算法(WeightedRandomAlgorithm)。这种算法的基本思路是:首先,累加每个选项的权重值,得到一个......
  • 快速训练自己的大语言模型:基于LLAMA-7B的lora指令微调
    目录1.选用工程:lit-llama2.下载工程3.安装环境4.下载LLAMA-7B模型5.做模型转换6.初步测试7.为什么要进行指令微调?8.开始进行指令微调*8.1.数据准备8.2开始模型训练8.3模型测试前言:系统:ubuntu18.04显卡:A100-80G(蹭的,嘿嘿~)(本次主要记录如何快速进行大模型......