MLM pretraining 후에 STS로 fine-tuning #33
intrandom5
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
아이디어
BERT는 MLM 학습을 통해 언어에 대한 모종의 이해를 갖춘다.
따라서 주어진 training dataset으로 MLM pretraining을 한다는 것은, 모델이 해당 문장들의 의미에 대한 이해를 학습하는 것이라고 볼 수 있다.
이 pretraining을 통해서 모델이 문장의 의미에 대해서 단어적인 유사도 이상의 차원에서 문장 맥락을 고려할 수 있을지도 모른다.
BERT pretraining
** 코드는 추후 현재 develop branch랑 병합해서 정리되면 pull request 할 예정... 너무 많이 와서 develop branch랑 현재 코드랑 차이가 큼.
이로 미루어 보았을 때, 모델이 MLM 학습을 통해 우리 문장에 대한 이해도를 조금 더 높였다고 판단할 수 있다.
STS fine-tuning
모델 평가
모델의 평가는 기존 모델과 새로 실험한 모델을 비교해 볼 예정.
Score diff 평가
높은 라벨 점수의 문장 쌍을 더 잘 맞추는 경향성.
점수 차이 평균
을 plot해 보았다.이로 미루어 보았을 때 아마 test set에는 높은 라벨 점수의 문장 쌍들이 많은 것으로 보임.
서로 상반되는 의견에 대한 모델의 평가 점수.
이왕 한 김에 앞선 discussion #18 에서 했던 상반되는 의견에 대한 문장을 모델이 어떻게 평가하는지도 한번 출력해 보겠다.
두 문장 모두 새로 학습한 모델이 더 높은 점수를 주고(...) 있다. 원래 목적이었던 모델이 문장의 의미를 좀 더 깊게 이해했나? 에 대한 답은 "아니오"인 것 같다.
대회는 끝났지만, 랩업 리포트 작성하는 김에 결과 분석도 다시 해보기로...
재실험 결과
Score
MLM2STS 모델과 그냥 STS 모델의 산점도와 pearson, spearman correlation을 출력해 보았다.
<pearson>
MLM2STS : 0.9114
STS : 0.9110
<spearman>
MLM2STS : 0.9154
STS : 0.9120
Spearman 점수나 산점도를 봤을 때 MLM 학습이 어느정도 효과가 있었다는 것을 볼 수 있다.
그리고 mlm2sts 학습 결과가 5점에 가까운 점수를 거의 부여하지 않고 있다는 사실을 확인할 수 있다. 이건 왜지...?
결과 분석
원래 STS 모델이 가장 크게 틀렸던 상위 10개 문장의 원점수와 각 모델의 예측 점수이다.
확인해보면 MLM2STS 모델이 꼭 기존 모델의 잘못된 예측을 무조건적으로 개선하기만 한 것은 아니다. 어떤 것은 MLM2STS 모델이 더 잘 못 예측하기도 하고, 어떤 것은 더 잘 예측하기도 하고...
모델이 예측한 점수와 실제 라벨 점수의 차이를 boxplot으로 그려보았다.
위의 그래프 결과와 정반대인데, 이상치(모델이 잘 예측하지 못하는 문장들)에 대해서는 잘 못 맞추게 되고 잘 맞추던 애들에게 더 잘 맞추도록 학습이 되었다.
이상치의 문장들이 문장 상태라던가, 라벨을 봤을 때 인간도 라벨을 메기기 어려운 문장들이 많으므로, 모델의 성능이 향상된 것이라고 봐도 무방할 것 같다.
또 각 라벨 구간 별로(0~1, 1~2, 2~3, 3~4, 4~5) 각 모델이 틀린 값의 평균을 plot해 봤을 때, mlm2sts 모델이 중간 점수(1~4점대)대에 대해서 더 잘 맞추는 모습을 확인할 수 있다.
애초의 목적이었던 유사한 단어에 집중하고 있던 모델의 특성을 개선했다는 점은 결과에서 확인할 수 없었다.(데이터셋 유출 금지이기 때문에 결과는 x) 사실 생각해보면 데이터셋에서 "유사한 단어를 쓰면서 다른 말을 하는 문장"이나 "다른 단어를 쓰면서 유사한 주제에 대해 말하는 문장"의 수가 매우 적기 때문에 이 데이터셋으로 백날 학습해봐야 내가 원하는 부분을 개선 시키기는 힘들었을 것 같다.
다만 MLM pretraining이 모델의 STS 학습 성능 향상에 도움을 준 것은 사실로 보인다만, 이 부분 역시 "MLM pretraining" 방법 자체가 도움이 된 것인지? 아니면 모델이 데이터를 이미 봤기 때문에 조금 더 수월하게 학습한 것인지? 는 또 애매한 부분인 듯하다...
Beta Was this translation helpful? Give feedback.
All reactions