微调黑话大揭秘:老司机必备的行话指南

0 阅读7分钟

大模型微调领域充斥着各种专业术语,对于初学者来说,这些术语往往令人困惑。什么是一阶导数,什么是秩分解,什么是KL散度?这些概念不理解透彻,很难真正掌握微调技术的精髓。本文将系统介绍大模型微调中最常见的术语,帮助你建立完整的知识体系,让你在与同行交流时不再一脸茫然。

预训练(Pre-training)是最基础的概念,也是整个大模型训练的起点。预训练是指在大规模无标注数据上训练模型,让模型学习语言的统计规律和基础知识。预训练模型已经具备了基本的语言理解和生成能力,但还没有针对特定任务进行优化。预训练通常需要海量的数据和强大的计算资源,是构建大模型的第一步,也是最烧钱的一步。理解了预训练,就理解了大模型能力的来源。

微调(Fine-tuning)是相对于预训练的概念,指的是在特定任务的数据上继续训练已经预训练好的模型,让模型适应特定任务的需求。微调需要的资源远少于预训练,但效果却可能非常显著。微调的本质是让通用模型变成专用模型的过程,就像给一个大学生进行职业培训,让他从通才变成专才。微调是大模型应用的关键环节。
becc42c358223d7be026c7a0eefe2957.jpg

全参数微调(Full Fine-tuning)是指对模型的所有参数进行更新。这种方法可以充分挖掘模型的潜力,但需要大量的计算资源和显存。全参数微调的效果通常是最好的,但成本也是最高的。对于超大规模的模型,全参数微调可能需要分布式训练的支持,涉及模型并行、数据并行等多种技术。全参数微调适合资源充裕且追求最佳效果的场景。

参数高效微调(Parameter-Efficient Fine-tuning,PEFT)是一类方法的统称,旨在用较少的参数完成微调任务。PEFT的核心理念是:既然预训练模型已经学到了大部分知识,微调阶段只需要学习少量任务特定的信息。LoRA、Adapter、Prefix Tuning等都是PEFT的典型代表。PEFT让普通开发者也能在大模型上做微调,大大降低了大模型应用的门槛。

LoRA(Low-Rank Adaptation)是目前最流行的PEFT方法之一,在微调界几乎无人不知。LoRA的原理是在模型的权重矩阵旁添加低秩分解矩阵,通过训练这些小矩阵来适应新任务。相比全参数微调,LoRA可以减少99%以上的参数量,效果却能达到全参数的90%左右。这种极高的参数效率让LoRA成为微调大模型的首选方法,也是目前工业界和学术界使用最广泛的微调技术。
c0fed0042dc733f0bf69b8377ccfb217.jpg

QLoRA是LoRA的增强版本,它结合了量化技术来进一步降低显存需求。QLoRA将模型量化为4位精度,然后再应用LoRA进行微调。这种方法使得在消费级显卡上微调70B参数的大模型成为可能。QLoRA的出现大大降低了大模型微调的门槛,让更多人能够参与到微调实践中来。QLoRA是量化与微调结合的典范之作。

Adapter是一类插入到模型层之间的轻量级模块,设计颇为巧妙。Adapter通常采用"压缩-恢复"的结构,先将特征压缩到低维空间,再恢复回原始维度。这种设计让模型能够学习任务特定的信息,同时不显著增加推理时的计算量。Adapter的效果不如LoRA,但推理延迟更低,适合对响应速度有严格要求的应用场景。

Prefix Tuning是在Transformer的每层前面添加可学习的虚拟token序列。这些虚拟token作为任务的"提示",引导模型生成与任务相关的输出。Prefix Tuning不需要修改原始模型的权重,只需要训练虚拟token的参数。缺点是推理时仍然需要额外的计算来处理虚拟token,会增加一定的延迟。Prefix Tuning的思路与提示工程有异曲同工之妙。
cca34473ddac76d3ad3d9a0ed9012dd3.jpg

学习率(Learning Rate)是训练中最重要的超参数之一,直接决定了模型学习的速度和质量。学习率决定了参数更新的步长大小。学习率过大可能导致训练不稳定,学习率过小则收敛太慢。微调时的学习率通常比预训练低,因为模型已经具备一定的基础能力,需要更精细的调整。选择合适的学习率是微调成功的重要因素。

Warmup是指在训练初期逐步增加学习率的技术。Warmup可以帮助模型在训练初期稳定收敛,避免一开始就进行过大的参数更新。常用的warmup策略包括线性warmup、余弦warmup等。Warmup的步数通常是总训练步数的1%到10%。合理的warmup设置能够让训练过程更加平稳。

Batch Size是指每次训练迭代中使用的样本数量,对训练效率和模型质量都有影响。较大的batch size可以提供更稳定的梯度估计,但需要更多的显存。微调时的batch size选择需要在训练稳定性和资源消耗之间权衡。Gradient Accumulation技术可以在有限显存下模拟更大的batch size,是解决显存不足的常用技巧。
d87d77c22f0f52a3ff7d3ee5bfc7d193.jpg

Epoch是指遍历整个训练数据集一次,衡量训练轮数的基本单位。一个完整的epoch意味着模型已经学习了数据集中的所有样本。训练通常需要多个epoch,但过多的epoch可能导致过拟合。早停机制可以在验证集性能开始下降时停止训练,避免过拟合,是防止模型"学过头"的有效手段。

过拟合(Overfitting)是机器学习中的常见问题,也是微调时需要特别警惕的风险。过拟合是指模型在训练集上表现很好,但在测试集上表现变差。这说明模型"记住"了训练数据,而非学习到通用的规律。防止过拟合的方法包括增加数据量、使用正则化、早停等。监控训练集和验证集的性能差异是发现过拟合的关键。

验证集(Validation Set)用于在训练过程中评估模型性能,是调参的指南针。通过监控验证集上的指标,可以判断模型是否过拟合,以及是否需要调整超参数。验证集应该与训练集独立,同一数据点不应同时出现在训练集和验证集中。合理使用验证集能够帮助你找到最佳的模型配置。
4cd9c56bc8035130ad1e7767aaaac679.jpg

测试集(Test Set)用于最终评估训练好的模型,是检验模型真本事的地方。测试集应该尽可能模拟实际应用场景,数据分布应该与训练数据有所不同。测试集的结果反映了模型的泛化能力,是评估模型性能的最重要指标。只有在测试集上表现良好,才能说明模型真正学到了东西。

理解了这些基本概念,你就建立起了大模型微调的完整知识框架。这些术语贯穿于微调的全过程,理解它们的含义和作用,对于更好地开展微调工作至关重要。如果你想进一步深入学习微调技术,LLaMA-Factory Online这类平台提供了丰富的实践机会。