|
QLoRA(Quantized Low-Rank Adapters)是一种高效的微调技术,用于在消费级硬件(如单张GPU)上微调大语言模型(LLM)。它的核心思想是通过量化(Quantization)和低秩适配器(Low-Rank Adapters)来减少内存占用,同时保持模型的性能。 QLoRA 的关键技术 4-bit 量化:使用4-bit NormalFloat (NF4) 量化方法,使得模型占用的显存大幅减少。 低秩适配器(LoRA):在原始模型的参数上引入小规模的低秩适配器,只微调这些参数,而不改变原始模型的权重。 Paged Optimizers:通过优化内存分页管理,进一步降低显存使用。
QLoRA 的优势 降低显存需求:可以在单张消费级 GPU(如 RTX 3090 或 A100 80GB)上微调高达65B参数的模型。 性能接近全参数微调:尽管减少了训练的参数量,但实验表明,QLoRA 仍能保持高质量的微调效果。 适用于大语言模型(LLM):适用于像 LLaMA、GPT 等大型预训练模型的个性化微调。
适用场景 LoRA与QLoRA的区别 LoRA(Low-Rank Adaptation)和 QLoRA(Quantized Low-Rank Adaptation)都是用于高效微调大型语言模型(LLM)的技术,但它们有以下主要区别: 1. 基础概念 LoRA:通过在神经网络的权重矩阵上添加低秩适配(Low-Rank Adaptation)矩阵,减少微调时的参数更新量,同时保持原始模型权重不变。这降低了存储和计算成本。 QLoRA:在 LoRA 的基础上引入了量化(Quantization)技术,即用更低精度(如 4-bit)存储模型权重,从而大幅降低显存占用,使得更大的模型可以在消费级 GPU 上进行微调。
2. 显存占用 LoRA:仍然需要加载全精度(如 FP16)的基础模型,显存占用较高。 QLoRA:使用 4-bit 量化存储模型权重,极大减少显存需求,使得 65B(650亿参数)级别的模型可以在 48GB 显存的 GPU 上进行微调。
3. 计算资源 LoRA:减少了训练时需要更新的参数,但仍需较高的计算资源,特别是对大模型来说。 QLoRA:通过量化减少了计算资源需求,使得较低端的硬件也能参与大模型微调。
4. 适用场景 LoRA:适用于有一定计算资源、希望高效微调模型但不希望量化影响模型性能的场景。 QLoRA:适用于计算资源有限、需要在消费级 GPU 上微调大模型的场景。
5. 性能与精度 LoRA:由于保持了高精度权重,微调后精度通常较高。 QLoRA:虽然使用了量化技术,但配合适当的量化方案(如 NF4 量化格式),可以在较低显存占用的情况下保持接近 LoRA 的微调效果。 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif, SimHei, SimSun;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">QLoRA 与LoRA对比总结ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif, SimHei, SimSun;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif, SimHei, SimSun;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;">如果你的设备显存较少,可以优先选择QLoRA,这样能在更低成本的硬件上完成大模型的微调。
QLoRA微调实战 关键参数说明 量化等级(启用量化QLoRA) :8位 加速方式:flashattn2,或者auto LoRA秩 32--128之间,比如 64 (推荐), LoRA缩放系数是 lora秩的2倍,比如 128(推荐)。 截断长度:根据训练的数据的每条记录的长度,选择一个能够覆盖大部分记录的长度。 训练轮数:一般大于300; 模型越小,LoRA秩和LoRA缩放系数越大一些。量化等级越小,LoRA秩和LoRA缩放系数越大一些。
|