
使用这些基本 REST API 最佳实践构建出色的 API
在生成式AI和大语言模型(如GPT、LLaMA)的广泛应用中,微调(Fine-tuning)作为模型适应特定任务的关键步骤,其重要性不言而喻。以下将详细介绍三种流行的微调方式:Prompt-tuning、Prefix-tuning和LoRA,深入理解每种方法的原理、特点及应用场景。
Fine-tuning
什么是Prompt-tuning?
Prompt-tuning通过修改输入文本的提示(Prompt)来引导模型生成符合特定任务或情境的输出,而无需对模型的全量参数进行微调。
这种方法利用了预训练语言模型(PLM)在零样本或少样本学习中的强大能力,通过修改输入提示来激活模型内部的相关知识和能力。
Prompt-tuning
Prompt-tuning核心原理:PLM(预训练模型)不变,W(模型的权重)不变,X(模型输入)改变。
Prompt-tuning
Prompt-tuning如何进行Prompt-tuning?小模型适配下游任务设计任务相关提示模板,并微调提示嵌入以引导预训练模型适应特定任务。仅需微调少量提示嵌入(Prompt Embeddings),而非整个模型参数。
Prompt-tuning
Prompt-tuning
什么是Prefix-tuning?
Prefix-tuning是Prompt-tuning的一种变体,它通过在输入文本前添加一段可学习的“前缀”来指导模型完成任务。
这个前缀与输入序列一起作为注意力机制的输入,从而影响模型对输入序列的理解和表示。由于前缀是可学习的,它可以在微调过程中根据特定任务进行调整,使得模型能够更好地适应新的领域或任务。
Prefix-tuning
Prefix-tuning核心原理:PLM(预训练模型)不变,W(模型的权重)不变,X(模型输入)不变,增加W’(前缀嵌入的权重)。
Prefix-tuning
如何进行Prefix-tuning?
在 Transformer 中适配下游任务
在Transformer模型的输入层或各层输入前添加可学习的前缀嵌入,并通过训练这些前缀嵌入来优化模型在特定任务上的表现。
Prefix-tuning
什么是LoRA?
LoRA(Low-Rank Adaptation)通过分解预训练模型中的部分权重矩阵为低秩矩阵,并仅微调这些低秩矩阵的少量参数来适应新任务。
对于预训练权重矩阵W0∈Rd×d𝑊0∈𝑅𝑑×𝑑,LoRa限制了其更新方式,即将全参微调的增量参数矩阵ΔWΔ𝑊表示为两个参数量更小的矩阵A、B,即ΔW = AB。
其中,B∈Rd×r𝐵∈𝑅𝑑×𝑟和A∈Rr×d𝐴∈𝑅𝑟×𝑑为LoRA低秩适应的权重矩阵,秩r𝑟远小于d𝑑。
LoRA
核心原理:W(模型的权重)不变,X(模型输入)不变,分解ΔW(分解为两个低秩矩阵A、B)。
LoRA
LoRA如何进行LoRA微调?
在冻结预训练模型权重的基础上,通过优化算法训练低秩矩阵A和B以近似增量参数,最小化下游任务损失,从而实现高效的模型微调。
LoRA
LoRALLaMA-Factory通过集成LoRA微调方法,为大型语言模型提供高效、低成本的微调方案,支持多模型、多算法和实时监控,仅训练低秩矩阵实现快速适应新任务。
LLaMA-FactoryLoRA参数主要包括秩(lora_rank,影响性能和训练时间)、缩放系数(lora_alpha,确保训练稳定)和Dropout系数(lora_dropout,防止过拟合),它们共同影响模型微调的效果和效率。
LLaMA-Factory
1. 秩(Rank)
lora_rank
2. 缩放系数(Alpha)
lora_alpha
3. Dropout系数
lora_dropout
LoRA
文章转自微信公众号@架构师带你玩转AI