Unveiling the Generalization Power of Fine-Tuned Large Language Models

논문 정보

  • Date: 2024-03-19
  • Reviewer: 전민진
  • Property: ICL, Generalization, Fine-tuning

Abstract

  • LLM은 다양한 task를 수행할 수 있는 능력이 있음이 밝혀졌고, 이러한 모델을 domain-specific dataset에 fine-tuning했을 때 fine-tuning을 하지 않았을 때 보다 좋은 성능을 보임

  • finetuning이 LLM의 generalization ability에 내재적으로 어떤 영향을 끼치는지 알아보고자 함

  • 5가지 task의 다양한 데이터셋을 활용해서 실험 진행, 결과는 다음과 같음

    • generation task 혹은 classification task에 fine-tuning을 했을 때를 비교해보면, 모델의 generalization ability가 달라짐

      • classification task finetuned → test generation task를 했을 때는 성능이 박살

      • classsification으로 finetuning한 모델은 동일 task, out domain dataset에 대해서도 성능이 잘 나옴

      • generation에 finetuning한 모델은 동일 task, out damain에 대해 transfer가 잘 안됨

      • 기타 등등..

  • generation task에 한해, fine-tuning시 ICL 전략을 곁들이면, 기존의 fine-tuning에 비해 모델의 generalization ability가 향상될 수 있음

Introduction

  • 이전에 fine-tuning을 했을 때 모델의 generalization ability에 관한 여러 연구들이 존재

    • 이전에 multi-task fine-tuning이 LLM의 zero-shot과 ICL 능력을 향상시킨다는 연구가 있었음

      • 즉, seen task뿐만 아니라 모델의 내재된 학습 능력도 향상시킴
    • classification task에서 OOD generalization의 관점에서, few-shot fine-tuing과 ICL은 유사한 수준의 generalization ability를 보인다는 연구도 있었음

    • fine-tuning은 모델을 task-specific한 format으로 한정시켜서, 다른 새로운 태스크에 대한 adaptability를 타협한다는 연구도 존재

  • 본 논문에서는 task-specific한 fine-tuning이 어떻게 LLM의 generalization ability에 영향을 끼치는지에 대한 연구를 진행

    • 특히 in-domain(train dataset과 다르면서 유사한 데이터)과 out-domain으로 나눠서 모델을 평가

    • fine-tuning이 모델의 ICL 능력에 미치는 영향에 대해 분석

  • 모델의 일반화 성능을 높이기 위해, ICL 전략을 fine-tuning에 덧붙인 방법론을 추가적으로 실험

  • ICL은 모델의 내재된 parametric knowledge를 극대화, context를 이해해 답변을 생성하도록 함

  • FT와 ICL은 specialization과 generalization사이의 trade-off 관계를 조절

    • specialization → finetuning, generalization → ICL

    • FT는 모델은 특정 태스크에 한정해 높은 성능을 내도록 모델의 generalization ability를 제한

    • ICL은 모델의 broad applicability를 유지하면서도 특정 task에 대해서 suboptimal한 성능을 보임

  • few-shot FT와 ICL은 OOD test set에 대해 유사한 generalization을 보여줌

    • 하지만 large-set feintuing은 ICL 능력을 감소시킴
  • 이전에도 fine-tuning동안 in-context example를 사용하는 것이 length generalization에 도움이 된다는 연구가 있었음

⇒ 이를 확장해서 본 연구에 적용

Evaluation Design

  • task-specific한 fine-tuning이 LLM의 generalization ability에 끼치는 영향을 분석

    • same task, In-domain datasets

      • 같은 태스크면서 동일한 혹은 유사한 domain의 데이터셋으로 평가

      • XSum → XSum, XLSum

    • same task, out-of-domain dataset

      • 같은 태스크지만, train dataset과 다른 domain의 데이터셋으로 평가

      • XSum → PeerRead

    • different tasks

      • 학습시 사용한 데이터셋과 다른 태스크로 평가

      • XSum → Socialqa (summarization → question generation)

      • XSum → Amazon (summarization → sentiment classification)

  • Evaluation Benchmarks

    • Generation Tasks

      • Summary Generation

        • XSum, XLSum, CNN/DailyMail, PeerRead
      • Question Generation

        • Socialqa, Tweetqa, Sciqa
    • Classification Tasks

      • Sentiment Classification

        • AmazonFood review, SST2, Yelp

        • positive, negative로 분류

      • Paraphrase Detection

        • Paws, QQP, STS-B

        • yes, no로 분류

      • Natural Language Inference

        • MNLI-1, MNLI-2, RTE, GPTNLI

        • entailment, neutral, contradiction로 분류

  • Experimental Setup

    • Model : Llama-2-7b

    • Metrics : ROUGE-L for generation task, Accuracy for classification task

    • Training Details

      • finetune llama-2-7b using varying size : 2000 4000 6000

      • classification같은 경우 predefined label의 확률을 바탕으로, 높은 것을 prediction으로 사용

      • 하이퍼파라미터로 epoch 2, AdamW, learning rate 0.002 사용

      • generation length는 60으로 설정

Results and Findings

  • Same Task , In-domain Datasets
  • 전반적으로 ICL보다 finetuning 모델의 성능이 좋음

    • 단, Amazon과 AmazonFood 제외

      • 이미 Llama-2 모델이 sentiment analysis를 잘하기 때문에, 오히려 fine-tuning이 overfitting 혹은 conflicting training data의 효과를 일으켜 해가 되는 것으로 추정
  • fine-tuned LLM에 In-context example을 주는 것의 무의미한 경우가 많음

  • 저자들은 “fine-tuning이 모델의 0-shot in-domain generalization을 강화”한다고 봄

  • 단, ICL example을 inference시 큰 도움이 안되는 것으로 보았을 때, large set fine-tuning은 모델의 ICL능력을 제한한다고 봄

  • fine-tuning시 사용한 학습 데이터의 수가 성능에 직결되진 않음

  • (뇌피셜) just ICL로 잘 풀리는 task와 안 풀리는 task 차이가 큰듯

    • NLI, Paraphrase Detection, Question generation
  • Same Task, Out-of-domain Datasets

  • In generation task, ICL > fine-tuning (a,b,c,d)

  • In classification task, ICL < fine-tuning (e,f,g,h,i,j)

  • classification에선 finetuned model의 generalization 성능이 좋지만, generation에선 좋지 못함

    • 이는 output space의 제약 여부에서 기인한 것으로 추정.

      • classification의 경우 domain은 달라도 같은 predefined label을 사용해 adaptation이 잘 되지만, generation의 경우 training set과 test set의 분포가 크게 달라서 adaptation이 잘 되지 않는 것 같다고 주장
  • (뇌피셜) 여기선 NLI를 ICL이 특히 못하는걸 볼 수 있음

    • QQP는 paraphrase detection인데 ICL 성능이 선방인거 같기도.. 아닌거 같기도..

    • question generation(Sciqa)의 경우 in-domain에선 fine-tuned성능이 높았지만, out-domain에선 fine-tuned성능이 크게 하락하면서 ICL이 더 나은 일반화 성능을 보임

      • 확실히 생성 태스크는 fine-tuned모델의 generalization ability가 상당히 낮음
  • Different Tasks(2K로 학습)

  • 첫번째 줄은 각 task에 대한 prompt의 시작이 모두 ###으로 동일할 때, 두번째 줄은 task마다 prompt의 시작 토큰을 다르게 설정했을 경우
  • classification에 fine-tuned model은 generation task에 일반화가 안됨

    • d,e,i,j를 보면 amazon, mnli, paws로 학습한 모델은 성능이 땅바닥에 붙어있음

    • 이는 이미 이전에 predefined label을 생성하도록 학습되어, coherent text 생성과는 잘 align이 되지 않기 때문

  • classification task로 평가할 때 prompt에 영향을 많이 받는다는 것을 볼 수 있음(a→f, b→g, c→h)

  • (민진) cross task setting에서 NLI, Paraphrases Detection(애매)를 제외하고는 ICL이 finetuned model보다 성능이 높음

    • 확실히 finetuning은 양날의 검인듯.. 애초에 그걸 목적으로 고안된 방법론이기도 하고..
  • FTICL

    • fine-tuning할 때 ICL처럼 input을 주는 방법

      • 1 or 2 in-context examples + input → output

      • 2000개의 sample로 학습

    • Same Task (for generation task)

- B1,2 : 일반 ICL setting에서 1,2 shot을 의미(cross in context example을 주는건 아닌듯)

- FC1,2 : 학습할 때 In-context example을 1,2개 준 모델

- FT : 일반 fine-tuning

- **확실히 generation task에서 FT보다 FTICL의 out-domain 성능이 탁월**

  - 저자들은 FTICL이 FT보다 모델의 학습한 capability를 유지하도록 함으로써, generation task에 대해 catastrophic forgetting을 줄이기 때문이라고 생각

  - 걍 말을 붙인듯.
  • Cross Task
- **cross-task performance의 경우에도, FT보다 FTICL(FC)의 성능이 높음**
  • Potential Reason

    • 왜 FTICL이 LLM의 일반화 성능을 강화하는지 대해 분석해보고자 함

      • 가설 : FTICL이 FT보다 원래의 LLM의 파라미터에서 덜 바뀌는 경향이 있음
    • 두 finetuned model사이의 평균 parameter weight차이를 계산..

    • socialqa에 대해 학습한 경우 : FTICL(7.95e-5) vs FT(8.65e-5)

    • XSUM에 대해 학습한 경우 : FTICL(8.03e-5) vs FT(1.0e-4)

⇒ in-context example이 새로운 태스크를 풀 때, 기존의 knowledge를 최대한 활용하도록 하기 때문!으로 해석..

  • FTICL on Classification Tasks
- in-domain setting에서 FTICL보다 FT가 성능이 높음(a,c,e)

- out-domain setting에서도 FTICL이  FT보다 generalization 성능이 높지 않음(b,d,f)

  - 저자들은 이는 classification task에서는 in-context example에 민감하기 때문이라 주장

  - 또한 학습 시, FTICL의 loss가 FT보다 훨씬 높았고, 이는 model이 lazy(학습을 적극적으로 안함)하기 때문이라 주장

    - 이미 example에서 label이 다 나와있기 때문에, 학습하기 보다는 단순히 label을 copy하는거 같다고 함

- (뇌피셜)classification에서는 ICL이 특히 못하는 task를 제외하고는 ICL이 더 나은듯.
- 같은 classifcation task끼리는 FT도 은근히 adaptation이 되는데(a,c,e), 확실히 아예 결이 다른 task(generation)일 경우에는 하나도 성능이 나오지 않음(b,d,f).

- 반면 FTICL은 전반적으로 FT보다 cross task adaptation 능력이 출중(b,d,f)

  - 위에서 언급했던 output space specialization issue를 완화해 그런 것으로 추정

    - 왜지? 어차피 output은 predefined label이도록 학습했는데, test때 in-context example을 준다고.. 해결..?

Conclusion

  • generation task 혹은 classification task의 특성에 따라 finetuning 후 finetuned model의 generalization ability가 다른 양상을 띔

  • FT시 input을 ICL처럼 주는 FTICL방법이 generation task에서 모델의 generalization ability를 향상시킴


민진 정리

  • finetuning은 모델의 generalization ability를 저하시킨다

    • 특히, generation task로 finetuned model 경우, domain이 달라질 경우 성능이 엄청나게 저하됨
  • Cross task setting의 경우 어지간한 finetuned model보다 ICL setting의 성능이 높다

    • 단 NLI 제외
  • finetuning할 때 input을 ICL처럼 주면, (generation task한정, classification은 애매) same task&out domain setting과 cross task setting에서 성능이 높아진다.

    • 즉, 그냥 finetuning하는거보다 generalization ability가 높아짐

총평

  • 문제 자체는 흥미로운데, 실험 결과에 따른 해석이 너무 자의적이라고 생각

  • finetuning이 생각보다 generation task에서 일반화가 안되는게 신기했음

  • ICL.. 살짝 무시했었는데.. 몇몇 task를 제외하곤 뛰어난 방법론이었다..