ai
  • outline
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 1. 面试问题
  • 2. 参考答案
    • 2.1 微调策略概述
    • 2.2 全量微调 (Full Fine-Tuning)
      • 3. 参数高效微调 (Parameter-Efficient Fine-Tuning, PEFT)
      • 2.3.1 Adapter 微调
      • 2.3.2 LoRA (Low-Rank Adaptation)
      • 2.3.3 Prefix Tuning
      • 2.3.4 Prompt Tuning
      • 2.3.5 BitFit
    • 2.4 总结与选择考量

1. 面试问题 #

请详细阐述大模型微调(Fine-tuning)的常见策略,并对比分析它们各自的优缺点、核心原理及适用场景。

2. 参考答案 #

2.1 微调策略概述 #

在大型语言模型(LLM)的应用中,为了使预训练模型更好地适应特定下游任务,我们需要进行微调。当前主流的微调策略主要分为两大类:全量微调(Full Fine-Tuning) 和 参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)。

  • 全量微调:对模型的所有参数进行训练,通常能获得最高精度,但计算和部署成本极高,且易出现过拟合和灾难性遗忘。
  • 参数高效微调(PEFT):通过只更新少量参数(如Adapter、LoRA、Prefix Tuning、Prompt Tuning、BitFit等),显著降低计算和存储开销,同时在大多数下游任务上能接近全量微调的效果。然而,PEFT方法在性能峰值、稳定性或使用便捷性方面可能存在局限。

2.2 全量微调 (Full Fine-Tuning) #

核心原理:在下游任务数据上解冻并训练模型的所有参数,以最大程度地适配任务需求。

优势:

  • 最优性能:模型对任务的每个特征都有完全控制,通常能够获得最优的性能表现
  • 全面适应:能够使模型全面适应特定任务或领域的需求

劣势:

  • 资源消耗大:需要巨大的计算资源(GPU显存)和存储空间
  • 训练时间长:训练过程耗时较长
  • 易过拟合与灾难性遗忘:尤其在数据量不足时,极易出现过拟合和对通用知识的灾难性遗忘
  • 部署成本高:每个任务可能需要部署一个完整的微调模型副本

适用场景:

  • 数据量充足(数万到数十万样本)
  • 计算资源充足
  • 对性能要求极高,追求极致效果
  • 有充足的训练时间

3. 参数高效微调 (Parameter-Efficient Fine-Tuning, PEFT) #

PEFT方法通过冻结大部分预训练模型权重,仅训练少量附加参数或模块,从而显著降低微调成本。

2.3.1 Adapter 微调 #

核心原理:在Transformer模型的各层之间插入轻量级的Adapter模块,仅训练这些新加的模块,而保持原模型参数冻结。

优势:

  • 参数量大幅减少:显著降低可训练参数量
  • 节省资源:节省存储与计算资源
  • 高效复用:可以在多个任务之间高效复用同一个基础模型

劣势:

  • 推理延迟:推理时需要额外计算Adapter模块,略微增加延迟
  • 性能局限:在一些复杂任务上,性能可能略低于全量微调

适用场景:

  • 资源受限,需要节省计算和存储开销
  • 需要在一个基础模型上支持多个下游任务,实现模型复用

2.3.2 LoRA (Low-Rank Adaptation) #

核心原理:将模型参数的更新表示为两个低秩矩阵的乘积,仅训练这两个低秩矩阵,其他参数保持冻结。

优势:

  • 极低参数量:可将可训练参数量降低到几百万甚至几十万,存储开销仅需几MB
  • 性能接近全量微调:在许多任务上,性能通常接近全量微调
  • 高效部署:微调后的权重可以与原模型权重合并,推理时无额外延迟

劣势:

  • 适应能力限制:对于需要更细粒度或高维调整的任务,低秩假设可能限制模型的适应能力
  • 性能稳定性:可能导致性能不够稳定

扩展知识:

  • QLoRA (Quantized LoRA):在LoRA基础上采用4位量化,结合双量化和分页优化器,可在48GB GPU上微调65B参数模型,同时保持接近16位全精度微调的性能
  • ALLORA (Adaptive Learning Rate LoRA):通过去除Dropout、取消缩放因子并引入自适应学习率机制,解决了LoRA在短训练周期下收敛慢和过度正则化的问题,显著提升微调效果并简化超参数设置

适用场景:

  • 对存储和计算资源有严格限制
  • 需要快速迭代和部署多个任务模型
  • 任务对模型适应性要求较高,但不需要极致的细粒度调整

2.3.3 Prefix Tuning #

核心原理:在模型输入端前置一段可训练的连续向量前缀,通过仅训练这些前缀参数来引导模型生成行为,而保持主体参数冻结。

优势:

  • 超低参数量:可训练参数量极少
  • 快速切换任务:能够在同一个基础模型上实现多任务混合推理,无需维护多个模型副本

劣势:

  • 敏感性:对前缀长度、位置和初始化敏感
  • 调参复杂:不同任务往往需要大量调参
  • 上下文长度限制:可能减少模型的可用上下文长度

适用场景:

  • 需要在一个模型上处理多个相关任务
  • 对参数量和模型副本数量有严格限制

2.3.4 Prompt Tuning #

核心原理:学习一组可训练的离散或连续提示词(prompt tokens),将其作为输入前缀,无需更新模型主体参数即可定制下游任务。

优势:

  • 少样本表现突出:在少样本(few-shot)场景下表现良好
  • 极少参数:仅需极少参数即可取得良好效果
  • 快速切换任务:可快速切换任务

劣势:

  • 高度依赖提示设计:对提示词的设计高度依赖
  • 实验成本高:提示长度与内容选择往往需要反复实验,容易陷入局部最优
  • 性能局限:在大规模数据集或复杂任务上,效果可能逊色于其他PEFT方法

适用场景:

  • 少样本学习任务
  • 对模型参数更新有严格限制,追求极简微调

2.3.5 BitFit #

核心原理:一种极度简单的参数高效微调方法,仅对模型中的偏置项(bias terms)进行微调,其他所有参数全部冻结。

优势:

  • 几乎不增加开销:几乎不增加存储和计算开销
  • 小中等数据集表现良好:在小到中等规模数据集上,性能与全量微调相当,有时甚至略优

劣势:

  • 可训练参数过少:可训练参数量极少,限制了模型的适应能力
  • 复杂任务性能不足:对于需要更复杂参数变换的大模型或大规模数据集,其性能常显不足,难以满足高精度需求

适用场景:

  • 对资源限制极其严格
  • 任务相对简单,不需要复杂的特征变换
  • 小到中等规模数据集

2.4 总结与选择考量 #

在实际项目运用中,各种PEFT方法可以根据硬件条件和任务需求进行灵活组合与选用。例如,Hugging Face的PEFT库已集成Adapter、LoRA、Prefix Tuning、Prompt Tuning和IA3等多种策略,用户只需几行代码即可切换不同方法并结合Accelerate实现大规模分布式微调。

选择合适的微调策略需要综合考虑以下因素:

  • 任务复杂度:任务越复杂,可能需要更强的模型适应能力(如全量微调或LoRA)
  • 数据量:数据量越少,PEFT方法(尤其是Prompt Tuning)的优势越明显,同时也能避免全量微调的过拟合风险
  • 计算资源与存储:资源越有限,PEFT方法(如LoRA、BitFit)越具吸引力
  • 推理延迟要求:对推理延迟敏感的场景,LoRA合并权重后的零延迟优势突出
  • 模型复用性:需要在多个任务间复用基础模型的场景,Adapter和Prefix Tuning表现良好
  • 性能要求:追求极致性能可能仍需考虑全量微调,但在多数场景下PEFT已能满足需求

未来研究还在探索如何通过量化感知初始化(如QuAILORA)或激活稀疏化(如DEFT)来进一步降低资源消耗并提升性能稳定性,为大模型在更广泛的生产环境中落地提供了更多可能性。

访问验证

请输入访问令牌

Token不正确,请重新输入