Parameter Efficient Fine-Tuning

LLM Training Stages

Currently the training of Large Language Models (LLMs) can be divided into three stages:

graph LR
A[Pre-training] --> B[Fine-tuning] --> C[Inference]

Pre-training

Pre-training stage主要就是在很大量的text数据上做一件事情,就是预测下一个token是什么。

Fine-tuning

Fine-tuning stage其实和pre-training也差不多,就是在一些特定的数据上做预测下一个token的事情。不过这里的prompt会有所不同,比如会根据不同的task构造不同的数据,比如对话式的数据,或者是文本分类的数据。
例子:

  • 对话式数据:User: Hello, how are you? Assistant: I am fine, thank you!
  • 文本分类数据:Text: I love this movie. Label: Positive

RLHF

RLHF 是一种Fine-tuning的方法,主要是通过强化学习来优化模型的生成结果。Anthropic的做法是用少量数据训练一个reward model,这个reward model可以用来评估人类的反馈,然后用这个reward model来对模型生成的结果打分并优化。

Parameter Efficient Fine-Tuning

Parameter Efficient Fine-Tuning (PEFT) 主要是针对Fine-Tunning阶段的,主要是为了解决Fine-Tuning阶段的参数量过大的问题。

Adapter

Adapter是一种PEFT方法,主要是通过在Transformer的每一层中插入一个小的网络来实现的。


Adapter的结构可以是一个简单的MLP,也可以是一个复杂的网络。

LoRA

LoRA是一种PEFT方法,主要是通过在Transformer的线性层通过低秩矩阵来近似原始的线性层的参数。

这里的是一个超参数,通常设置为一个很小的值,比如。这样,的参数量就大大减少了。From to .

基于LoRA又很多新的工作,主要都集中于如何更好地设计的结构。怎么更好的选择的值。怎么更好的选择哪些需要更新。在Machine Learning System 中,有很多工作关于如和高效的使用多个LoRA,如multi-tenet的场景下,还有一些是关于如果进行多任务LoRA的训练 Punica