(2๊ฐ) Extraction-based MRC
1.Extraction-based MRC
๋ฌธ์ ์ ์

๋ต๋ณ์ ์์ฑํด๋ด๋ ๊ฒ์ด ์๋๋ผ ์ง๋ฌธ์์ ์ฐพ์ ์ ์๊ฒ๋๋ค.
์ด๋ฌํ ๋ฐ์ดํฐ์ ์ ์ง์ ํด๋น ์ฌ์ดํธ์์ ๋ค์ด๋ฐ์ ์๋ ์์ง๋ง huggingface์ datasets์์ ๋ค์ด์ด ๊ฐ๋ฅํ๋ค.
ํ๊ฐ ๋ฐฉ๋ฒ

์ผ์ชฝ์ SQuAD ๋ฐ์ดํฐ์ ์ด๋ฉฐ ์ค๋ฅธ์ชฝ์ LG์์ SQuAD๋ฅผ ํ ๋๋ก ๋ง๋ KorQuAD์ด๋ค.
F1 ์ ์๊ฐ EM ์ ์๋ณด๋ค ๋์ ๊ฒ์ ์ ์ ์๋ค.
EM์ ์์ธก๊ฐ๊ณผ ์ ๋ต์ด ์บ๋ฆญํฐ ๋จ์๋ก ์์ ํ ๋๊ฐ์ ๊ฒฝ์ฐ์๋ง 1์ ์ ๋ถ์ฌํ๋ฉฐ, ํ๋๋ผ๋ ๋ค๋ฅด๋ฉด 0์ ์ ๋ถ์ฌํ๋ค.
๋ฐ๋ฉด F1์ ์์ธก๊ฐ๊ณผ ์ ๋ต์ overlap์ ๋น์จ๋ก ๊ณ์ฐํ๋ฉฐ 0์ ๊ณผ 1์ ์ฌ์ด์ ๋ถ๋ถ์ ์๋ฅผ ๋ฐ์ ์ ์๋ค.
์ข ๋ ์์ธํ๋ ๋ค์๊ณผ ๊ฐ๋ค.

์ด ๋ G.T๊ฐ ์ฌ๋ฌ๊ฐ์ด๋ฏ๋ก ๊ฐ๊ฐ์ G.T์ ์์ธก์ ๋น๊ตํ๊ฒ ๋๊ณ ๊ฐ์ฅ ์ต๊ณ ์ ์ ์๋ฅผ F1 Score๋ก ์ง์ ํ๋ค.
Overview

์ง๋ฌธ๊ณผ ์ง๋ฌธ์ด ๊ฐ๊ฐ ์๋ฒ ๋ฉ๋์ด ๋ชจ๋ธ์ ๋ค์ด๊ฐ๊ฒ ๋๊ณ ๋ชจ๋ธ์ ํน์ ์ํ์ค๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ์๋๋ผ ๋ต์ด๋ผ๊ณ ์์ธก๋๋ ํ ํฐ์ ํฌ์ง์ ์ ๋ฐํํ๋ค.
2.Pre-processing
Tokenization
์ฌ๊ธฐ์๋ OOV ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ฃผ๊ณ ์ ๋ณดํ์ ์ผ๋ก ์ด์ ์ ๊ฐ์ง BPE๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ฉฐ ์ด ์ค WordPiece Tokenizer๋ฅผ ์ฌ์ฉํ๋ค.
OOV : Out-Of-Vocaburary
BPE : Byte Pair Encoding
Special Tokens
[CLS] ์ง๋ฌธ [SEP] ์ง๋ฌธ ์ ๊ผด๋ก ๋ชจ๋ธ์ ์
๋ ฅ๋๋ค.
Attention Mask
์ ๋ ฅ ์ํ์ค ์ค์์ attention ์ฐ์ฐ์ ํ ๋ ๋ฌด์ํ ํ ํฐ์ ํ์ํ๋ค. 0์ ๋ฌด์, 1์ ์ฐ์ฐ์ ํฌํจํ๋ค. [PAD]์ ๊ฐ์ด ์๋ฏธ๊ฐ ์๋ ํน์ํ ํฐ์ ๋ฌด์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
Token Type IDs

์ง๋ฌธ์๋ 0, ์ง๋ฌธ์๋ 1์ ์ฃผ๋ฉฐ PAD์๋ ํธ์์ 0์ ์ค๋ค.
๋ชจ๋ธ ์ถ๋ ฅ๊ฐ

๋ง์ฝ, ์ ๋ต์ด '๋ฏธ๊ตญ ์ก๊ตฐ ๋ถ ์ฐธ๋ชจ ์ด์ฅ' ์ด๋ผ๋ฉด 84์ 88์ ๋ฐํํ๊ฒ ๋๋ค. ๊ทผ๋ฐ ๋ง์ฝ ํ ํฐํ๊ฐ '์ ๋ฏธ๊ตญ', '์ก๊ตฐ', '๋ถ', '์ฐธ๋ชจ์ด', '์ฅ์ด' ๋ก ๋์ด์์ผ๋ฉด ์ด๋ป๊ฒ ํ ๊น? ์ด ๋๋ ์ ์๊ฐ ์ข ๋ฎ์์ง ์๋ ์๊ฒ ์ง๋ง ๊ทธ๋๋ ์ต์ SPAN์ ์ก์๋ค๋ ๊ฒ์ผ๋ก ์ธ์งํ๊ณ ๊ทธ๋๋ก ์ด ํ ํฐ์ ์ฌ์ฉํ๊ฒ ๋๋ค.
3.Fine-tuning

start, end token์ด๋ผ๊ณ ์์๋๋ ๋ฒกํฐ๋ ํด๋น ํฌ์ง์ ์ด ์ง์ง ์์, ๋ token์ผ ํ๋ฅ ์ด๋ฉฐ ์ด๋ฅผ ์ค์ ๋ต์ start/end ์์น์ cross-entropy loss๋ฅผ ํตํด ํ์ตํ๋ค.
4.Post-processing
๋ถ๊ฐ๋ฅํ ๋ต ์ ๊ฑฐํ

์ง๋ฌธ์์ ๋ต์ด ์์ ๊ฒฝ์ฐ ์์ธกํ context๋ฅผ ๋ฒ์ด๋ ์ ์๋ค.
์ต์ ์ ๋ต์ ์ฐพ๊ธฐ

์ค์ต
Requirements
7 : ํน์ ํด๋์ ์๋ ํน์ ํ์ด์ฌ ์ฝ๋๋ค์ ํ์ฌ ํ๊ฒฝ์ import ํ ์ ์๋ค.
๋ฐ์ดํฐ ๋ฐ ํ๊ฐ ์งํ ๋ถ๋ฌ์ค๊ธฐ
dataset์ train๊ณผ valid๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ dataset์ ๊ฐ๊ฐ์ ์์ id, title, context, question, answers๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
dataset['train']์ผ๋ก train dataset์ ์ ๊ทผํ ์ ์์ผ๋ฉฐdataset['train'][0]์ผ๋ก ํน์ example์ ์ ๊ทผํ ์ ์๋ค.
Pre-trained ๋ชจ๋ธ ๋ถ๋ฌ์ค๊ธฐ
config์ tokenizer ๊ทธ๋ฆฌ๊ณ model์ Auto series library๋ฅผ ํตํด ๋ถ๋ฌ์ฌ ์ ์๋ค.
์ค์ ํ๊ธฐ
max_seq_length๋ฅผ ์ค์ ํด์ผ ๋ชจ๋ธ์ size๋, pad๋ ์ ํ ์ ์๋ค.
pad_to_max_length=True๋ ๋จ์ ์ํ์ค๋ฅผ pad๋ก ์ฑ์ฐ๊ฒ ๋ค๋ ๊ฒ
doc_stride
max_train_samples, max_val_samples : ํ์ต ๋ฐ ๊ฒ์ฆํ ๋ฐ์ดํฐ ์๋ฅผ ์ ํด๋๋๋ค. ์ฌ๊ธฐ์๋ ๊ฐ๋จํ ํ ์คํธ ์ฉ์ด๊ธฐ ๋๋ฌธ์ ์๊ฒ ์ ํ์ง๋ง ์ค์ ๋ก๋ ๋งค์ฐ ํฐ ์๊ฐ ์ ๋ ฅ๋๋ค.
preprocessing_num_workes : 4์ด์์ผ๋ก๋ ๋ณดํต ํ์๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ ํ๋์จ์ด์ dependent ํ๋ค.
n_best_size : ๋ต๋ณ ๊ธธ์ด์ ์ต์ ์ ๊ธธ์ด๋ฅผ ์ค์ ํ๋ค.
max_answer_length : ๋๋ฌด ๊ธด ๋ต๋ณ์ด ๋์ค์ง ์๋๋ก ์กฐ์ ํ๋ค.
์ ์ฒ๋ฆฌํ๊ธฐ
๋ฐ์ดํฐ๋ฅผ ์ฌ์ ์ ์ค์ ํ๋ ๋๋ก ์ ์ฒ๋ฆฌํด์ dictionary ํํ๋ก ๋ฐํํ๊ฒ ๋๋ค.
select๋ฅผ ์ด์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ผ์ ์ ๋งํผ ๋ฝ์ ์ ๋ค.
valid ๋ฐ์ดํฐ๋ ๋๊ฐ์ด ์ฒ๋ฆฌ ์ค๋ค.
Fine-tuning ํ๊ธฐ
default_data_collator : ์ฌ๋ฌ ๊ฐ์ example์ collate ํด์ฃผ๋ ์ญ
TrainingArguments : ํ์ต์ ํ ๋ ์ค ์ ์๋ config๋ฅผ ํ๋ฒ์ ์ค ์ ์๋ ํธ๋ฆฌํ ๊ธฐ๋ฅ
Eval Prediction : ์ข ๋ ํธํ๊ฒ ์์ธกํ ์ ์๋๋ก ํจ
QuestionAnsweringTrainer : ํ์ต์ ๋ ํธํ๊ฒ ์ ์๋ค.
postprocess_qa_predictions : ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ๋์ ํ๋ฒ ๋ post process๋ฅผ ํด์ผํ๋๋ฐ ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ค๋ค.
ํ๊ฐํ
Last updated