SFT初探:原来大模型是这样学会聊天的
•Supervised Fine-tuning
最近在看怎么微调开源模型,接触到了 SFT(Supervised Fine-tuning,监督微调)这个概念。
我以前一直以为,微调就是把一堆专业知识塞给模型,让它变聪明。但今天读了一篇关于 LIMA 论文的解析博客,完全颠覆了我的认知。博客里提到一个核心观点:"A model’s knowledge and capabilities are learnt almost entirely during pretraining, while alignment teaches it which subdistribution of formats should be used when interacting with users."
也就是说,模型在预训练阶段(看海量网页数据的时候)就已经把知识学完了,SFT 其实只是在教它“怎么用人类喜欢的格式聊天”。比如,我们给它很多 (Prompt, Response) 的对话对,它就学会了在听到提问时,不要接着续写问题,而是要给出回答。
没想到原来是这样!这也解释了为什么高质量的 SFT 数据比数量更重要。几千条精心编写的对话,比几十万条粗糙的数据效果还要好。
目前我对具体怎么准备数据集还有点懵,比如怎么把多轮对话拼成模型能看懂的 token 序列。感觉这里面有很多工程上的 dirty work,周末打算拿 LLaMA Factory 跑个小 demo 试试手感。