2️⃣ 설명 : KorQuAD: 기계독해를 위한 한국어 질의응답 데이터셋을 기반으로 기계독해 모델 구현
3️⃣ 모델 : Hugging Face monologg/koelectra-base-v3-discriminator 모델 사용하여 진행
- 한국어 위키백과를 기반으로 한 대규모 기계 독해 데이터셋으로 KorquAD 1.0~2.0이 있지만 여기서는 1.0 버전을 활용한다.
- 스탠포드 대학교의 SQuAD 1.0를 표방한 데이터셋
- 1,560개의 한국어 위키피디아 문서에서 10,645건의 문단과 66,181개의 질의응답 쌍
- Training set 60,407 / Dev set 5,774 질의응답 쌍으로 구성
!python run_korquad.py \
--model_type electra \
--model_name_or_path monologg/koelectra-base-v3-discriminator \
--output_dir koelectra-base-v3-korquad \
--data_dir data \
--train_file korquad/KorQuAD_v1.0_train.json \
--predict_file korquad/KorQuAD_v1.0_dev.json \
--max_seq_length 512 \
--doc_stride 128 \
--max_query_length 64 \
--do_train \
--do_eval \
--evaluate_during_training \
--per_gpu_train_batch_size=16 \
--per_gpu_eval_batch_size=8 \
--learning_rate 5e-5 \
--gradient_accumulation_steps 1 \
--weight_decay 0.0 \
--adam_epsilon 1e-8 \
--max_grad_norm 1.0 \
--num_train_epochs 3 \
--max_steps -1 \
--warmup_steps 0 \
--n_best_size 20 \
--max_answer_length 30 \
--verbose_logging \
--logging_steps 1000 \
--save_steps 1000 \
--eval_all_checkpoints \
--overwrite_output_dir \
--seed 42 \
--local_rank -1 \
--threads 4
from evaluate import evaluate_result
dataset_file = 'data/korquad/KorQuAD_v1.0_dev.json'
prediction_file = 'koelectra-base-v3-korquad/predictions_korquad.json'
evaluate_result(dataset_file, prediction_file)
from evaluate import analyze_result
dataset_file = 'data/korquad/KorQuAD_v1.0_dev.json'
prediction_file = 'koelectra-base-v3-korquad/predictions_korquad.json'
f1_threshold = 0.85
model_name_or_path = 'koelectra-base-v3-korquad/checkpoint-12000'
analyze_result(dataset_file, prediction_file, f1_threshold, model_name_or_path)
개선사항 | 기타 | 진행률(%) | 진행할 사항 |
---|---|---|---|
2.0으로 업그레이드 | AIHub데이터, KorQuAD 2.0 사용 | ||
다중 태스크 학습 | 다양한 태스크의 데이터를 학습하여 효율성 극대화 |