|
 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">监督微调(Supervised Fine-Tuning, SFT)是一种通过使用特定任务的数据来微调预训练大模型的方法。我们不会平白无故的对一个大模型进行 SFT,一定是遇到的一些通用大模型解决不了的问题。那么以下是为什么要进行 SFT 的几个关键原因: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;padding-left: 1em;color: rgb(63, 63, 63);" class="list-paddingleft-1">1.提升特定任务的表现: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style-position: initial;list-style-image: initial;" class="list-paddingleft-1">•大模型在广泛数据上预训练,具备通用能力,但在特定任务上的表现可能不够理想。通过 SFT,可以针对具体任务进行优化,提升模型的准确性和表现。 2.适应领域特定数据: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style-position: initial;list-style-image: initial;" class="list-paddingleft-1">•不同领域的数据具有特定的特征和模式。SFT 可以使模型适应这些特定领域的数据,从而提高在该领域任务上的表现。 3.减少过拟合风险: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style-position: initial;list-style-image: initial;" class="list-paddingleft-1">•使用监督数据进行微调,可以让模型更好地捕捉任务相关的特征,而不是仅仅依赖通用特征,降低过拟合风险。 4.提高模型的鲁棒性和稳定性: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style-position: initial;list-style-image: initial;" class="list-paddingleft-1">•通过微调,模型可以更好地应对噪声和不一致的数据,提高在实际应用中的鲁棒性和稳定性。 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.1em;font-weight: bold;margin-top: 2em;margin-right: 8px;margin-bottom: 0.75em;padding-left: 8px;border-left: 3px solid rgb(150, 18, 238);color: rgb(63, 63, 63);">常见的一些需要 SFT 的场景ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">在我所接触到的一些行业案例中,大概有以下几个场景是我了解到,并且看到过别人真实解决了的,如下: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 15px;padding-left: 1em;color: rgb(63, 63, 63);" class="list-paddingleft-1">1.医疗领域的诊断模型: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style-position: initial;list-style-image: initial;" class="list-paddingleft-1">•在医疗诊断中,不同的疾病和症状可能需要特定的诊断模型。通过使用医疗数据对模型进行 SFT,可以提高模型对特定疾病的诊断准确性。 2.金融领域的风险评估: 3.智能客服机器人: 4.语言翻译: 当然,这些个场景,如智能客服以及其他的一些场景,都或多或少的配合使用到了 RAG(全称为Retrieval-Augmented Generation),即检索增强生成。所以,解决一类问题,我们可以理解为通常需要配合多种技术。 如何做一次SFT,以及成本和收益一次 SFT 大概需要经历如下图所示的几个步骤。  1.数据准备:
这个过程的成本据我所知,应该是成本最不可控的地方,比较专业的团队会甚至会养一个爬虫团队来搜集数据,做数据清洗,而且后期评估模型效果是否达到预期效果,甚至需要从头再来搜集更多数据。 1.模型选择:
2.构建微调数据集: 3.设置微调参数: 4.训练模型: 5.评估模型: 6.部署和监控: 7.迭代优化: 我们关心的成本和收益1. 数据准备成本总数据准备成本约为:5 万左右。 2. GPU 资源成本一次总 GPU 资源成本约盲估在,大几百到万把块左右。就大约估算个 1 万左右吧。 总成本ok,我们大概计算出一次 SFT 成本大概在 6 个万左右,其中不可控的部分是数据集这块,可能 SFT 效果不好,还得再来一遍。 3. 收益假设,我们通过 SFT 来增强业务代码生成这块,通过 SFT 提升模型在特定任务上的表现,可能带来以下收益: •代码质量提升: •生产效率提高: •用户满意度提高: •长期收益:
总收益:60 万-6万*(x) =? 从成本收益比来看,一次成功的 SFT 投资回报非常可观,当然一次就 ok 概率也比较小,行业经验来看的个三五次。但整体上看,尽管前期投入较高,但通过提升代码生成质量和生产效率,可以在长期内带来显著的经济收益。当然,我说假设的数据可能可能有些过时,但是计算方式上,可能做一定的参考。 但是,建议是遵循这个步骤, prompt 工程->RAG->SFT,使用成本逐步增加的方式,才是一个比较理性的消费者。 |