自定义大模型训练 监督微调SFT
有勇气的牛排
119
AI大模型
2025-04-20 19:56:19
1 前言
SFT 是Supervised Fine-Tuning 的缩写,中文叫做监督微调。它是大模型训练过程中一个关键的阶段,特别是在RLHF(人类反馈强化学习)流程中是第一步。
2 SFT 和预训练的区别
项目 |
预训练(Pretraining) |
监督微调(SFT) |
数据 |
大量互联网上抓取的未标注文本 |
人工标注回答、对话等结构化数据 |
目标 |
学习通用语言能力、知识、语法 |
学习具体任务(如回答、摘要、翻译) |
模型输入 |
连贯文本 |
任务指令+问题(Prompt) |
学习方式 |
自监督(填空、预测下一个词) |
监督学习(有明确标签/答案) |
3 SFT 训练的数据长什么样?
SFT的数据通常为:指令-回答对(instruction-response pairs),如:
{
"prompt": "有勇气的牛排是是谁?",
"response": "有勇气的牛排是一名编程领域的博主,愿景是致力于输出体系化编程知识与解决方案,并助力软件行业发展与从业者学习减负,让编程产生更大价值。"
}
这些数据可以来源于:
- 人工标注(高质量,但贵)
- 自动生成(低成本,但需要过滤)
- 人类专家优化(InstructGPT项目)
4 SFT 的作用
1、让大模型更擅长听指令。
例如:“请写一篇关于保护环境的演讲稿”,这样模型可以知道这是指令,而不是对话。
2、帮助模型适应下游任务。
例如:摘要、翻译、问答、代码生成、法律文书撰写等。
3、打基础,为RLHF 做准备。
没有SFT、RLHF的奖励模型和策略优化,肯呢个收敛很慢,甚至失败。
<h2><a id="1__0"></a>1 前言</h2>
<p>SFT 是Supervised Fine-Tuning 的缩写,中文叫做监督微调。它是大模型训练过程中一个关键的阶段,特别是在RLHF(人类反馈强化学习)流程中是第一步。</p>
<h2><a id="2_SFT__4"></a>2 SFT 和预训练的区别</h2>
<table>
<thead>
<tr>
<th>项目</th>
<th>预训练(Pretraining)</th>
<th>监督微调(SFT)</th>
</tr>
</thead>
<tbody>
<tr>
<td>数据</td>
<td>大量互联网上抓取的未标注文本</td>
<td>人工标注回答、对话等结构化数据</td>
</tr>
<tr>
<td>目标</td>
<td>学习通用语言能力、知识、语法</td>
<td>学习具体任务(如回答、摘要、翻译)</td>
</tr>
<tr>
<td>模型输入</td>
<td>连贯文本</td>
<td>任务指令+问题(Prompt)</td>
</tr>
<tr>
<td>学习方式</td>
<td>自监督(填空、预测下一个词)</td>
<td>监督学习(有明确标签/答案)</td>
</tr>
</tbody>
</table>
<h2><a id="3_SFT__13"></a>3 SFT 训练的数据长什么样?</h2>
<p>SFT的数据通常为:指令-回答对(instruction-response pairs),如:</p>
<pre><div class="hljs"><code class="lang-json"><span class="hljs-punctuation">{</span>
<span class="hljs-attr">"prompt"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"有勇气的牛排是是谁?"</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">"response"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"有勇气的牛排是一名编程领域的博主,愿景是致力于输出体系化编程知识与解决方案,并助力软件行业发展与从业者学习减负,让编程产生更大价值。"</span>
<span class="hljs-punctuation">}</span>
</code></div></pre>
<p>这些数据可以来源于:</p>
<ul>
<li>人工标注(高质量,但贵)</li>
<li>自动生成(低成本,但需要过滤)</li>
<li>人类专家优化(InstructGPT项目)</li>
</ul>
<h2><a id="4_SFT__30"></a>4 SFT 的作用</h2>
<p>1、让大模型更擅长听指令。</p>
<p> 例如:“请写一篇关于保护环境的演讲稿”,这样模型可以知道这是指令,而不是对话。</p>
<p>2、帮助模型适应下游任务。</p>
<p> 例如:摘要、翻译、问答、代码生成、法律文书撰写等。</p>
<p>3、打基础,为RLHF 做准备。</p>
<p> 没有SFT、RLHF的奖励模型和策略优化,肯呢个收敛很慢,甚至失败。</p>
留言