提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、Lora
- 二、QLora
-
- OLora的核心在于:
- 1.量化技术:QLora采用创新的技术将预训练模型量化为4位。这一技术包括低精度存储数据类型(4-bit Normal Float,简称NF4)和计算数据类型(16-bit Brain Float)。这种做法极大地减少了模型存储需求,同时保持了模型精度的最小损失。
- 2.量化操作:在4位量化中,每个权重由4个比特表示,量化过程中需选择最重要的值并将它们映射到16个可能的值之一。首先确定量化范围(例如,-1到1),然后将这个范围分成16个区间,每个区间对应一个4-bit值。然后,原始的32为浮点数值将映射到最近的量化区间值上。
- 3.微调阶段:在训练期间,QLora先以4-bit格式加载模型,训练时将数值反量化到bf16进行训练,这样大幅减少了训练所需的显存。例如,33B的llama模型可以在24GB的显卡上进行训练。
- 量化过程的挑战在于设计合适的映射和量化策略,以最小化精度损失对性能的影响。在大模型中,这种方法可以显著减少内存和计算需求,使得在资源有限的环境下部署和训练成为可能。
- 三、适配器调整(Adapter Tuning)
- 1.以预训练模型为基础:初始阶段,我们拥有一个已经经过预训练的大模型,该模型已经学习了丰富的语言特征和模式。
- 2.插入适配器:在预训练模型的每个层或指定层中,我们插入适配器。适配器是小型的神经网络,一般包含少量层次,并且参数规模相对较小。
- 3.维持预训练参数不变:在微调过程中原有的预训练模型参数保持不变。我们不直接调整这些参数,而是专注于适配器的参数训练。
- 4.训练适配器:适配器的参数会根据特定任务的数据进行训练,使适配器能够学习如何根据任务调整模型的行为。
- 5.针对任务的调整:通过这种方式,模型能够对每个特定任务进行微调,同时不影响模型其他部分的通用性能。适配器有助于模型更好地理解和处理与特定任务相关的特殊模式和数据。
- 6.高效与灵活:由于只有部分参数被调整,适配器调整方法相比于全模型微调更为高效,并且允许模型迅速适应新任务。
- 对比:Lora与适配器调整的主要区别在于:
- 四、前缀调整(Prefix Tuning)
- 五、提示调整(Prompt Tuning)
- 六、P-Tuning
- 七、P-Tuning v2
- 总结
前言
常见的大模型微调的方法包括Lora、OLora、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)、提示调整(Prompt Tuning)、P-Tuning、P-Tuning v2。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Lora
Lora(Low-Rank Adaptation)是一种旨在微调大型预训练语言模型的技术。
其核心理念在于,在模型的决定性层次中引入小型、低秩的矩阵来实现模型行为的微调,而无需对整个模型结构进行大幅度修改。
这种方法的优势在于,在不显著增加额外计算负担的前提下能够有效地微调模型,同时保留模型原有的性能水准。
Lora的操作流程如下:
- 确定微调目标权重矩阵:首先在大型模型中识别出需要微调的权重矩阵,这些矩阵一般位于模型的多头自注意力和前馈神经网络部分。
- 引入两个低秩矩阵:然后,引入两个维度较小的低秩矩阵A和B。假设原始权重矩阵的尺寸为dd,则A和B的尺寸可能为dr和r*d,其中r远小于d。
- 计算低秩更新:通过这两个低秩矩阵的乘积AB来生成一个新矩阵,其中秩(即r)远小于原始权重矩阵的秩。这个乘积实际上是对原始权重矩阵的一种低秩近似调整。
- 结合原始权重:最终,新生成的低秩矩阵AB被叠加到原始权重矩阵上。因此,原始权重经过微调,但大部分权重维持不变。这个过程可以用数学表达式描述为:新权重=原始权重+AB。
二、QLora
OLora(QuantizedLow-RankAdaptation)是一种结合了Lora(Low-RankAdaptation)方法与深度量化技术的高效模型微调技术。