- ODQA 는 주어진 질문에 적절한 답을 찾는 과정이며,Retriever, Reader 두 단계로 구성되어 있습니다.
- 먼저 질문에 대한 답을 품고 있는 지문을 검색하는 Retriver 과정을 거치게 됩니다.
- 이후 해당 지문 속 정답을 찾는 Reader 과정을 통해 최종 아웃풋을 얻을 수 있습니다.
!pip install datasets
!pip install transformers
!pip install elasticsearch
!pip install pororo
# Mecab 설치
!sudo apt-get install g++ openjdk-8-jdk python3-dev python3-pip curl
!python3 -m pip install --upgrade pip
!python3 -m pip install konlpy
!sudo apt-get install curl git
!bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)
# Haystack 설치
!pip install git+https://github.com/deepset-ai/haystack.git
|-- dpr # Retriever
| |-- dpr_train.py
| |-- korquad_preprocess.py
| `-- squad_to_dpr.py
|-- mrc # Reader
| |-- tag_compound
| | |-- __init__.py
| | |-- data
| | | |-- tag_train.tsv
| | | |-- tag_train_augmented.tsv
| | | `-- tag_valid.tsv
| | |-- inference.py
| | |-- load_data.py
| | |-- tag_compound.py
| | |-- tag_inference.py
| | `-- train.py
| |-- arguments.py
| |-- customAddedConv.py
| |-- train.py
| |-- trainer_qa.py
| `-- utils_qa.py
`-- readme.md
- Retriver 학습 데이터 : wikipedia기반 QA 데이터셋(KorQuAD 1.0, AI hub 기계 독해)
- korquad_preprocess.ipynb 실행
- KorQuAD 1.0, AI hub 데이터 셋을 합치고 DPR 학습에 맞도록 positive-negative pair dataset 구성
- 각 query마다 Elasticsearch를 이용해서 negative sample을 16개씩 생성
python dpr_train.py
- MRC 학습 데이터 : KLUE MRC Dataset
train.py 를 실행하면 mrc 모델의 학습이 진행됩니다.
cd ./mrc
# 학습 예시 (학습 중 validation 을 동시에 하려면 --do_eval 추가)
python train.py --output_dir [path to save trained model] --do_train
# 추론 예시
python train.py --model_name_or_path [path to load trained model] --do_eval
김남혁_T1014 | 서일_T1093 | 엄희준_T1122 | 우종빈_T1129 | 이보현_T1148 | 장보윤_T1178 |
---|---|---|---|---|---|