当前位置: 首页 > news >正文

语言模型监督式微调(SFT)概述

一、SFT流程简述

        监督式微调是一种把通用语言模型转化为特定类型模型的方法,其旨在使用提示-响应对数据,对语言模型进行再次训练,以达到我们预期的效果。其流程简述为以下四步:

1. 预先训练语言模型

        先在庞大数据集上训练出一个泛用型的语言模型,也可以从模型网站Hugging Face上下载已训练好的模型。

2. 准备数据集

        从模型需要完成的任务或者做出的行为出发,寻找相关领域的提示-响应对或者助手回复的提示-响应对。

3. 进行SFT训练

        将模型在数据集上进行监督式微调处理,即通过最小化响应的交叉熵损失来进行训练。

4. 进行模型评估

        将训练好的模型进行系统评估,以判断是否达到期望标准。

        以上的损失函数公式本质上是在最大化给定提示i下所有响应token的联合概率分布,如果模型输出偏离响应标签会增大熵,因此SFT实际上是在教会模型“模仿”,这好比一个在大学学习的学生,学的东西泛而浅,他出来工作时需要学习公司的办事方式和沟通表达等等。

二、SFT的最佳使用场景

1. 激发模型新的行为

  • 将预训练的没有固定格式的模型变为能遵守指令的模型
  • 让不具备推理能力的模型具备基本的推理能力
  • 让模型在没有明说的情况下默认使用某个工具

2. 提示模型能力

  • 通过大模型生成高质量数据,通过“模型蒸馏”方式转移到我们的模型中

三、SFT 数据策划原则

在 SFT(监督微调)过程中,数据质量是决定最终效果的核心变量,其影响力远超数据数量。高质量、多场景的训练样本能引导模型学习合规且高效的输出模式,而低质量样本则会导致模型习得错误逻辑或不当表达,形成 “坏习惯”。

主流 SFT 数据构建策略

  1. 蒸馏策略:借助性能更优的指令模型生成高质量回复,再以这些回复为目标,训练参数规模更小的模型。该方法可有效将大模型的核心能力迁移至轻量模型,降低部署成本。
  2. Best-of-K / 拒绝采样:针对同一条输入提示,生成 K 个不同的候选回复。通过预设的奖励函数对这些候选进行打分,筛选出评分最高的回复作为训练样本,确保数据的优质性。
  3. 过滤策略:从大规模原始 SFT 数据集中,依据 “回复质量高” 和 “提示场景多样” 两个核心标准进行筛选,最终形成规模精简但质量过硬的训练数据集。

核心原则:质量优先于数量

SFT 的本质是让模型 “模仿所见数据”,这种模仿具有无差别性 —— 模型会同时学习数据中的优点与缺陷。因此,1000 条经过精心筛选、覆盖多类场景的优质样本,其训练效果通常优于 100 万条质量参差不齐的样本,前者能精准塑造模型行为,后者则可能引入大量噪声,拖累模型性能。

全参数微调与参数高效微调的对比

在进行 SFT(或其他模型对齐方法)时,核心决策之一是确定模型权重的更新方式:

  • 全参数微调:为模型每一层都配置完整的权重更新矩阵\(\Delta W\),即对所有参数进行调整。这种方式能带来显著的性能提升,但相应地需要庞大的存储资源和计算能力支持。

  • 参数高效微调:以 LoRA(低秩适配)为例,其通过在每一层引入小型低秩矩阵 A 和 B 来实现参数调整。这种方法大幅减少了可训练参数的数量,有效节省显存空间,但存在局限性 —— 由于更新的参数规模较小,模型的学习能力和遗忘能力都会受到一定限制。

这两种微调策略可与任何训练方法结合使用。实际应用中,可根据资源约束和性能需求选择:追求极致性能且资源充足时可选全参数微调;硬件条件有限时,参数高效微调则成为更受欢迎的选择。

总结

监督式微调是语言模型对齐过程中的基础且重要的方法。其核心原理是通过最小化目标回复的负对数似然,使模型学会模仿预期行为,并能针对提示做出恰当回应。

SFT 的优势在于:特别适合启动新行为,以及实现从大模型向小模型的能力 "蒸馏"。

但需重点注意:数据质量对 SFT 效果起决定性作用 —— 采用蒸馏、拒绝采样、过滤等策略处理的数据,其训练效果远胜于简单堆砌大量普通数据。

而全参数微调与参数高效微调的选择,本质上是在性能表现与资源消耗之间寻找平衡。

以上来源DataWhale的打卡学习活动,学习内容来自:https://github.com/datawhalechina/Post-training-of-LLMs/tree/main/docs/chapter1

http://www.dtcms.com/a/481825.html

相关文章:

  • 又开始了 小程序定制
  • 前端面试-箭头函数
  • 翻译类公司网站模板node做网站后台
  • 2018做网站哪里可以做寄生虫网站
  • 腾讯云的游戏盾怎么样
  • C++函数完全指南:从基础到高级应用
  • 国自然申报·医工交叉热点|单细胞多模态融合破解病理研究痛点
  • html情人节给女朋友做网站WordPress在手机能更新
  • springboot餐厅信息管理系统设计(代码+数据库+LW)
  • Jenkins Share Library教程 —— 高级实战与最佳实践教程
  • Blender图片AI智能一键生成3D模型插件 Pixelmodeller Ai V1.4.9
  • CAA机器学习
  • LeetCode hot100:128 最长连续序列:高效求解
  • 上海网站制作 优化wordpress 去除google
  • [Backstage] 软件模板Scaffolder | 定义“Node.js微服务“
  • 链表操作教学工具
  • 珠海市网站建设的公司网站安全维护
  • PC端AI推理存储IO流量剖析
  • 如何在AutoCAD中管理GIS属性表?
  • 消防模块-图形识别快速匹配
  • 备案网站名怎么写前端微信小程序开发
  • 使用Spring Boot构建多维度配置层
  • vps 可以做多个网站吗沈阳营销网站建设
  • 上传文件相关业务,采用策略模式+模版方法模式进行动态解耦
  • Unity3d中Tab控件的实现
  • 桥梁主动防撞预警系统方案
  • 【node】运行windows7下的高版本node.js
  • 解密NLP:从入门到精通
  • 如何说课网站建设当地公交建设公司的官网
  • 哪里有网站开发服务器西安关键词排名提升