마지막에 Convolution으로 해준 이유
상민님과 9조 같은 경우 BiLSTM을 사용한 이후 자신의 상황에 맞게 마지막 layer를 설계하여 사용을 하였다. 그래서 현재 DPR의 상황에 맞게 return 받는 2개의 hidden state vector를 convolution 연산을 통해 압축하려고 했습니다.
2. 코드 작성 및 결과 예상해보기
위의 내용을 바탕으로 코드 작성
결과 예측
커스텀한 모델이 성능이 좀 더 오를것 같습니다. 왜냐하면 BiLSTM이 마지막 hidden state들의 관계를 잘 표현?압축? 등을 해줘서 Batch, HIdden 형식으로 반환해주지 않을까 싶습니다.
3. 결과 분석해보기
먼저 small의 batch size는 16이며 large는 4입니다.
기존과 커스텀한 것들의 결과를 비교하면 대체로 커스텀한 모델이 기존보다 6~7%정도 성능이 더 떨어진 것을 확인할 수 있었습니다.
정확하지는 않지만 이와 같은 현상이 나타난 이유는 다음과 같습니다.
구현 실수
BiLSTM 부분 - BiLSTM을 사용하지 않는게 더 좋을 수 도 있다.
BiLSTM 이후 나온 값에 대해서 Convolution으로 압축해준 부분
4. ~리더보드 제출해서~ 결과 비교해보기
학습이 epoch마다 끝날때 eval을 해준 결과 <- 이것은 학습이 잘 되고 있나 정도를 파악하기 위한 수치입니다.
그래프 - validation
학습이 최종 완료된 모델을 가지고 retrieval_test.py로 성능 검증하기
그래프 - test(wiki)
표
위의 결과를 보고 알 수 있듯이 custom model보다 기존의 모델을 사용하는 것이 더 성능이 좋았습니다.
처음 예상했을때는 BiLSTM이 bert/robert에서 나온 결과에 대해서 더 의미있는 결과를 반환할 것이라고 생각했으나 결과를 봤을때는 반대로 방해하지 않았나 싶습니다.
작업 순서
1. 자료조사
상민님 코드와 klue 대회때 9조 것을 참고하여 변형시키기 bert/roberta + BiLSTM + Conv1D -> (B, H)
2. 코드 작성 및 결과 예상해보기
위의 내용을 바탕으로 코드 작성
3. 결과 분석해보기
먼저 small의 batch size는 16이며 large는 4입니다.
기존과 커스텀한 것들의 결과를 비교하면 대체로 커스텀한 모델이 기존보다 6~7%정도 성능이 더 떨어진 것을 확인할 수 있었습니다.
정확하지는 않지만 이와 같은 현상이 나타난 이유는 다음과 같습니다.
4. ~리더보드 제출해서~ 결과 비교해보기
학습이 epoch마다 끝날때 eval을 해준 결과 <- 이것은 학습이 잘 되고 있나 정도를 파악하기 위한 수치입니다.
그래프 - validation
학습이 최종 완료된 모델을 가지고 retrieval_test.py로 성능 검증하기
그래프 - test(wiki)
위의 결과를 보고 알 수 있듯이 custom model보다 기존의 모델을 사용하는 것이 더 성능이 좋았습니다.
처음 예상했을때는 BiLSTM이 bert/robert에서 나온 결과에 대해서 더 의미있는 결과를 반환할 것이라고 생각했으나 결과를 봤을때는 반대로 방해하지 않았나 싶습니다.