- ꡬμΆλμ΄ μλ κ΅λ΄ λ Όλ¬Έ QA λ°μ΄ν°μ μ μ΄μ©ν΄μ κ΅λ΄ λ Όλ¬Έ κ²μμ μ©μ΄νκ² νκ³ μν¨
- κΈ°κ³ λ ν΄ λͺ¨λΈ κ³ λνλ₯Ό μν ν€μλ μλ² λ©, λ¨μ λ¬Έμ₯ μλ² λ© κΈ°λ²μ μ μ
- κ° λͺ¨λΈ μ€μ κ° μ°Έκ³
- RTX 8000 x 1
- CUDA 10.2
- huggingface μ½λ μ°Έκ³
βββ data
β βββ train.json
β βββ val.json
βββ init_weight
βββ models
β βββ 1_2000_model.pt
βββ preproc
β βββ train_pre.json
β βββ val_pre.json
β βββ ###_keyword.json
βββ src
β βββ main.py
β βββ model.py
β βββ processor.py
β βββ utils.py
βββ requirements.txt
βββ README.md
- processor.py μμ λλ€μνλ§ν νμΌλ€μ κ°μ§κ³ λ°μ΄ν° μ μ²λ¦¬ β preproc λλ ν 리μ ###_pre.json νμΌ μμ±
- preproc λλ ν 리μ ν€μλ λͺ¨λΈ μ€ν κ²°κ³Ό νμΌ ###_keyword.json μμ±
βββ data
β βββ train
β β βββ train_#.json
β βββ val
β β βββ val_#.json
β βββ evidence
β βββ ###_#_pre.json
β βββ ###_#_evidence.json
βββ model
β βββ roberta_proposed
β βββ checkpoing-16883
βββ src
β βββ functions
β β βββ evaluate.py
β β βββ modules.py
β β βββ mrc_metrics.py
β β βββ processor_plus.py
β β βββ utils.py
β β
β βββ model
β βββ main_functions.py
β βββ models.py
β βββ roberta_model.py
β
βββ ir
β βββ evidence_sent_retrieval.py
β βββ processor.py
β
βββ requirements.txt
βββ evidence_processing.py
βββ README.md
- data/train , data/val μλ μλ³Έ λ Όλ¬Έ λ°μ΄ν°λ₯Ό λλ€μνλ§(5%,10%)ν νμΌλ€μ΄ λ€μ΄μμ
- data/evidence/###_pre.json νμΌμ λ Όλ¬Έ λ°μ΄ν°μ 맀μΉλλ κ²μ λͺ¨λΈ κ²°κ³Ό λ°μ΄ν°
- evidence_processing.py μμ ###_#pre.json νμΌμ κ°μ§κ³ mrc λͺ¨λΈμ μν λ°μ΄ν°λ‘ μ μ μν΄ β data/evidence λλ ν 리μ ####_evidence.json μμ±
- νμ΅/νκ°μ κ° μλ³Έ λ°μ΄ν° νμΌκ³Ό ν΄λΉνλ evidence.json νμΌμ λ‘λν΄μ μ¬μ©
- μ μνλ λ°©λ²μΌλ‘ νμ΅μν€λ, μ 곡λ°μ λ°μ΄ν°μ 10%λ₯Ό λλ€μνλ§ν λ°μ΄ν°λ₯Ό νμ΅ν model
- models/1_2000_model.pt
- μ¬μ© μ½λλ src λλ ν 리μ μ μ₯
- μ μνλ λ°©λ²μΌλ‘ νμ΅μν€λ, μ 곡λ°μ λ°μ΄ν°μ 10%λ₯Ό λλ€μνλ§ν λ°μ΄ν°λ₯Ό νμ΅ν model
- model/roberta_proposed/checkpoint-16883
- μ¬μ© μ½λλ src λλ ν 리μ μ‘΄μ¬
python main.py
-
argument μ€λͺ
-- train_flag
True: λͺ¨λΈ νμ΅-- trian_flag
False: λͺ¨λΈ νκ° / λ°λͺ¨-- data_dir
λͺ¨λΈμ κ²°κ³Ό λ°μ΄ν° μ μ₯ μμΉ-- save_dir
νμ΅λ λͺ¨λΈ μ μ₯ μμΉ-- load_dir
νμ΅λ λͺ¨λΈ λ‘λ
-
λͺ¨λΈ μ€ν κ²°κ³Όλ‘, ν€μλ μΆλ ₯ λ μ΄λΈμ΄ ν¬ν¨λ ###_keyword.json νμΌ μμ±
requirements
pip install -r requirements.txt
Training
python run_mrc.py --do_train=True --from_init_weight=True dataset_nums=5
Evaluate
python run_mrc.py --do_eval=True --from_init_weight=False --predict_file=[val_#.json] --checkpoint=16883 --filtered_context=False
Predict ββ
python run_mrc.py --do_predict=True --from_init_weight=False --checkpoint=16883
- Paper Context : λ Όλ¬Έ λ΄μ© μ λ ₯
- Question about the paper : λ Όλ¬Έ κ΄λ ¨ μ§λ¬Έ μ λ ₯
- Question Keyword from Keyword Model : μ¬μ ꡬμΆλ μ§λ¬Έ ν€μλ or ν€μλ μΆμΆ λͺ¨λΈμ΄ μμΈ‘ν μ§λ¬Έ ν€μλ μ λ ₯
- Evidence Sentence from IR Model : μ¬μ ꡬμΆλ ν€μλλ₯Ό μ΄μ©ν΄ μΆμΆν λ¨μλ¬Έμ₯ or κ²μ λͺ¨λΈμ΄ κ²μν λ¨μ λ¬Έμ₯ μ λ ₯
- argument μ€λͺ
- μμΈν μ€μ μ run_mrc.py νμΌ μ°Έκ³
-- output_dir
: νμ΅λ λͺ¨λΈ μ μ₯ μμΉ-- dataset_num
: νμ΅ν νμΌ κ°―μ-- checkpoint
: νμ΅λ λͺ¨λΈ checkpoint 16883-- from_init_weight
: pre trained roberta weight λ‘λ-- filtered_context
: κ²μλͺ¨λΈμ΄ λ§λ context μ¬μ© (κ²μλͺ¨λΈ μμΈ‘ νμΌμ΄ μμ΄μΌν¨)-- do_train
: λͺ¨λΈ νμ΅-- do_eval
: λͺ¨λΈ νκ°-- do_predict
: λ°λͺ¨ μ€ν, νμ¬ λν΄νΈ κ°