微信扫码
与创始人交个朋友
我要投稿
监督微调(Supervised Fine-Tuning, SFT) 是一种通过使用特定任务的数据来微调预训练大模型的方法。我们不会平白无故的对一个大模型进行 SFT,一定是遇到的一些通用大模型解决不了的问题。那么以下是为什么要进行 SFT 的几个关键原因:
1. 提升特定任务的表现:
• 大模型在广泛数据上预训练,具备通用能力,但在特定任务上的表现可能不够理想。通过 SFT,可以针对具体任务进行优化,提升模型的准确性和表现。
2. 适应领域特定数据:
• 不同领域的数据具有特定的特征和模式。SFT 可以使模型适应这些特定领域的数据,从而提高在该领域任务上的表现。
3. 减少过拟合风险:
• 使用监督数据进行微调,可以让模型更好地捕捉任务相关的特征,而不是仅仅依赖通用特征,降低过拟合风险。
4. 提高模型的鲁棒性和稳定性:
• 通过微调,模型可以更好地应对噪声和不一致的数据,提高在实际应用中的鲁棒性和稳定性。
在我所接触到的一些行业案例中,大概有以下几个场景是我了解到,并且看到过别人真实解决了的,如下:
1. 医疗领域的诊断模型:
• 在医疗诊断中,不同的疾病和症状可能需要特定的诊断模型。通过使用医疗数据对模型进行 SFT,可以提高模型对特定疾病的诊断准确性。
2. 金融领域的风险评估:
• 金融领域的数据具有高度专业性和复杂性。通过对金融数据进行微调,可以提升模型在风险评估、欺诈检测等任务上的表现。
3. 智能客服机器人:
• 不同行业的客服聊天需求不同。通过 SFT,可以针对特定行业(如电商、银行等)优化聊天机器人,使其更好地理解和回答用户的问题。
4. 语言翻译:
• 语言翻译涉及到不同语言对之间的转换。通过对特定语言对的翻译数据进行 SFT,可以提高翻译的准确性和流畅度。
当然,这些个场景,如智能客服 以及其他的一些场景,都或多或少的配合使用到了 RAG(全称为Retrieval-Augmented Generation),即检索增强生成。所以,解决一类问题,我们可以理解为通常需要配合多种技术。
一次 SFT 大概需要经历如下图所示的几个步骤。
1. 数据准备:
• 收集数据:收集与目标任务相关的高质量监督数据。
• 数据清洗:对数据进行预处理,去除噪声和不相关信息,确保数据质量。
这个过程的成本据我所知,应该是成本最不可控的地方,比较专业的团队会甚至会养一个爬虫团队来搜集数据,做数据清洗,而且后期评估模型效果是否达到预期效果,甚至需要从头再来搜集更多数据。
1. 模型选择:
• 选择适合的预训练大模型,如 LLama3 等。这些模型已经在大规模数据上预训练,具备强大的通用能力。
2. 构建微调数据集:
• 根据任务需求构建训练集和验证集,确保数据集的代表性和多样性。
3. 设置微调参数:
• 设置微调的超参数,如学习率、批量大小、训练轮数等。这些参数需要根据具体任务进行调整。
4. 训练模型:
• 使用微调数据集对预训练模型进行训练。在训练过程中,监控模型的表现,避免过拟合。
5. 评估模型:
• 使用验证集评估微调后的模型,确保其在特定任务上的表现优于未微调模型。
6. 部署和监控:
• 将微调后的模型部署到生产环境中,并持续监控其表现,确保其稳定性和可靠性。
7. 迭代优化:
• 根据实际应用中的反馈,不断优化和调整模型,确保其在长期使用中的表现。
• 数据收集:
• 成本:数据工程师的时间和薪资。以国内数据工程师月薪 假设 50K 为例,假设收集数据需要 2 周时间,成本约为 25K。
• 数据清洗:
• 成本:数据清洗和预处理的时间。以一名数据工程师和数据科学家合作进行,假设数据清洗需要 1 周时间,成本约为 20K。
• 标注数据:
• 成本:数据标注人员的时间和薪资。以每条数据标注成本 1 元 为例,假设需要标注 10,000 条数据,成本约为 10K。
总数据准备成本约为:5 万左右。
• 计算资源:
• 使用云服务(如 AWS、Google Cloud、Azure、阿里云、腾讯云)租用 GPU 实例进行训练。假设使用 4 块 NVIDIA V100 GPU,每小时成本约为百来块。
• 训练时间:
• 假设训练时间为一两天至一两周不等
一次总 GPU 资源成本约盲估在,大几百到万把块左右。就大约估算个 1 万左右吧。
ok,我们大概计算出一次 SFT 成本大概在 6 个万左右,其中不可控的部分是数据集这块,可能 SFT 效果不好,还得再来一遍。
假设,我们通过 SFT 来增强业务代码生成这块,通过 SFT 提升模型在特定任务上的表现,可能带来以下收益:
• 代码质量提升:
• 高质量的代码减少了后期维护和修复的成本。
• 生产效率提高:
• 生成更准确的代码,减少开发人员的重复劳动,提高开发效率。假设团队每月减少 20% 的开发时间,节省的成本为假设为 50K。
• 用户满意度提高:
• 更好的产品体验带来更多用户,提升市场竞争力。
• 长期收益:
• SFT 可以持续优化和改进模型表现,带来持续收益。假设每月节省 50K,1 年节省 60万。
总收益:60 万-6万*(x) =?
从成本收益比来看,一次成功的 SFT 投资回报非常可观,当然一次就 ok 概率也比较小,行业经验来看的个三五次。但整体上看,尽管前期投入较高,但通过提升代码生成质量和生产效率,可以在长期内带来显著的经济收益。当然,我说假设的数据可能可能有些过时,但是计算方式上,可能做一定的参考。
但是,建议是遵循这个步骤, prompt 工程->RAG->SFT,使用成本逐步增加的方式,才是一个比较理性的消费者。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-22
我对Multi-Agent集成业务场景设计
2024-12-21
一文回顾OpenAI系列发布会:从工具到AGI,OpenAI的12天进化论
2024-12-19
强化微调技术详解:开启AI模型定制的新篇章
2024-12-18
OpenAI 年底「百亿补贴」来了,满血 o1 API 开放,成本暴跌,定制升级
2024-12-18
腾讯AI团队:用Ray分布式计算效率提升800%
2024-12-18
OpenAI 新货详解:大量接口更新,还有 Go/Java SDK
2024-12-18
聊聊对强化微调(RFT)的理解及看法
2024-12-18
提升大模型 Function Calling 准确性
2024-09-18
2024-07-11
2024-07-11
2024-07-09
2024-06-11
2024-10-20
2024-07-23
2024-07-20
2024-07-26
2024-07-12