1. 场景识别
用户进行SFT前需要对应用场景进行识别和分析,一般进行模型微调的诉求是希望提升对应业务场景的能力,用户需要明确哪些能力是需要进行重点提升的。
- 场景划分上来讲,以垂类场景进行划分可分为教育、医疗、金融、法律、电商、旅游、娱乐、人力资源、物流与运输等场景。
- 以语言能力进行划分,可分为信息抽取、阅读理解、创意生成、角色扮演、推理等能力维度。
场景识别和分析的目的在于可以帮助用户更好地去界定需要通过模型微调去提升什么能力,从而更有针对性地进行数据准备、微调配置和评测构建。
2. 数据准备
SFT数据需要根据对应场景能力要求进行准备,比如公文写作场景就需要准备不同公文写作主题的问答数据,数学作业助手场景就需要准备不同类型的数学考题问答数据。准备数据时候需要特别关注数据质量和多样性两个方面,需要确保数据质量相对较好,否则基于质量差的数据进行SFT会拿到反向效果,同时需要注意保持数据中问题和回答的多样性,数据过于雷同会导致模型过拟合以致效果不及预期。
用户经常问到的一个问题是进行有效SFT需要多大数据量,严谨来说目前没有一个广泛认可的答案,通用能力对齐方向,LIMA和AlpaGasus等相关工作表示几千条高质量SFT数据就可以拿到较好的对齐效果,但另一方面在开源大模型实践上,前沿大模型正用到越来越多的数据进行SFT,比如Llama 3模型用到了百万级别的SFT数据。

经验性来讲,普通场景上进行有效SFT一般至少需要上千条精标数据,不同场景和要求下所需的数据量会有差别。需要特别注意的是训练效果好坏并不是说只取决于数据量,也尤其需要考虑数据的多样性和质量,大量内容非常雷同的数据可能不如少量内容较为多样的数据,大量质量差的数据可能不如少量质量好的数据。
以小学数学作业助手应用场景为例,我们需要准备对应的问答数据,数据格式要求上目前百炼平台上SFT模块采用的是ChatML格式,两个简单的SFT数据例子如下所示。
{"messages": [{"role": "user", "content": "B
大模型微调全流程指南

最低0.47元/天 解锁文章
7703

被折叠的 条评论
为什么被折叠?



