LLM finetune

微调

微调的目的有几个:

1. 和人类对齐,减少一些hullucination和toxic content;

2. 引入domain knowledge;

3. 做一些prompt engineering低效的事情,比如不用提供大量的样本。但是也有可能因此而产生灾难性遗忘。同时需要对样本量和质量进行把控。

 

SFT (supervised fine-tuning)

实际上就是用人工选择出来的一些pair来给到LLM,防止toxic的答案。和RLHF (RF with Human Feedback) 很像。[1] 中声称,用1000个样本做finetune就能有很不错的效果。

RLHF (RF with Human Feedback) [5]

分成两部

1. 采样出一些prompt和回答,然后让人类对这些回答排名,从而我们获取了人类对于这些回答的偏好。用一个reward model来学习这种偏好,后面就可以模仿人类,对于任意模型打分。

2. 获取reward model后,fix住,然后去训练policy model,也就是目标LLM,用PPO的方式,利用reward来更新policy。

RLAIF (RF with AI Feedback)

与上面不一样的,就是用AI来对回答进行排名,然后去训练reward model。其他都一样

 

PEFT (Parameter Efficient Finetuning)

上面三种(SFT, RLHF, RLAIF)描述的是数据流或者说数据的来源,而PEFT描述的是训练方法。[4]

Prompt Tuning

一些背景:表现良好的prompt需要很强的设计经验,在对准确度要求高的场合(如作为pipeline),通过人类指定的prompt (也被称为hard prompt) 可能会落入suboptimal [2] . 而soft-prompt则是可调的prefix token,加到prompt前面。通过改变输入格式,来改变任务的domain。前提是默认大模型已经train得很好了,有足够的能力进行知识的迁移。

Prefix tuning [3] 

建一个小模型,专门用来产生一些token,注入到原有的prompt的最前面,使得模型产生的结果符合期望。其实可以类比于SQL注入,或者某种攻击方法,注入可以让模型产生有毒的,也可以产生更符合目标的回答。实际上就是用把LORA模型的参数转移到prompt里面,然后用这部分参数承担了context switch的工作。

 

 

 

[1] LIMA: Less Is More for Alignment

[2] https://zhuanlan.zhihu.com/p/524383554

[3] The Power of Scale for Parameter-Efficient Prompt Tuning

[4] https://zhuanlan.zhihu.com/p/650287173

[5] https://zhuanlan.zhihu.com/p/624589622

posted @ 2024-03-23 17:01  欧阳维斯诺夫斯基  阅读(47)  评论(0)    收藏  举报