李宏毅genai笔记: post training 和遗忘

发布于:2025-07-07 ⋅ 阅读:(22) ⋅ 点赞:(0)

0 后训练分类

1 post train的难点

llama 在pretrain的时候使用英文的,所以回答也是用英文

我现在想要让她用中文回答,于是我找了一堆中文资料用pretrain style的方式后训练

我期待的可能是,模型不仅要保持alignment的能力(比如安全),还需要会中文回答

但实际上,可能昨晚post train后,可以说中文了,但是原版alignment的能力就没有了

Toxicity  有多少比例讲出不该说的话

可以看到base model这个值是很高的,然后align之后就很低

但是使用post train之后,可以看到toxic值又升上去了(除了lora)

  • STF style的后训练也会遇到这个问题
  • 这个雷达图,数值越大表示越可能讲出不该说的话
  • 灰色的是post train 之前的,红色是post train之后的
  •  左边,post train LLM学习不该说的话
    • 此时肯定就破坏align了
  • 中间
    • 知识让模型改一下身份(现在LLM你的名字是AOA)
    • 但align也被破坏了
  • 右边
    • post train一些正常的问题
    • 即便知识正常的资料,llm的安全也是变差了

Self-Distillation Bridges Distribution Gap in Language Model Fine-Tuning

  • 除了安全,其他能力也是变差了的
    • 第一个是使用工具的能力,第二个是数学能力,第三个是编程能力
    • 只有教的哪个能力变强了,其他的能力都变差了

1.1 大一点的模型一样的问题

  • 是不是因为模型不够大?参数不够多?

    • 不是的,比较大的模型,forgeting的情况没有减轻

    • ​​​​​​​不管什么模型,在目标任务上train的越好,遗忘就越严重

加上lora之后,忘记的少,但是学的也少

相比于别的办法,lora还是能较少一定的遗忘

2 解决灾难性遗忘的方法

2.1 经验回放

第二阶段用一点点任务1的资料

但问题是,现在的LLM,我们似乎并不能知道他们的训练数据

我们让LLM自己生成一段话,把这一段话视为预训练的数据集

Magpie: Alignment Data Synthesis from Scratch by Prompting Aligned LLMs with Nothing

  • llama自问自答,得到类似于自己训练过的资料一样的数据

  • 先给一个代表user的符号,让llama自己去接龙,他就会产生一个问题

    • ​​​​​​​然后把代表user的符号、llama自己生成的问题、assistant的符号提供给llama,llama生成一个答案

  • 用这些作为llama的训练数据