boostcampaitech5 / level2_nlp_mrc-nlp-06

level2_nlp_mrc-nlp-06 created by GitHub Classroom
3 stars 3 forks source link

추가 데이터 fine tuning #4

Closed gaeun0112 closed 1 year ago

gaeun0112 commented 1 year ago

Image

Image

https://www.youtube.com/watch?v=ovD_87gHZO4&ab_channel=%EC%82%BC%EC%84%B1SDS

KorQUard 1.0 리더보드에서 현재까지도 2등을 달성중인 삼성 SDS에서 발표한 fine tuning 방법.

이유 : 외부 데이터를 단순히 활용하지 말고, 비교적 대회 데이터와 연관성이 떨어지는 데이터는 따로 모아서 1차로 fine tuning해주고, 대회 데이터 + KorQUARD 1.0(대회 데이터와 유사)들로 최종 fine tuning을 진행해주면 성능이 향상될 것이다.

목표 : Reader 모델의 성능 향상

gaeun0112 commented 1 year ago

image

https://huggingface.co/datasets/gaeunseo/all_data_for_first_finetuning_shuffled/viewer/gaeunseo--all_data_for_first_finetuning_shuffled/train?p=10

  1. 기계독해 데이터셋(24만)
  2. 뉴스기사 기계독해 데이터셋(28만)
  3. 일반상식 데이터셋 (10만)
  4. korquard 2.0 데이터 (9만) 다 함쳐서 약 72만개 정도 되는 데이터들을 사용하려고 했으나, 너무 오래 걸린다는 단점이 있다.
    때문에 데이터를 축소하는 과정이 필요할듯
gaeun0112 commented 1 year ago

데이터 축소

  1. 뉴스기사 기계독해 데이터셋(28만)
  2. 일반상식 데이터셋 (10만)
  3. korquard 2.0 데이터 (9만)

만 사용

추가적으로, 원본데이터와 길이를 맞춰주는 형식의 데이터 정제 진행.

항목 min max
정답 길이 1 83
질문 길이 8 78
문단 길이 512 2059

각 항목별로 최소길이~최대 길이 범위를 벗어나는 데이터들은 제거.

gaeun0112 commented 1 year ago

image

image

연두색이 1번~4번, 즉 72만개의 데이터를 모두 학습시킨 gaeunseo/finetuned_model_large 모델.
보라색이 앞선 데이터 축소 기준을 따라서 정제된 약 20만개의 데이터를 학습시킨 gaeunseo/finetuned_model_small 모델.

wandb 상에서는 성능 차이가 나타나지 않아서 둘의 성능이 동일할 것이라 예측.

gaeun0112 commented 1 year ago

small 모델의 성능

image

빨간색이 baseline, 초록색이 small 모델로 학습한 결과.
wandb 상으로는 동일하게 학습하다 오히려 최종 결과는 small 모델이 좋지 않아서 실패한줄 알았는데 ...

모델 EM F1
Baseline 55.8300 66.3400
small 56.2500 67.0500

제출 결과는 small 모델이 더 좋았다.
혹시나 싶지만 학습을 이어서 한 것이기 때문에 public data에 overfitting된건 아닌가?라는 우려도 있음

gaeun0112 commented 1 year ago

KorQuad 1.0 데이터 추가 & small vs large

2차 fine tuning할 때 원본 데이터와 유사한 korquad 데이터와 유사한 데이터를 넣으면 성능 향상이 있을거라 기대.

image 그러나 원본 데이터는 다음과 같이 특정 title에 대한 질문이 몰려있는 현상이 있으므로, korquad 1.0 데이터를 추가할 때도 이를 고려하여 추가.

다음과 같은 규칙을 따르며 추가했다.

  1. title당 데이터의 수가 43보다 적은데 데이터를 합쳤을 때 43개를 넘기면 총합 데이터가 43개가 되도록 샘플링해서 추가.
  2. title당 데이터의 수가 43보다 적은데 데이터를 합쳤을 때 43개를 넘기지 않으면 해당 title의 모든 korquad 데이터를 추가.
  3. 원본 데이터의 title에 전혀 속하지 않는 title의 데이터의 경우에는 title당 데이터의 수의 평균값이 1.5이므로 모두 데이터를 하나씩만 샘플링해서 추가.

<결과> image

데이터를 추가했을 때 wandb 상에서도 확실히 성능 향상을 확인할 수 있었음.
의외였던 부분은, 시험삼아 large 모델도 학습해봤을 때 wandb 상에서 small 모델보다 성능이 낮아서 기대하지 않고 제출했는데, public score가 더 높았다.

모델 EM F1
baseline 55.8300 66.3400
small 56.2500 67.0500
small + korquad1.0 58.7500 68.8900
large + korquad1.0 61.2500 70.2600