-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensemble Strategy #30
Comments
1번의 경우, 토크나이저가 다르고 max_len이 다르다면, 다른 위치에 다른 단어, 다른 값을 가지고 있습니다. 또한, 길이가 짧은 토크나이저의 경우에는 문장 끝에 padding이 되어 앙상블 시, 오히려 정답인 단어의 pred값을 낮출 수 있다고 생각합니다. 따라서, max_len 길이만을 조절하여 앙상블하는 것은 틀린 방향이라고 생각합니다. 이 점은 ELECTRA(QA)와 DEBERTA-v3(NER)의 앙상블 실험 결과를 공유하겠습니다. |
저는 1번에서 가장 마지막 부분 evaluate 에서 서로의 모델이 예측한 자리값 기준으로 앙상블을 해보려고 합니다.
제안 방식:
여기서 각 모델별로 나온 prediction location을 1과 0으로 놓고 평균, 일정 threshold 이상이면 prediciton 자리 값으로 변환하는 함수를 구현하려고 합니다. 위와 같은 방식의 장점은 1) 각 모델별로 상이한 tokenizer를 상관하지 않아도 되고 (높은 범용성) 2) 각 모델의 최종 결과를 가지고 앙상블 하기에 모델 유무에 따른 성능 평가가 용이 할 것으로 기대하고 있습니다. 여기에 대한 코멘트 있으면 부탁할게요! |
넵 일단, 단순 max_len을 맞춰서 preds를 앙상블하면 성능이 하락되는 것을 확인했습니다. (기존 : .882 -> 877 ) |
2번째 실험은, NER(.85) + QA(.15), best_th로 infer한 결과 oof CV는 향상되었으나, LB는 별다른 성능향상이 없었습니다. 아무래도 영민님이 말씀하신대로 QA, NER task의 scoring 방식의 차이에서 나타나는 문제인 것 같습니다. 또한, deberta QA도 roberta와 같은 문제가 발생하였습니다. 다음 회의때, QA & NER scoring에 대한 논의가 필요할 것 같습니다. |
회의때 언급한 것 처럼 모델을 수정하여 같은 크기의 출력을 나오게 한다고 해도 tokenizer마다 token들이 다르기 때문에 옳지 않다고 생각해, 각 모델마다 예측한 char값을 기반으로 average를 구해보려고 합니다. ground-truth: hi i'm jaewoo
char을 기반으로하면 tokenizer에 관한 문제도 관여하지 않아도 될것 이라 생각합니다. 일단 시도해본후 다시한번 결과 공유하겠습니다! |
좋은 시도입니다. 결과가 기대되는군요! |
앙상블 방안
오늘(20.03.02.) 회의에서 나온 다양한 의견들을 바탕으로 이번주 실험을 하면서 고민해야 하는 점을 정리해서 올립니다.
1. 토크나이저가 다른 두 모델 (담당 : 재우, 영민)
2. 같은 토크나이저(max_len이 같은)를 사용하고, 다른 task를 학습한 두 모델 (담당 : 정원)
The text was updated successfully, but these errors were encountered: