관계를 예측한다는 점에서 Textual Entailment (TE)와 헷갈릴 수 있습니다. 두 문제의 가장 큰 차이점은 ‘방향성’입니다. STS는 두 문장이 서로 동등한 양방향성을 가정하고 진행되지만, TE의 경우 방향성이 존재합니다. 예를 들어 자동차는 운송수단이지만, 운송수단 집합에 반드시 자동차만 있는 것은 아닙니다. 또한 출력 형태에 대해서도 차이가 있습니다. TE, STS 모두 관계 유사도에 대해 참/거짓으로 판단할 수 있지만, STS는 수치화된 점수를 출력할 수도 있습니다.
이처럼 STS의 수치화 가능한 양방향성은 정보 추출, 질문-답변 및 요약과 같은 NLP 작업에 널리 활용되고 있습니다. 실제 어플리케이션으로는 데이터 증강, 챗봇의 질문 제안, 혹은 중복 문장 탐지 등에 응용되고 있습니다.
우리는 STS 데이터셋을 활용해 두 문장의 유사도를 측정하는 AI모델을 구축할 것입니다. 유사도 점수와 함께 두 문장의 유사함을 참과 거짓으로 판단하는 참고 정보도 같이 제공하지만, 최종적으로 0과 5사이의 유사도 점수를 예측하는 것을 목적으로 합니다!
level1_semantictextsimilarity_nlp-level1-nlp-08
├── README.md
├── config
│ ├── base_config.yaml
│ ├── funnel_ensemble.yaml
│ ├── klue_ensemble.yaml
│ ├── xlm_5fold_ensemble.yaml
│ └── xlm_ensemble.yaml
├── create_instance.py
├── data_loader
│ └── data_loaders.py
├── final_submit.py
├── inference.py
├── main.py
├── model
│ ├── loss.py
│ └── model.py
├── requirements.txt
├── train.py
└── utils
└── utils.py
- 기본 데이터 (base)
- 학습 데이터셋 9,324개
- 검증 데이터셋 550개
- 평가 데이터는 1,100개
- 시행착오 데이터1
- 학습 데이터셋 15,277개
- 평가 데이터셋 1,689개
- 추론 데이터셋 1,100개
- 시행착오 데이터2
- 학습 데이터셋 14,369개
- 평가 데이터셋 1,500개
- 추론 데이터셋 1,100개
index | 모델 | pearson score (리더보드 점수) | test pearson (자체 점수) | 데이터 증강 / swap 여부 | 특이사항 |
---|---|---|---|---|---|
1 | kykim/funnel-kor-base | 0.9139 | 0.9216 | X/O | 텍스트 전처리 ( ?, ! 하나이상도 전부 3개로 처리, 토큰에는 추가x), lr 스케줄러(ExponentialLR) 적용, custom 모델 적용 |
2 | xlm-roberta-large 5 folds | 0.9231(5 folds), 0.9243(4 folds) | 0.9198(5 folds), 0.9271 (4 folds) | X/O | 64 batch, 소수점 처리 안함, 학습 마지막 모델 저장 |
3 | klue/roberta-large | 0.9102 | 0.9221 | X/O | custom 모델 적용 |
4 | xlm-roberta-large | 0.9236 | 0.9311 | X/O | lr 스케줄러(StepLR) 적용 |
5 | soft voting(1,2,3,4) | 0.9328 | - | X/O |
python main.py -m t -c base_config
python main.py -m ct -s 'save_models/xlm-roberta-large_maxEpoch1_batchSize32_still-mountain-1/epoch=0-step=4203-val_pearson=0.9-val_loss=0.4.ckpt' -c base_config
python main.py -m i -s 'save_models/xlm-roberta-large_maxEpoch1_batchSize32_still-mountain-1/epoch=0-step=4203-val_pearson=0.9-val_loss=0.4.ckpt' -c base_config
python main.py -m e -c base_config
- 실행 후 반복 횟수 입력