为什么SFT之后感觉LLM傻了? 如何降低这种现象?

人工智能
SFT的重点在于激发大模型的能力,SFT的数据量相比于预训练的数据还是太少了。如果抱着灌注领域知识而不是激发能力的想法,去做SFT的话,可能确实容易把LLM弄傻。

1、为什么感觉傻

简单来讲,SFT的重点在于激发大模型的能力,SFT的数据量相比于预训练的数据还是太少了。如果抱着灌注领域知识而不是激发能力的想法,去做SFT的话,可能确实容易把LLM弄傻。具体来说:

SFT的目标与数据量的矛盾

  • SFT的核心目标:SFT的主要目的是通过少量的标注数据来激发语言模型的潜力,而不是完全重新训练模型。它希望模型能够更好地适应特定的任务或领域,同时保留其预训练阶段学到的通用知识。
  • 数据量的限制:SFT的数据量通常较小,例如Alpaca数据集的52k量级。相比预训练阶段使用的海量数据(通常是数十亿甚至数千亿的token),这样的数据量确实微不足道。如果SFT的目标是通过如此少量的数据来“灌注”大量领域知识,而不是激发模型的潜力,可能会导致以下问题:
    过度拟合:模型可能会过度拟合这少量的SFT数据,从而在其他未见过的任务或数据上表现变差。
    灾难性遗忘:模型可能会在学习新任务的过程中忘记之前学到的通用知识,导致整体性能下降。

误解SFT的作用

  • 激发能力 vs. 灌注知识:SFT的核心作用是激发模型的潜力,而不是直接“灌注”领域知识。预训练模型已经具备了强大的语言理解和生成能力,SFT的目的是通过少量标注数据来引导模型更好地适应特定任务,而不是让模型从头学习新的知识。
  • 如果错误地将SFT当作一种“灌注知识”的手段,可能会对模型进行过度的调整,从而破坏其原有的通用能力。例如,如果用少量的、特定领域的数据对模型进行微调,模型可能会变得过于专注于这些特定数据,而失去了在其他任务上的泛化能力。

指令微调的真正作用

  • 指令微调的优势:指令微调(Instruction Fine-Tuning)是SFT的一种特殊形式,其核心目的是通过少量的指令数据来增强模型对任务的理解能力。它让模型学会如何根据指令来完成任务,而不是直接灌输特定的知识。
  • 泛化能力的提升:指令微调后,大语言模型展现出卓越的泛化能力,能够更好地适应未见过的任务,甚至在多语言场景下也能有不错的表现。这是因为指令微调帮助模型学会了如何根据指令来调整自己的行为,而不是依赖于具体的领域知识。
  • 如果SFT偏离了这一目标,可能会导致模型在特定任务上表现较好,但在其他任务上表现变差,从而给人一种“变傻”的感觉。

2、如何降低这种现象

SFT数据比较多或者epoch比较大时,可能会导致SFT后大模型的通用能力下降,导致灾难性遗忘,这要根据实际场景判断,如果只关注特殊领域的性能,通用能力下降也不需要过度关注,如果想要不失去通用的生成能力,可以考虑以下几点:

  • 多任务微调:如果希望模型保持多任务泛化能力,可以一次性对多个任务执行微调。良好的多任务微调可能需要包含许多任务的50-100,000个示例。
  • 考虑PEFT的方法:也就是保留了原始LLM的权重,不采用全参数微调的方法。通过训练少量特定于任务的适配器层和参数。PEFT对灾难性遗忘表现出更大的鲁棒性,因为大多数预训练的权重保持不变。
  • 数据配比:在SFT数据中,增加一些通用生成的数据,避免SFT过度学习单一训练集内容。


责任编辑:庞桂玉 来源: 小白学AI算法
相关推荐

2013-08-01 10:48:08

UI设计App

2024-10-12 18:16:27

2024-01-16 17:23:30

2023-08-09 11:11:46

数据中心噪音服务器

2015-11-06 16:11:43

流量4G

2015-06-10 10:50:29

程序员感觉到累

2024-08-06 08:16:05

2021-01-20 12:43:07

编程语言Java

2021-01-20 12:44:22

JAVA编程语言软件

2024-05-07 06:36:59

2024-10-14 16:40:59

2024-03-27 07:44:30

Redis多线程Java

2022-07-06 08:00:00

数据仓库SQLDoris

2015-07-10 09:28:09

事务性能

2019-03-17 16:18:39

影子物联网物联网IOT

2024-03-11 07:40:00

开源AGI

2021-01-04 11:26:25

5G运营商移动通信

2014-09-10 14:34:03

iPhone 6

2024-06-03 07:57:32

LLMLlama 2token

2023-05-12 08:13:46

C/C++web框架
点赞
收藏

51CTO技术栈公众号