Skip to content

boostcampaitech7/level1-semantictextsimilarity-nlp-04

Repository files navigation

alt text

Lv.1 NLP 기초 프로젝트 : 문장 간 유사도 측정(STS)

프로젝트 개요

진행 기간: 24년 9월 10일 ~ 24년 9월 26일

데이터셋:

  • 학습 데이터셋 9,324개
  • 검증 데이터셋 550개
  • 평가 데이터는 1,100개

평가 데이터의 50%는 Public 점수 계산에 활용되어 실시간 리더보드에 표기가 되고, 남은 50%는 Private 결과 계산에 활용되었습니다.

부스트캠프AI Tech 7기의 Level1 과정으로 NLP 기초 대회입니다. 주제는 ‘문장 간 유사도 측정’으로, 두 문장이 얼마나 유사한지를 수치화하는 자연어처리 N21 태스크인 의미 유사도 판별(Semantic Text Similarity, 이하 STS)을 진행했습니다. 학습 데이터에 주어진 문장 두 개와 유사도 점수를 기반으로 평가 데이터의 두 문장 간의 유사도를 0과 5 사이의 값으로 예측하는 모델을 구축하였습니다.

프로젝트 구조

📦project1
 ┣ 📂config
 ┃ ┗ 📜config.yaml
 ┣ 📂data
 ┣ 📂model
 ┃ ┗ 📜model.py
 ┣ 📂output
 ┣ 📂tb_logs
 ┣ 📂utils
 ┃ ┣ 📂ensemble
 ┃ ┣ 📂preprocess
 ┣ 📜README.md
 ┣ 📜inference.py
 ┣ 📜requirements.txt
 ┗ 📜train.py

Contributors

이예서
badge 이예서
김수진
badge 김수진
김민서
badge 김민서
홍성재
badge 홍성재
양가연
badge 양가연
홍성민
badge 홍성민

역할분담

이름 역할
김민서 베이스라인 코드 구현, 텐서보드 기능 구현, 허깅페이스 내 모델 Search, 모델링 및 튜닝(klue/roberta-large, klue/roberta-base, team-lucid/deberta-v3-base-korean, deliciouscat/kf-deberta-base-cross-sts, upskyy/kf-deberta-multitask, kakaobank/kf-deberta-base, klue/bert-base), 앙상블(soft voting, weighted voting)
김수진 Task에 적합한 모델 Search, 데이터 증강(swap), 데이터 분할, 모델링 및 튜닝(snunlp/KR-ELECTRA-discriminator), 앙상블(weighted voting)
양가연 데이터 전처리(hanspell, soynlp), 데이터 증강(copied_sentence, swap, synonym replacement, undersampling, masking), 모델링 및 튜닝(kykim/electra-kor-base, snunlp/KR-ELECTRA-discriminator, klue/roberta-large, WandB), 앙상블(weighted voting)
이예서 EDA(Label 분포, Source 분포, Sentence length 분석), 데이터 전처리(특수문자 제거, 초성 대체, 띄어쓰기/맞춤법 교정), 데이터 증강(sentence swap, sentence copy, korEDA(SR, RI, RS), K-TACC(BERT_RMR, ADVERB)), 앙상블(weighted voting)
홍성민 모델링 및 튜닝(kykim/KR-ELECTRA-Base), 앙상블(weighted voting), 베이스라인 코드 수정과 기능 추가
홍성재 하이퍼 파라미터 튜닝(BS, Epoch, LR), 모델 최적화 및 앙상블(Koelectra-base-v3-discriminator, roberta-small, bert-base-multilingual-cased / Soft voting)

Dependencies

  • torch==2.1.0
  • transformers==4.35.2
  • pytorch-lightning==2.1.2

Usage

  1. Setting
$ pip install -r requirements.txt
  1. Training
$ python3 train.py
  1. Inference
$ python3 inference.py

프로젝트 타임라인

Gantt chart template (Community) (3)

프로젝트 수행결과

Gantt chart template (Community) (4)

리더보드 결과

image

About

level1-semantictextsimilarity-nlp-04 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published