微调是指使用任务特有的数据集进一步训练经过预训练的大语言模型(迁移学习过程)。可以这样理解:预训练模型已经学习了很多一般信息,而微调有助于使它专精于特定领域。
微调和检索增强生成 (RAG) 是针对特定用途调整 LLM 的两种不同方法。选择正确的方法取决于任务类型、是否有足够的数据以及想要实现的目标等因素。
技术 | 主要区别 | 优势 | 挑战 |
微调 | 更改模型的参数。 | 准确率更高,更具体,幻觉更少,可定制互动,经济高效,偏见更少。 | 存在“灾难性遗忘”风险,资源成本较高,对数据的要求更高,可能发生“过拟合”。 |
RAG | 利用外部知识增强提示。 | 动态知识集成,上下文相关性,多功能性,对广泛训练的需求较少。 | 准确率有限(例如,RAG 只能参考它有权访问的数据,不根据训练进行推理),RAG 系统的维护较复杂,可能产生幻觉。 |
技术
主要区别
优势
挑战
微调
更改模型的参数。
准确率更高,更具体,幻觉更少,可定制互动,经济高效,偏见更少。
存在“灾难性遗忘”风险,资源成本较高,对数据的要求更高,可能发生“过拟合”。
RAG
利用外部知识增强提示。
动态知识集成,上下文相关性,多功能性,对广泛训练的需求较少。
准确率有限(例如,RAG 只能参考它有权访问的数据,不根据训练进行推理),RAG 系统的维护较复杂,可能产生幻觉。
当您希望 LLM 实现以下目标时,应考虑使用微调:
微调以经过预训练的大语言模型为基础。这些预训练模型已经从海量数据集中学习了大量通用知识。在微调过程中,模型会接触到较小的、任务特有的数据集,并且模型的内部参数(可以将它们视为控制模型知识的数百万个微小旋钮)会进行调整,以更好地匹配新数据集中的样本。这种“再训练”过程会平稳地更新模型的内部连接,使其成为新主题的专家。我们来将微调过程分解为几个实际步骤:
在开始微调之前,准备数据至关重要。数据的质量和结构直接影响微调模型的性能。此阶段涉及收集、清理、格式化数据,并将数据拆分为适当的训练集、验证集和测试集。
在微调时,您可以选择要调整的预训练模型参数量。选择哪种方法取决于数据集的大小、可用的计算资源以及所需的准确率等因素。主要有两种方法:全面微调和参数高效微调 (PEFT)。
在全面微调中,模型的所有参数都会在训练期间更新。当针对特定任务的数据集较大且与预训练数据有显著差异时,此方法比较适合。
参数高效微调提供了一种更智能、更高效的微调方法。PEFT 方法不会重新训练整个模型(速度慢且成本高),而是冻结原始 LLM 并添加新的可训练层。
可以这样理解:您不必重写一本 1,000 页的教科书,只需添加几页便签,写上新的专门信息即可。这显著提高了微调的速度,并减低了成本。常用的 PEFT 方法包括 LoRA(低秩适应)和 QLoRA(量化低秩适应),它们提供了一种更高效的 LLM 微调方法。
准备好数据并且选定方法后,就可以训练模型了。在此过程中,模型会从您的数据中学习,并调整其参数,以提高在特定任务中的性能。仔细监控和调整训练设置对于取得理想结果至关重要。
最后阶段涉及评估微调模型的性能,并部署模型以供实际使用。这需要评估其准确率和效率,然后将其集成到您的应用或系统中。您可能需要持续地监控和再训练,以长时间保持最佳性能。
根据您的目标和资源,有多种不同的模型微调方法:
类型 | 说明 | 使用场景 |
监督式微调 | 模型基于包含输入输出对的带标签数据集进行训练。 | 文本分类、命名实体识别、情感分析。 |
指令调优 | 模型基于指令和所需回答的数据集进行训练。 | 聊天机器人、问答系统、代码生成。 |
少量样本学习 | 在提示中向模型提供几个所需任务的示例。 | 在数据有限的情况下适应新任务。 |
迁移学习 | 模型利用在通用数据集上进行预训练所获得的知识。 | 适应相关任务。 |
领域特定微调 | 模型经过调整,适用于特定领域或行业。 | 法律文件分析、医疗报告生成、财务预测。 |
多任务学习 | 模型同时针对多个任务进行训练。 | 提升在相关任务中的性能。 |
顺序微调 | 模型分阶段适应一系列相关任务。 | 逐步优化处理复杂任务的能力。 |
类型
说明
使用场景
监督式微调
模型基于包含输入输出对的带标签数据集进行训练。
文本分类、命名实体识别、情感分析。
指令调优
模型基于指令和所需回答的数据集进行训练。
聊天机器人、问答系统、代码生成。
少量样本学习
在提示中向模型提供几个所需任务的示例。
在数据有限的情况下适应新任务。
迁移学习
模型利用在通用数据集上进行预训练所获得的知识。
适应相关任务。
领域特定微调
模型经过调整,适用于特定领域或行业。
法律文件分析、医疗报告生成、财务预测。
多任务学习
模型同时针对多个任务进行训练。
提升在相关任务中的性能。
顺序微调
模型分阶段适应一系列相关任务。
逐步优化处理复杂任务的能力。
为了充分利用微调,请遵循以下最佳实践:
微调具有以下几项潜在优势:
更高的准确率
它可以显著提高针对特定应用场景的模型输出的准确性和相关性,从而减少 AI 幻觉。
加快训练速度
与从头开始训练模型相比,微调速度更快,所需的数据更少。
性价比高
与训练新模型相比,它需要的算力和数据更少,因此更具成本效益。
自定义
通过微调,您可以自定义模型的行为,使其满足您的特定需求和目标。
更低的偏差
它能更好地控制模型的行为,从而降低生成有偏见或有争议内容的风险。
更大的上下文窗口
微调可用于扩大 LLM 的上下文窗口,使其能够处理和保留更多信息。
虽然微调有很多好处,但它也有一些需要注意的问题:
Google Cloud 提供强大的生态系统来支持您的模型微调工作,从统一的机器学习平台到加速复杂计算所需的专用硬件,应有尽有。无论您是自定义基础模型还是优化自己的模型,这些服务都能简化整个工作流。