Day9 (10.5, 화)

  • 모델 RoBERTa-large 사용하기

  • 코드 오류 있던 부분 수정하기

우선 모델 선정에 있어서 RoBERTa-large를 사용해보지 않았다는 걸 깨달았다. KLUE 홈페이지에 보면 해당 모델이 RE Task에서 가장 잘 맞는다는걸 확인하지 못했던 것이었다....

무언가 수치도 그렇고 다른 팀들이 동시에 70점 근처로 올라간게 한순간에 이해가 된 발견이었다. 하지만 기존 코드에서 해당 모듈로 수정해서 제출해 보았으나... 그 결과는 참담했다... 내가 무언가 코드를 잘못 작성을 한게 아닌가 라는 의심이 들었다.

두번째로는 기존에 작성한 type entity marker 기법을 사용했던것이 논문에 작성된 방법과 다르게 잘못 구현이 되어있었음을 알게 되었다.

  • <PER>을 넣으면 closure </PER>는 자동으로 추가 될거라 생각했는데 그게 아니었다.

  • type entity marker punct 의 경우 special token으로 지정하지 않으면 기호나 NOH 등을 unknown으로 인식하거나, 분리하게 된다.

    • special token이 가지는 의미가 한 단어로 인식하게끔 하는 것인지 아니면 그 외에 다른 어떤 의미를 가지는 것인지 모르겠다...

    • 효석님은 위 문제를 해소하기 위해 한글로 치환해서 넣었다고 한다. ("PER": "사람")

위와 같이 코드를 수정하여도 사실 기대하던 결과는 얻을 수가 없었다...

제출

1차 제출

model_name = klue/roberta-large
optimizer_name = AdamW
scheduler_name = CosineAnnealingLR

loss_name = CrossEntropy_weighted
num_train_epochs = 10
learning_rate = 5e-5
batch_size = 32
warmup_steps = 500
weight_decay = 0.01
early_stopping = 3 # with eval/loss
random_state= 42

eval_steps = 500
seed = 42

2차 제출

model_name = klue/roberta-large
optimizer_name = AdamW
# scheduler_name = LRscheduler #안쓰고 있었음...

loss_name = CrossEntropy
num_train_epochs = 10
learning_rate = 5e-5
batch_size = 32
warmup_steps = 500
weight_decay = 0.01
early_stopping = 3 # with eval/loss
random_state= 42

eval_steps = 500
seed = 42

tokenized method = type-entity-marker-punct

Summary

기대하던 결과를 얻을 수는 없었지만, 오류를 찾으면서 Tokenizer에 대해 뜯어볼 수 있었고, 아이디어를 생각할 때마다 그동안 배운 이론들이 조금씩 이해가되는 것을 느낄 수 있었다. (물론 성능이 나아지진않아 의문이지만..) 추가로 지금 다시 강의를 들으면 더 큰 도움이 되는 걸 느껴서 학습을 돌리는 동안 강의를 다시 들어보는 것이 도움이 되었다.

Last updated