boostcampaitech3 / level2-klue-level2-nlp-09

네이버 부스트캠프 | KLUE Relation Extraction(RE)
7 stars 7 forks source link
boostcamp-ai-tech klue natural-language-processing nlp relation-extraction

KLUE Relation Extraction Competition - NLP 9조(MnM)

네이버 부스트캠프 AI Tech 3기 P-Stage(Level 2) NLP Competition을 위해 작성된 코드입니다. 해당 Competition에서는 KLUE RE 데이터셋을 이용해서 문장 내 개체간 관계 추출작업을 시행합니다. 문장, 단어에 대한 정보를 통해 문장 속에서 단어 사이의 관계를 추론하는 모델을 학습시킵니다.

MnM Team Introduction & Score

Score

public 6th private 4th

Wrap-up Report

>>>Click Here<<<

Team Logo

Team Logo

Public & Private Leaderboard

▶ Public Score

image

▶ Private Score

image

Members

김태일 문찬국 이재학 하성진 한나연
detailTales nonegom wogkr810 maxha97 HanNayeoniee
gimty97@gmail.com fksl9959@naver.com jaehahk810@naver.com maxha97@naver.com nayeon2.han@gmail.com

Members' Role

Member Role
김태일 input sentence tagging, custom model 제작 ,앙상블 코드 제작, 성능 검증 코드 제작
문찬국 Multi-Sentence, Tagging 실험, Refactoring, Sweep구현, 앙상블 실험, 협업툴(GIt) 관리, TestRecording 구현
이재학 EDA(중복 및 mislabeling 제거), 평가 metric 분석, 하이퍼 파라미터 튜닝(Ray, Optuna), Random Seed 및 EarlyStopping 구현
하성진 Custom Loss 구현 및 실험, Entity Type Restriction 모델 구현 및 실험, KFold 코드 제작, AMP 적용
한나연 EDA, Data Augmentation, Curriculum Learning 적용, confusion matrix 시각화

Description

문장 속에서 단어간에 관계성을 파악하는 것은 의미나 의도를 해석할 때 많은 도움이 되고, 요약된 정보를 바탕으로 QA시스템과 같은 여타의 시스템 및 서비스 구성이 가능합니다. 관계 추출(Relation Extraction) 은 문장의 단어(Entity)에 대한 속성과 관계를 예측하는 문제로, 자연어처리 응용 프로그램에서 중요한 Task입니다. 이번 대회에서는 문장, 단어에 대한 정보를 통해 문장 속에서 단어 사이의 관계를 추론하는 모델을 학습시키고, 이를 통해 인공지능 모델이 단어들의 속성과 관계를 파악하며 개념을 학습할 수 있습니다.

Usage

1) Installation

2) Train model

Config

train.py와 inference.py에서 동일한 실험 세팅을 위해 config.json을 사용할 수 있습니다.

Git Commit Rule

협업을 위해 Git Commit Rule(깃허브 커밋 룰)을 참고해 Git Commit Rule을 설정했습니다. ex) feat: add new code

- feat      : 새로운 기능 추가
- debug     : 버그 수정
- docs      : 문서 수정
- style     : 코드 formatting, 세미콜론(;) 누락, 코드 변경이 없는 경우
- refactor  : 코드 리팩토링
- test      : 테스트 코드, 리팩토링 테스트 코드 추가
- chore     : 빌드 업무 수정, 패키지 매니저 수정
- exp       : 실험 진행
- merge     : 코드 합칠 경우
- anno      : 주석 작업
- etc       : 기타

Code Structure

level2-klue-level2-nlp-09
├── utils
│   ├── eda(duplicate_mislabeling).ipynb
│   ├── confusion_matrix.ipynb
│   ├── ensemble.ipynb
│   └── test_model.ipynb
├── train.py
├── load_data.py
├── inference.py
├── training_loss.py
├── data_augmentation.py
├── test_recording.py
└── train_sweep.py