Skip to content

yeseoLee/Semantic-Textual-Similarity

 
 

Repository files navigation

NLP 프로젝트: 문장 간 유사도 측정(STS)

프로젝트 개요

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

데이터셋:

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

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

두 문장이 얼마나 유사한지를 수치화하는 의미 유사도 판별(Semantic Text Similarity, 이하 STS)을 진행했습니다. 학습 데이터에 주어진 문장 두 개와 유사도 점수를 기반으로 평가 데이터의 두 문장 간의 유사도를 0과 5 사이의 값으로 예측하는 모델을 구축하였습니다.

리더보드 결과

  • 16팀 중 5위

image

프로젝트 타임라인

Gantt chart template (Community) (3)

프로젝트 수행결과

Gantt chart template (Community) (4)

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)

프로젝트 구조

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

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

About

문장 간 유사도 측정 프로젝트

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 95.1%
  • Python 4.9%