概述
它使得在之前只能处理该尺寸的一小部分的硬件上定制65B参数模型成为可能。
深入探讨
通常,微调大型模型意味着以 16 位精度加载每个权重并更新所有权重,这需要大量内存。 QLoRA 结合了两种想法。首先,它冻结预训练模型并将其量化为 4 位,将内存削减大约四倍。其次,它使用 LoRA:它不是更新巨大的权重矩阵,而是在它们旁边注入微小的可训练低阶适配器矩阵,因此只有几百万个参数得到更新。 4 位底座保持固定,而梯度仅流过小适配器。 QLoRA 由 Dettmers 及其同事于 2023 年推出,表明在一个 48GB GPU 上微调 65B 模型可以与完整 16 位微调的质量相媲美。
现实世界的实施
一家初创公司在单个 48GB GPU 上微调 70B Llama 模型,以用自己的品牌声音构建客户支持助理,而无需租用服务器集群。
一名研究人员使用一台消费级 RTX 4090 一夜之间将开放模型调整为利基医疗问答数据集。
开发人员为不同的任务创建了数十个小型、可交换的 LoRA 适配器,所有适配器都共享内存中加载的一个 4 位基本模型。
业余爱好者使用免费的 Colab 级硬件对个人聊天日志上的模型进行微调,以模仿特定的写作风格。
QLoRA 和 4 位微调的未来
4 位微调已成为标准做法,现在的研究正在朝着更低的精度方向发展,包括 2 位和 1 位(三进制)表示。 AWQ、GPTQ 和 HQQ 等较新的量化方案进一步提高了准确性,而 QA-LoRA 等技术的目标是即使在合并适配器后也能保持模型的量化。随着开放重量模型的发展,爱好者们可以期待工具能够在单个游戏 GPU 上微调 70B 以上的模型,从而成为常规的、民主化的定制。
付诸实践
为什么这很重要
- 速度与规模. 语言工作流程可以在不牺牲一致性的情况下更快地移动。
- 交通与覆盖范围. 它扩展了跨语言和沟通方式的访问。
- 更清晰的判决. 团队可以花更多时间进行判断,而自动化则可以处理重复。
留意
- 幻觉的事实可以悄悄地进入报告、支持流程或研究成果。
- 及时的敏感性可能会在类似的请求中产生不一致的结果。
- 如果访问控制薄弱,敏感文本数据可能会暴露。
后续步骤
- 在推出之前定义输出格式、语气和质量标准。
- 当准确性很重要时,请使用可信来源进行地面响应。
- 为高风险输出保留人工审查检查点。
- 跟踪故障模式并定期重新训练提示或工作流程。
不断探索
常见问题
什么是QLoRA和4位微调?
QLoRA 是一种技术,可让您通过以每个权重仅 4 位存储冻结模型来微调单个消费级 GPU 上的大规模语言模型。它使得在硬件上定制 65B 参数模型成为可能,而以前只能处理该尺寸的一小部分模型。
QLoRA 的“4 位”部分背后的核心内存节省理念是什么?
QLoRA 以每个值 4 位存储冻结的预训练权重,与 16 位相比,内存减少了大约四倍。
在 QLoRA 微调期间,哪些参数实际上是通过梯度下降来更新的?
基础模型被冻结;只有注入的低秩适配器矩阵才会接收梯度更新,这只是参数的一小部分。
QLoRA 背景下的 NF4 是什么?
NF4(NormalFloat 4 位)是一种围绕神经网络权重的钟形曲线分布设计的数据类型,其精度比普通 int4 更高。
QLoRA 中的“分页优化器”解决什么问题?
Paged optimizers use NVIDIA unified memory to page optimizer states between GPU and CPU memory as needed; the QLoRA paper says this helps manage memory spikes and reduce out-of-memory risk during long-sequence fine-tuning.
训练期间什么时候将 4 位权重转换回更高精度?
During a matrix multiplication, quantized weights are dequantized on the fly to a higher-precision compute dtype (for example, BF16 or FP16 in QLoRA configurations); the temporary higher-precision values are not stored as a full base-model copy.