# SFT (Supervised Fine-Tuning) 监督微调
## 什么是SFT?
**SFT(Supervised Fine-Tuning)** 是将预训练模型转化为实用AI助手的关键步骤。
通过有监督微调,教会模型如何使用知识,获得理解并回复用户指令的能力。
## 从预训练到SFT的转换
### 预训练阶段
模型像博览群书但不求甚解的书生,只会死板背书。
- 预测下一个token
- 海量知识但无法与用户指令适配
### SFT转换
通过有监督微调,教会模型如何使用知识。
- 指令微调训练模型的通用指令遵循能力
### 指令理解
模型获得理解并回复用户指令的能力。
- 能够根据用户意图提供准确、有用的回复
### 目标达成
成为真正实用的AI助手。
- 在多种任务上表现优秀的智能助手
## SFT 微调类型
### 1. 指令微调
**训练模型理解和遵循各种用户指令**
示例:
- 指令:将下列文本翻译成英文:
- 输入:今天天气真好
- 输出:Today is a nice day!
应用场景:智能教育、智能办公、智能翻译、数据分析
### 2. 对话微调
**通过多轮对话数据训练模型生成连贯回复**
示例:
```
用户:今天天气怎么样?
助手:北京今日多云转晴,气温 22℃
用户:那适合去长城吗?
助手:适合,建议携带外套注意防晒
```
应用场景:智能客服、聊天机器人、语音助手
### 3. 领域适配
**让模型适应特定领域的专业任务**
示例:
- 指令:分析患者症状
- 输入:55岁男性,胸骨后疼痛3小时
- 输出:可能诊断:急性心肌梗死,建议立即检查
应用场景:医疗诊断、法律咨询、金融分析
### 4. 文本分类
**训练模型对文本进行准确的类别预测**
示例:
- 文本:这款手机续航48小时,拍照惊艳
- 标签:positive
应用场景:情感分析、内容审核、新闻分类、意图识别
## SFT 核心原理
### 从CLM到指令理解的转换
SFT本质上仍是CLM任务,但通过特定格式让模型学会指令理解。
- **预训练阶段**:模型学会预测下一个token,具备语言理解基础
- **SFT阶段**:通过instruction+input+output格式,引导模型理解任务意图
- **Loss计算**:只对output部分计算损失,input部分用于上下文理解
### 多轮对话的技术实现
通过巧妙的数据构造让模型具备上下文记忆能力。
- **数据格式**:<prompt1><completion1><prompt2><completion2>...
- **Mask策略**:只对assistant回复部分计算loss,保留对话历史
- **注意力机制**:单向注意力确保不会泄露未来信息
### SFT vs 传统微调
从任务特定微调到通用指令遵循能力的转变。
- **传统微调**:每个任务单独训练,如BERT分类、NER等
- **SFT**:训练通用指令遵循能力,一个模型处理多种任务
- **泛化能力**:SFT模型能处理训练时未见过的新指令类型
## 数据质量与配比
### 高质量数据的特征
- 指令清晰明确:避免歧义,确保任务目标清楚
- 回复质量高:准确、有用、符合人类偏好
- 格式规范:统一的数据格式和特殊token使用
- 多样性丰富:覆盖不同领域、难度、风格的任务
### 数据规模与效果关系
- 单任务:500-1000样本可获得不错效果
- 通用能力:需要数B token规模的多任务数据
- 边际效应:数据量达到一定规模后收益递减
- 质量优于数量:高质量小数据集 > 低质量大数据集
## 最佳实践
### 训练策略优化
- 学习率调整:通常比预训练更小的学习率(1e-5到5e-5)
- 训练轮次:避免过拟合,通常1-3个epoch
- 梯度裁剪:防止训练不稳定,限制梯度范数
- 权重衰减:适当的正则化防止过拟合
### 数据构造技巧
- Prompt工程:使用清晰的指令模板
- 负样本构造:包含一些错误示例帮助模型学习边界
- 难度递进:从简单到复杂的训练样本排列
- 格式统一:保持一致的输入输出格式
## 评估方法
### 自动化评估指标
- BLEU/ROUGE:评估生成文本与参考答案的相似度
- Perplexity:衡量模型对测试数据的预测能力
- 任务特定指标:准确率、F1分数等
- BERTScore:基于语义的文本质量评估
### 人工评估维度
- 有用性:回答是否解决了用户问题
- 准确性:信息是否正确无误
- 相关性:回复是否切题
- 流畅性:语言表达是否自然
- 安全性:是否包含有害内容
---
来源:Easy AI 学习平台 | 本教程为AI知识普及而制作
#EasyAI #AI教学 #教程 #SFT #监督微调
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!