QLoRA 和 4 位微调
QLoRA 是一种技术,可让您通过以每个权重仅 4 位存储冻结模型来微调单个消费级 GPU 上的大规模语言模型。
概述
它使得在之前只能处理该尺寸的一小部分的硬件上定制65B参数模型成为可能。
深入探讨
通常,微调大型模型意味着以 16 位精度加载每个权重并更新所有权重,这需要大量内存。 QLoRA 结合了两种想法。首先,它冻结预训练模型并将其量化为 4 位,将内存削减大约四倍。其次,它使用 LoRA:它不是更新巨大的权重矩阵,而是在它们旁边注入微小的可训练低阶适配器矩阵,因此只有几百万个参数得到更新。 4 位底座保持固定,而梯度仅流过小适配器。 QLoRA 由 Dettmers 及其同事于 2023 年推出,表明在一个 48GB GPU 上微调 65B 模型可以与完整 16 位微调的质量相媲美。
技术洞察
QLoRA 引入了三个技巧。 NF4(4 位 NormalFloat)是一种针对神经权重的钟形曲线分布进行优化的数据类型,比普通 int4 具有更好的准确性。双量化会压缩量化常数本身,从而节省额外的内存。分页优化器使用 GPU-CPU 统一内存来吸收长序列期间的峰值,防止内存不足崩溃。在前向和后向传递过程中,4 位权重被反量化为 16 位,以便进行矩阵乘法,然后被丢弃。
战略影响
速度与规模
语言工作流程可以在不牺牲一致性的情况下更快地移动。
交通与覆盖范围
它扩展了跨语言和沟通方式的访问。
更清晰的判决
团队可以花更多时间进行判断,而自动化则可以处理重复。
QLoRA 和 4 位微调的未来
4 位微调已成为标准做法,现在的研究正在朝着更低的精度方向发展,包括 2 位和 1 位(三进制)表示。 AWQ、GPTQ 和 HQQ 等较新的量化方案进一步提高了准确性,而 QA-LoRA 等技术的目标是即使在合并适配器后也能保持模型的量化。随着开放重量模型的发展,爱好者们可以期待工具能够在单个游戏 GPU 上微调 70B 以上的模型,从而成为常规的、民主化的定制。
现实世界的实施
一家初创公司在单个 48GB GPU 上微调 70B Llama 模型,以用自己的品牌声音构建客户支持助理,而无需租用服务器集群。
一名研究人员使用一台消费级 RTX 4090 一夜之间将开放模型调整为利基医疗问答数据集。
开发人员为不同的任务创建了数十个小型、可交换的 LoRA 适配器,所有适配器都共享内存中加载的一个 4 位基本模型。
业余爱好者使用免费的 Colab 级硬件对个人聊天日志上的模型进行微调,以模仿特定的写作风格。
风险与防护栏
幻觉的事实可以悄悄地进入报告、支持流程或研究成果。
及时的敏感性可能会在类似的请求中产生不一致的结果。
如果访问控制薄弱,敏感文本数据可能会暴露。
实施路线图
在推出之前定义输出格式、语气和质量标准。
当准确性很重要时,请使用可信来源进行地面响应。
为高风险输出保留人工审查检查点。
跟踪故障模式并定期重新训练提示或工作流程。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the QLoRA and 4-Bit Fine-Tuning quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
什么是QLoRA和4位微调?
QLoRA 是一种技术,可让您通过以每个权重仅 4 位存储冻结模型来微调单个消费级 GPU 上的大规模语言模型。它使得在硬件上定制 65B 参数模型成为可能,而以前只能处理该尺寸的一小部分模型。
QLoRA 的“4 位”部分背后的核心内存节省理念是什么?
QLoRA 以每个值 4 位存储冻结的预训练权重,与 16 位相比,内存减少了大约四倍。
在 QLoRA 微调期间,哪些参数实际上是通过梯度下降来更新的?
基础模型被冻结;只有注入的低秩适配器矩阵才会接收梯度更新,这只是参数的一小部分。
QLoRA 背景下的 NF4 是什么?
NF4(NormalFloat 4 位)是一种围绕神经网络权重的钟形曲线分布设计的数据类型,其精度比普通 int4 更高。
QLoRA 中的“分页优化器”解决什么问题?
分页优化器使用 GPU-CPU 统一内存来吸收内存峰值,防止在长输入训练期间出现内存不足崩溃。
训练期间什么时候将 4 位权重转换回更高精度?
对于每个矩阵乘法,4 位权重都会动态反量化为 16 位精度,然后丢弃更高精度的副本以节省内存。