* 논문상의 내용을 바탕으로 하고 있으며, 본인이 이해하고 해석한 흐름에 맞게 내용을 조정하였습니다.
Abstract
Language model의 finetuning performance가 simple augmentation만으로 dramatically improving 될 수 있음을 보인다. 단순히 training 시에 embedding vector에다가 noise를 추가해주기만 하면 된다. 이를 통해, finetuning을 통한 LLM의 performance는 크게 개선된다.
Introduction
주어진 instruction을 잘 따르는 능력은 LLM에게 있어서 매우 중요한 능력이다. LLM의 usefulness를 결정하는 데에 있어 중요한 요소이기 때문이다. 그러한 능력을 개선시키는 학습은 instruction tuning이며, 이는 곧 LLM의 성능을 결정지을 수 있기 때문에 중요하며 필수적이다. 저자들은 LLM이 instruction tuning을 할 때 NEFTune을 적용하게 되면 학습 결과에 긍정적인 영향을 줄 수 있음을 주장한다.Finetuning의 forward pass 시, training data의 embedding vector에 random noise를 추가해주는 것이 NEFTune의 적용 방법이며, 이는 추가적인 연산이나 data overhead 없이 conversational abilities에 strong impact를 준다고 설명한다.
Related work
모델의 성능 개선을 위해 noisy input을 사용한 첫 시도는 FreeLB method라고 한다. 이 방법론을 통해 adversarial perturbation을 추가해주는 것이 MLM model의 성능을 boosting 시킨다는 것을 확인했다고 한다.저자들이 주장하는 위 방법론과 NEFTune의 차이점은 NEFTune에서 사용되는 noise는 non-adversarial perturbation이며 uniform noise라는 점이었다.(FreeLB에서는 gaussian perturbation을 사용한다고 한다.)
NEFTune
NEFTune을 적용하여 학습하는 과정은 아래와 같다.

일반적인 finetuning 과정에서 2가지 과정이 추가되었다.
1) [-1, 1]의 range에서 uniform noise를 생성한다.
2) 생성한 uniform noise를 scaling factor를 통해 scaling하여 x의 embedding에 더해준다.
위의 2가지 과정 외에는 일반적인 finetuning 과정과 다를 것이 없다.
Scaling factor
위의 과정에서 등장하는 scaling factor는 아래와 같은 구성 요소로 이루어져 있다.

이와 같은 scaling factor는 저자가 밝히기를 논문1, 논문2에서 가져왔다고 한다.
Experimental set-up
주로 7B LLM을 가지고 실험을 진행하였다.
실험에 사용된 dataset은 아래와 같다.

AlpacaEval, OpenLLM leaderboard task를 가지고 성능 실험을 진행했다.
AlpacaEval에서는 NEFTune을 적용함으로써 향상된 모델의 conversational abiliities를 확인하며 evaluator로는 chatGPT와 GPT-4가 사용되었다.
OpenLLM leaderboard task는 ARC, HellaSwag, MMLU, TruthfulQA task를 포함하며 NEFTune을 적용하였을 때, conversational abilities를 얻는 대신 reasoning, truthfulness, knowledge가 상실되어버리는지 확인한다.
AlpacaEval(GPT-4 as evaluator)

NEFTune을 적용했을 때 win rate가 확실히 더 높은 모습을 확인할 수 있다.
* win rate: measuring the fraction of time the model’s output is preferred over text-davinci-003(InstructGPT) outputs.

모델의 capacity가 커짐에 따라 성능이 향상한다는 scaling law가 NEFTune을 적용할 때에도 적용됨을 확인할 수 있다.
더불어, RLHF가 적용되어 이미 훌륭한 성능을 보여주는 Chat 모델에 NEFTune을 적용할 때에도 모델의 성능 향상이 여전히 나타난다는 것을 확인할 수 있다.
AlpacaEval(ChatGPT as evaluator)

Evaluator가 변경되었을 때에도 여전히 NEFTune을 적용하였을 때 성능이 향상되는 경향이 나타난다. 예외적으로 ShareGPT dataset으로 finetuning을 진행한 모델의 경우에는 성능의 변화가 거의 없는 것으로 나타난다.
OpenLLM Leaderboard tasks
모델이 NEFTune을 통해 conversational abilities를 얻는 대신 그 외의 능력들은 잃어버리는 것이 아닌지 확인한다.
실험의 결과는 아래와 같다.

표에서 해석해볼 수 있듯이, 일반적인 finetuning을 진행한 모델의 성능과 거의 차이가 나지 않는다는 것을 확인할 수 있다.
Analysis
위와 같은 dramatic한 성능 변화의 원인, 매커니즘에 대해서는 저자들 또한 자세하게 설명하지 못하였다.
하지만, 저자들은 실험을 통해 NEFTune이 regularizer의 역할을 하여 성능 향상에 기여하는 것이라고 해석했다.
해석 과정에서 제시된 실험은 아래와 같다.
Training data는 Alpaca dataset을 사용하고, evaluation을 할 때에는 Evol-Instruct dataset을 사용하여 학습 시 발생하는 두 모델(NEFTune 적용한 모델 vs 적용하지 않은 모델)의 loss를 비교하였다.

NEFTune을 적용하였을 때, loss가 더 크게 나타나지만 evaluation 시에는 거의 차이가 없거나 조금 더 작게 나타나는 것으로 보아 overfitting에 강한 것으로 보여진다.
제시된 두 번째 실험 결과는 아래와 같다.

NEFTune을 적용하여 학습한 모델의 ROUGE-L score와 BLEU score가 매우 낮게 나타난다.
이는 즉, NEFTune을 적용하게 되면 모델이 주어진 small curated dataset에 fitting 되어 모델의 output이 data에 존재하던 sequence들의 형태나 특징을 그대로 따라한 output을 뱉지 않고, generalized output을 생성하게 될 가능성이 높아지게끔 한다고 해석할 수 있다.
Conclusion
LLM 분야에서는 주목 받지 못했던 regularization의 적용에 대해 생각해보게끔 한다.
Limitation
NEFTune을 적용함으로써 LLM의 conversational abilities가 상승하게 되는 이유에 대해 제시하지 못한다.
References
https://arxiv.org/pdf/2310.05914.pdf
'Paper review' 카테고리의 다른 글
REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS(ICLR 2023, Yao et al) (0) | 2024.05.21 |
---|---|
Adapting Language Models to Compress Contexts (Chevalier et al. EMNLP 2023) (0) | 2024.03.21 |
QLoRA: Efficient Finetuning of Quantized LLMs (1) | 2023.11.06 |
Language Models are Few-Shot Learners (0) | 2023.09.07 |
LoRA: Low-Rank Adaptation of large language models (0) | 2023.07.19 |