(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