第 3 章 微调整体流程
微调整体流程可以分为以下多个环节:
模型选择-> 数据准备 -> 微调训练 -> 模型验证
3.1 模型选择
在进行监督微调(SFT)时,模型选择主要包括两个问题:选择 Base Model 还是 Instruct Model,以及选择多大规模的模型。
对于绝大多数应用场景,通常建议优先选择 Instruct Model 作为微调起点。Instruct Model 已经在 Base Model 的基础上经过指令微调、偏好对齐等后训练流程,具备较好的指令理解和对话能力,因此可以降低数据准备和训练难度,更适合客服问答、内容生成、结构化输出、多轮对话等常见任务。Base Model 则更适合高度定制化场景,例如任务形式非常特殊,或团队拥有大量高质量领域数据,希望从基础模型状态开始进行深度适配。
在模型规模方面,参数量越大的模型通常能力越强,但显存占用、训练成本和推理成本也更高。因此模型并不是越大越好,而应根据任务复杂度、硬件资源、响应速度和部署成本综合选择。实践中可以先从成本可控的中小规模 Instruct Model 开始验证,再根据效果决定是否扩大模型规模。
常见任务及可选择的模型类型参考:
- 意图识别、文本分类等:Instruct Model,1B-7B;
- 智能客服FAQ/工单辅助:Instruct Model,7B-14B;
- 企业知识库问答/RAG:Instruct Model,7B-14B起步,复杂场景14B-32B;
- NL2SQL/自然语言转SQL:Instruct Model,简单场景7B-14B,复杂场景14B-32B;
- 本地轻量部署、边缘设备:Instruct Model,0.5B-4B。
注意:上述只作为初始选型参考,最终仍应通过任务评测确定。对于多数业务微调项目,可以先选择 7B/8B 或 14B 级别的 Instruct Model 做基线实验;如果评测发现复杂推理、长上下文理解或结构化输出稳定性不足,再考虑升级到 32B 或更大模型。
3.2 数据准备
数据准备是微调流程中的基础环节,主要目标是根据任务需求构建高质量训练数据。数据来源通常包括公共数据源和私有数据源:前者来自 HuggingFace、ModelScope 等社区或平台,后者来自企业内部文档、客户反馈、业务数据库等。由于原始数据通常不能直接用于训练,实际使用前还需要经过筛选、清洗、结构化、标注和格式转换等处理,使其形成适合模型学习的训练样本。后续章节将进一步介绍常见数据来源、数据格式以及具体的数据处理方法。
3.3 微调训练
在微调整体流程中,训练阶段是模型真正根据任务数据进行调整的环节。我们会把准备好的训练数据送入模型,让模型先尝试给出输出,再将它的输出与目标答案进行比较,并根据差距不断调整模型参数。这个过程会重复一轮或多轮,使模型逐渐适应当前任务的数据格式、回答风格或领域知识。
对于大语言模型来说,由于模型规模较大,训练阶段往往还会遇到显存占用高、训练速度慢、训练成本高等工程问题。因此在实际训练时,需要根据硬件条件和任务需求,选择合适的训练方式和优化方案,例如全参数微调、LoRA、QLoRA等。
3.4 模型验证
在模型完成微调后,需要通过验证环节评估模型是否真正学到了目标任务能力。模型验证不仅要关注训练损失是否下降,还要结合验证集指标、样例推理结果以及实际任务效果,综合判断模型的泛化能力、稳定性和可用性。
通过模型验证,可以发现过拟合、指令跟随能力不足、回答质量不稳定等问题,并为后续的数据优化、参数调整和训练策略改进提供依据。