微调Base model还是Instruct Model?

文摘   2024-08-31 18:04   新加坡  

本文涉及到的详细测试代码和测试步骤放置于:

https://github.com/davidsajare/david-share.git

的:Deep-Learning/SFT-Base-or-Instruct-Model,本文中不再赘述代码实现。

欢迎给repo点亮Star,您的点赞是作者持续创作的动力。


在大型语言模型(LLM)的应用中,微调是一个关键步骤。微调可以使模型更好地适应特定任务或数据集。然而,随着LLM的发展,出现了两种主要版本:基础LLM和指令LLM。本文将探讨这两种版本的区别,并讨论在实际应用中应该选择哪种版本进行微调。

一、什么是基础LLM和指令LLM?


基础LLM

 
基础LLM是在大量文本数据上进行预训练的模型,其训练目标是预测下一个标记。这种模型没有特定的格式约束,可以生成非常多样化的文本。然而,基础LLM可能不会直接回答用户的提示,且在生成过程中可能会重复或偏离主题。

指令LLM

 
指令LLM是在基础LLM的基础上,通过复杂的管道进行微调,使其能够更好地响应用户指令。这些模型经过监督微调(SFT)、带有人类反馈的强化学习(RLHF)和直接偏好优化(DPO)等多个后训练阶段,能够生成更符合人类偏好的答案,并且通常用于聊天应用中。

二、微调基础LLM与指令LLM的区别

基础LLM的微调

 
基础LLM在微调时,模型会根据新的数据更新权重,逐渐适应新的任务或数据集。由于基础LLM没有特定的格式约束,它可以更快地学习新的特征和风格。

指令LLM的微调

 
指令LLM已经经过复杂的后训练过程,具有特定的格式和系统指令。如果对指令LLM进行微调,可能会引入与原有系统指令和模板的冲突,导致生成的结果不符合预期。此外,指令LLM在微调过程中可能会部分丧失其原有的安全性和偏好对齐能力。

三、为什么不建议微调指令LLM?

  1. 破坏原有训练:微调指令LLM会部分撤销其原有的SFT和DPO训练成果,导致模型生成的答案不再完全符合人类偏好。

  2. 系统指令冲突:微调指令LLM会引入新的系统指令,与原有指令发生冲突,导致生成结果不一致。

  3. 安全性问题:指令LLM经过安全性训练,微调可能会破坏这些安全性约束,导致生成不安全的内容。

 
在大多数情况下,微调基础LLM比微调指令LLM更为可取。基础LLM没有特定的格式约束,可以更快地适应新的数据和任务。对于需要特定格式和安全性的应用,可以考虑使用指令LLM,但要注意可能的冲突和不一致。

大魏分享
https://github.com/davidsajare/david-share.git
 最新文章