Skip to main content

准备微调

学习目标

完成本单元后,您将能够:

  • 说明微调的数据集准备。
  • 对微调过程进行高层次的描述。

准备数据集

第一步涉及准备特定于任务的数据集以进行微调。这可能包括数据清理、文本规范化以及将数据转换为与 LLM 的输入要求(即数据标记)兼容的格式。必须确保数据能够代表任务和领域,并且涵盖模型在生产中可能会遇到的一系列方案。以下介绍了如何让数据集准备好进行微调。

数据收集

为特定领域或任务积累相关数据。这可能涉及收集用户交互或使用特定领域的数据。

数据清理

删除不相关的数据,纠正错误以及可能匿名化处理的敏感信息。

数据集拆分

将数据划分为训练集、验证集和测试集。模型在训练集上训练,使用验证集调整超参数,然后在测试集上评估性能。

配置模型

选择合适的基础模型和微调方法取决于具体任务和可用数据。有多种 LLM 架构可供选择,包括 GPT-3.5 Turbo、BERT 和 RoBERTa,每种架构都有自己优缺点。微调方法也可以根据任务和数据而有所不同,例如迁移学习、顺序微调或特定于任务的微调。

模型选择

选择基本模型时,考虑以下事项。

  • 该模型是否适合您的特定任务
  • 模型的输入和输出大小
  • 数据集大小
  • 技术基础设施是否适合微调所需的计算能力

架构选择

根据任务调整某些组件,例如分类任务的最后一层。请注意,核心模型架构将保持不变。

超级参数选择

确定学习速率、批处理大小、周期数和正则参数的值。有时,较小的学习速率是首选,因为激进的更新可能会使模型忘记其预训练知识。

微调模型

选择 LLM 和微调方法后,需要将预训练模型加载到内存中。此步骤根据预训练值初始化模型的权重,从而加快微调进程并确保模型已经学会了一般语言理解。

使用预训练权重进行初始化

从预训练模型的权重开始。这是迁移学习的本质,即利用以前培训学习的知识。

适应性学习

在某些高级方案中,可以采用针对不同层调整学习速率的技术。例如,与后面的层相比,较早的层(捕获常规特征)的学习速率可能会更小。

规则化

暂退法、权重衰减或图层归一化等技术对于防止过度拟合至关重要,尤其是当微调数据集相对较小时。

监测和评估模型

此步骤涉及在特定于任务的数据集上训练预训练的 LLM。训练过程包括优化模型的权重和参数,以最小化损失函数并提高其任务性能。微调过程可能涉及对训练集进行多轮训练、对验证集进行验证以及优化模型性能的超参数优化。

跟踪损失和度量

在训练期间持续监测训练集和验证集的损失。这有助于检测训练中的过拟合或问题。

提早停止

如果验证集上的性能开始下降(即使训练集性能正在提高),则停止训练,这是过度拟合的迹象。这有助于防止模型与训练数据过于接近。

评估度量

使用适当的度量(如准确性、F1 分数、BLEU 分数)来衡量模型在测试集上的性能。使用的度量取决于正在执行的任务,例如分类、回归、生成等。

微调后调整

微调完成后,需要在测试集上评估模型的性能。此步骤有助于确保模型能够很好地归纳新数据,并在特定任务上表现良好。用于评估的常用度量包括准确性、精确度和召回率。

校准

调整模型的输出以更好地反映真实概率。有时,微调模型可能对其预测过于自信或缺乏自信

反馈环路

设置一个系统,最终用户可以在其中提供有关模型输出的反馈。这些反馈可用于下一轮的微调,从而实现持续改进。

部署模型

对微调后的模型进行评估后,可以将其部署到生产环境中。部署过程可能涉及将模型集成到更大的系统中、设置必要的基础设施以及监测模型在实际场景中的性能。

模型大小

考虑在微调后进行模型蒸馏或修剪,以在不严重影响性能的情况下减小模型大小。可根据模型的部署位置(例如边缘设备、Web 服务器等)而更改。

总结

虽然微调的概念听起来很简单,但在实践中,它涉及一系列经过深思熟虑的步骤和决策。从数据准备到部署,每个阶段都会显著影响模型在目标域或任务中的有效性和效率。

在 Salesforce 帮助中分享 Trailhead 反馈

我们很想听听您使用 Trailhead 的经验——您现在可以随时从 Salesforce 帮助网站访问新的反馈表单。

了解更多 继续分享反馈