네이버 부스트캠프/LEVEL-2

[부스트캠프][P-stage][WK09 / Day38] KLUE RE 2

1. 금일 목표

  1. 모자란 EDA 추가 진행
  2. EDA 바탕으로 Pororo word_translation 등을 이용해 명훈님 코드 base로 전처리 코드 작성
  3. 강의 3, 4강 수강
  4. OPTUNA

2. 진행사항

1) 모자란 EDA 추가 진행

  • POH 기준, Object Entity랑 Label 잘못 된 것들 수정하자!
  • 나라는 LOC인가 ORG인가?
  • 과연 Object Entity가 하나로 정해져야 하는 걸까?
    • 맥락에 따라 달라지는 경우: e.g. 김 씨가문 : ORG, 김씨는~ : PER
    • 물론 명백히 잘못된 것도 있다.
    • PTR 적용에 있어 올바른 entity type은 중요
  • Hierarchical 분석

2) EDA 바탕으로 Pororo word_translation 등을 이용해 명훈님 코드 base로 전처리 코드 작성

EDA가 생각보다 오래걸려 아직 다 진행하지 못했습니다.

3) 강의 3, 4강 수강

BERT 언어모델 소개, 한국어 BERT 언어 모델 학습 강의를 수강.
huggingface 모듈의 사용 방법에 대해 전체적으로 파악하였습니다. 코드를 직접적으로 공개하진 못하지만 프로젝트를 진행하는데 도움이 되었습니다.

4) OPTUNA

import optuna

if __name__ == '__main__':
    if args.optuna:
        def train_optuna(trial):
            # optuna Setting
            args.epochs = trial.suggest_int('n_epochs', optuna_epoch_min, optuna_epoch_max)
            args.lr = trial.suggest_loguniform('lr', optuna_lr_min, optuna_lr_max)
            args.optimizer = trial.suggest_categorical('optimizer', optuna_optimizer)
            print(args)
            return train(data_dir, model_dir, args)

        study = optuna.create_study(direction='maximize') 
        study.optimize(train_optuna, n_trials=optuna_ntrials)
        print(f"Best F1 Val: {study.best_trial.value}\n Params\n {study.best_trial.params}\n Save at {model_dir}/optuna.json")
        with open(os.path.join(model_dir, f'optuna_{args.name}_{study.best_trial.value}.json'), 'w', encoding='utf-8') as f:\
            json.dump(study.best_trial.params, f, ensure_ascii=False, indent=4)
    else:
        print(args)
        train(data_dir, model_dir, args)

5) 서로 다른 파라미터, 모델로 실험 및 제출 1회

새롭게 재정비한 데이터셋을 사용하여 작일과 동일한 파라미터, 모델로 학습하여 제출했습니다.

 

 


새로운 데이터셋이 더 성능이 높아졌습니다.


위 실험 그래프의 분홍색이 제출한 모델입니다. 더 큰 electra 모델을 사용해 제출은 하지 않았지만 추가적인 실험을 진행했고, "tunib/electra-ko-en-base" 모델(초록색)을 사용했을때 실험 결과가 가장 좋았습니다. 추후 제출해볼 예정입니다.


3. 피어세션 정리

  • 스몰톡
  • 아이디어 교환
  • 싱글모델 실험 결과 공유
  • 롤 체킹 : 주간, 일일 목표 공유 및 진행상황 체크