Skip to content

boostcampaitech7/level2-mrc-nlp-07

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Open-Domain Question Answering(ODQA)

๐Ÿ“•ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ๋ถ€์ŠคํŠธ์บ ํ”„ AI Tech NLP ํŠธ๋ž™์—์„œ ๊ฐœ์ตœ๋œ level 2 ๋Œ€ํšŒ

  • Linking MRC and Retrieval: Open-domain Question Answering(ODQA) Task.

    • ODQA: ์ง€๋ฌธ์ด ๋”ฐ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์€ ์ฑ„๋กœ ๋ฐฉ๋Œ€ํ•œ World Knowledge์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์งˆ์˜์‘๋‹ต
    • ์งˆ๋ฌธ์— ๊ด€๋ จ๋œ ๋ฌธ์„œ๋ฅผ ์ฐพ๋Š” retriever์™€ ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ์ ์ ˆํ•œ ๋‹ต๋ณ€์„ ์ฐพ๊ฑฐ๋‚˜ ๋งŒ๋“œ๋Š” reader์˜ two-stage๋กœ ๊ตฌ์„ฑ.
  • ํ•™์Šต ๋ฐ์ดํ„ฐ์…‹์€ 3,952๊ฐœ, ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ๋Š” 240๊ฐœ, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋Š” 600๊ฐœ๋กœ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ค‘ 40%๋งŒ Public์œผ๋กœ ๋ฐ˜์˜ ๋Œ€ํšŒ ์ข…๋ฃŒ ํ›„ Private ์ ์ˆ˜๊ฐ€ ๊ณต๊ฐœ๋จ.

    • id : ์งˆ๋ฌธ์˜ ๊ณ ์œ  id
    • question : ์งˆ๋ฌธ
    • answers : ๋‹ต๋ณ€์— ๋Œ€ํ•œ ์ •๋ณด, ํ•˜๋‚˜์˜ ์งˆ๋ฌธ์— ํ•˜๋‚˜์˜ ๋‹ต๋ณ€๋งŒ ์กด์žฌ.
      • answer_start : ๋‹ต๋ณ€์˜ ์‹œ์ž‘ ์œ„์น˜
      • text : ๋‹ต๋ณ€์˜ ํ…์ŠคํŠธ
    • context : ๋‹ต๋ณ€์ด ํฌํ•จ๋œ ๋ฌธ์„œ
    • title : ๋ฌธ์„œ์˜ ์ œ๋ชฉ
    • document_id : ๋ฌธ์„œ์˜ ๊ณ ์œ  id
  • Exact Match, F1 Score๋ฅผ ํ†ตํ•œ ํ‰๊ฐ€.

๐Ÿ“†์„ธ๋ถ€์ผ์ •

๊ณตํ†ต

  • ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„(4์ฃผ) : 09.30(์›”) ~ 10.24(๋ชฉ)
  • ์ž๋ฃŒ์กฐ์‚ฌ: 9.30(์›”) ~ 10.06(์ผ)
  • ๊ฐ•์˜ ์ˆ˜๊ฐ• ๋ฐ ๊ณผ์ œ ์ง„ํ–‰: 10.01(ํ™”) ~ 10.10(๋ชฉ)
  • ๋ฐ์ดํ„ฐ EDA: 10.07(์›”) ~ 10.10(๋ชฉ)

Retriever ํŒ€

  • Sparse ๋ฐ Dense ๊ตฌํ˜„: 10.11(๊ธˆ) ~ 10.13(์ผ)
  • Sparse ๋ฐ Dense ๊ณ ๋„ํ™”: 10.14(์›”) ~ 10.16(์ˆ˜)
  • Re-ranking ์‹คํ—˜ ๋ฐ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹: 10.17(๋ชฉ) ~ 10.23(์ˆ˜)

Reader ํŒ€

  • Reader ๊ตฌ์กฐ ์„ค์ • : 10.11(๊ธˆ) ~ 10.13(์ผ)
  • Reader ์žฌ๊ตฌ์„ฑ ๋ฐ ๋ฒ ์ด์Šค๋ผ์ธ ์ˆ˜๋ฆฝ: 10.14(์›”) ~ 10.16(์ˆ˜)
  • ๋ชจ๋ธ ๊ฒฐํ•ฉ ๋ฐ LLM ์‹คํ—˜: 10.17(๋ชฉ) ~ 10.21(์›”)
  • ๋ชจ๋ธ ์„ ์ • ๋ฐ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹: 10.19(ํ† ) ~ 10.23(์ˆ˜)

๐Ÿ˜ํŒ€์†Œ๊ฐœ

๊ฐ•๊ฐ์ฐฌ ์ด์ฑ„ํ˜ธ ์˜ค์Šน๋ฒ” ์ด์„œํ˜„ ์œ ์ฑ„์€ ์„œ์žฌ๋•
๊ผฌ๋ถ€๊ธฐ1 ๊ผฌ๋ถ€๊ธฐ2 ๊ผฌ๋ถ€๊ธฐ3 ๊ผฌ๋ถ€๊ธฐ4 ๊ผฌ๋ถ€๊ธฐ5 ๊ผฌ๋ถ€๊ธฐ6
@๊ฐ์ฐฌ @์ฑ„ํ˜ธ @์Šน๋ฒ” @์„œํ˜„ @์ฑ„์€ @์žฌ๋•
๊ณ ๋…ํ•œ ์Œ์•…์ธ ๊ฐ์ฐฌ ํ˜ผ์ž์žˆ๋Š” ์ง€๋ฐฉ๋Ÿฌ ์ฑ„ํ˜ธ ์‚ด์„ ๋นผ์•ผํ•˜๋Š” ์Šน๋ฒ” ๊ท€์—ผ๋‘ฅ์ด ๋ง‰๋‚ด ์„œํ˜„ ์•ผ๊ตฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ฑ„์€ ์˜ค๋ฆฌ๋Š” ๊ฝฅ๊ฝฅ ์žฌ๋•
Project Manager, ํ†ตํ•ฉ ๊ด€๋ฆฌ ๋ชจ๋“ˆ, ๋ฆฌ๋”์˜ ๋ฆฌ๋” EDA, ๋ฐ์ดํ„ฐ ๋ถ„ํ™”, ๊ธฐํƒ€ ์‹คํ—˜, ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ Sparse ์ž„๋ฒ ๋”ฉ ๊ตฌํ˜„, ๊ธฐ์ˆ  ์ง€์›, ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด, ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ชจ๋ธ ๊ฒฐํ•ฉ ๋ฐ ์‹คํ—˜ ํŒ€ ๋ฆฌ๋”, retriever ํŒ€์žฅ, Dense ์ž„๋ฒ ๋”ฉ ๊ตฌํ˜„, Data ์ •์ œ ๋ฐ์ดํ„ฐ ์ „/ํ›„์ฒ˜๋ฆฌ, ๋ชจ๋ธ ๊ฒฐํ•ฉ ๋ฐ ์‹คํ—˜

ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰ ์ ˆ์ฐจ ๋ฐ ๋ฐฉ๋ฒ•

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” ODQA ์‹œ์Šคํ…œ์˜ ๊ฐœ๋ฐœ์„ ๋ชฉํ‘œ๋กœ ํ•˜์—ฌ, Retrieval๊ณผ Reader ๋ชจ๋ธ๋กœ ๊ตฌ์„ฑ๋œ ์‹œ์Šคํ…œ์„ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๊ณ„ํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐ ํŒ€์›์€ Dense/Sparse Embedding ๋ฐ ๋ฐ์ดํ„ฐ ์ •์ œ, ์ „์ฒ˜๋ฆฌ, ํ‰๊ฐ€ ์ง€ํ‘œ ์„ค๊ณ„, ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋“ฑ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ๊ฑธ์นœ ๊ฐ ์š”์†Œ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋‹ด๋‹นํ•˜์˜€์œผ๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ˆ์ฐจ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

1. ๋ชฉํ‘œ ์„ค์ • ๋ฐ ๊ณ„ํš ์ˆ˜๋ฆฝ

ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ์— ํŒ€์›๋“ค์ด ๋ถ€์ŠคํŠธ์บ ํ”„ ์ฐธ๊ฐ€ ๋™๊ธฐ์™€ ๊ฐ์ž์˜ ํ•™์Šต ๋ชฉํ‘œ๋ฅผ ๊ณต์œ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๊ณต์œ ๋œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ํŒ€ ๋‹จ์œ„ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•˜์˜€๊ณ , ๋ฆฌ๋”๋ณด๋“œ ์ˆœ์œ„๋ณด๋‹ค๋Š” ODQA ์‹œ์Šคํ…œ์˜ ๊นŠ์€ ์ดํ•ด๋ฅผ ์ค‘์ ์œผ๋กœ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„, SMART ๋ชฉํ‘œ ์„ค์ • ๋ฐฉ์‹์„ ๋„์ž…ํ•˜์—ฌ ๊ตฌ์ฒด์ ์ด๊ณ  ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ๋ชฉํ‘œ๋ฅผ ์ˆ˜๋ฆฝํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ „์ฒด ํ”„๋กœ์ ํŠธ๋Š” Retriever๊ณผ Reader๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํŒ€์„ ๊ตฌ์„ฑํ•˜์˜€๊ณ , ๊ฐ ํŒ€์€ ๋…๋ฆฝ์ ์œผ๋กœ ์ตœ์ ํ™”๋œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์‹คํ—˜๊ณผ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ์…‹ EDA ๋ฐ ์ „์ฒ˜๋ฆฌ

2.1 ๋ฐ์ดํ„ฐ์…‹ ๋ถ„์„

ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ ๋‹จ๊ณ„์—์„œ MRC(Machine Reading Comprehension) ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•œ EDA๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ํŠน์„ฑ์„ ๋ถ„์„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์…‹์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ์ธ ์งˆ๋ฌธ, ์ •๋‹ต, ๋ฌธ๋งฅ์˜ ์—ฐ๊ด€์„ฑ์„ ํŒŒ์•…ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ •์ œ ๋ฐ ์ „์ฒ˜๋ฆฌ ํ•„์š”์„ฑ์„ ๋„์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

2.2 ๋ฐ์ดํ„ฐ ์ •์ œ ๋ฐ ์ „์ฒ˜๋ฆฌ

๋ฐ์ดํ„ฐ ์ •์ œ ๊ณผ์ •์—์„œ๋Š” ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ๋ชจ๋ธ์ด ํ•™์Šตํ•˜๊ธฐ ์ ํ•ฉํ•œ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ์…‹์„ ๋ณ€ํ™˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์งˆ๋ฌธ์— ํ•œ๊ธ€, ์˜์–ด, ์ˆซ์ž๊ฐ€ ํ˜ผํ•ฉ๋œ ๊ฒฝ์šฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ํ•œ๊ธ€์ด ์ „ํ˜€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ฌธ์„œ๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ํŠน์ˆ˜ ๋ฌธ์ž์™€ ์ฝ”๋“œ๋กœ ์ถ”์ •๋˜๋Š” ๋ฐ์ดํ„ฐ ๋“ฑ์„ ํ•„ํ„ฐ๋งํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, KorQuAD์™€ ๊ฐ™์€ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•์„ ์ˆ˜ํ–‰ํ•˜์˜€์œผ๋ฉฐ, ์งˆ๋ฌธ์— ๋ช…์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ์ „์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์€ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ๊ฐœ์„ ๊ณผ ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ ํ–ฅ์ƒ์— ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

3. ๋ชจ๋ธ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„

3.1 Retriever ์„ค๊ณ„

Retriever ๋ชจ๋ธ์˜ ์„ค๊ณ„๋Š” Sparse์™€ Dense Embedding ๋ฐฉ์‹์„ ๋ชจ๋‘ ๊ณ ๋ คํ•˜์˜€์Šต๋‹ˆ๋‹ค. Sparse Embedding์—์„œ๋Š” TF-IDF์™€ BM25๋ฅผ ์‹คํ—˜ํ•˜์˜€๊ณ , ๋‹ค์–‘ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •๊ณผ ํ† ํฌ๋‚˜์ด์ € ์‹คํ—˜์„ ํ†ตํ•ด ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ๋„๋ชจํ•˜์˜€์Šต๋‹ˆ๋‹ค. BM25์˜ ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•˜๋‹ค๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ max_feature, n-gram, BM25์˜ k1๊ณผ b ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ์„ ์กฐ์ •ํ•˜๋ฉฐ ์ตœ์ ์˜ ์กฐํ•ฉ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

Dense Embedding์—์„œ๋Š” BERT ๊ธฐ๋ฐ˜์˜ multilingual ๋ชจ๋ธ๊ณผ ํ•œ๊ตญ์–ด ์ „์šฉ ๋ชจ๋ธ์„ ํ™œ์šฉํ•˜์˜€๊ณ , ๋‹จ์ˆœํžˆ Dense Embedding๋งŒ์œผ๋กœ๋Š” ์„ฑ๋Šฅ์ด ๋†’์ง€ ์•Š๋‹ค๋Š” ์ ์„ ์ธ์‹ํ•˜์—ฌ, Sparse ๋ชจ๋ธ์˜ ์ƒ์œ„ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ Dense ๋ชจ๋ธ์ด ์žฌ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹คํ—˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ตœ์ข…์ ์œผ๋กœ๋Š” Sparse Embedding ๋‹จ์ผ ์‚ฌ์šฉ์ด ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ ์ด๋ฅผ ์ตœ์ข… ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

3.2 Reader ์„ค๊ณ„ ๋ฐ ๋ฆฌํŒฉํ† ๋ง

Reader ๋ชจ๋ธ์€ ๋‹ค์–‘ํ•œ pre-trained ๋ชจ๋ธ์„ ์‹คํ—˜ํ•˜์—ฌ ์ตœ์ ์˜ ๋ชจ๋ธ์„ ์„ ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ธฐ์กด ๋ฒ ์ด์Šค๋ผ์ธ ์ฝ”๋“œ์˜ ๊ตฌ์กฐ์  ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๊ฐœ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Reader ํด๋ž˜์Šค๋Š” ํ•™์Šต, ํ‰๊ฐ€, ์˜ˆ์ธก ๋“ฑ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ชจ๋“ˆํ™”ํ•˜์˜€๊ณ , ์ „/ํ›„์ฒ˜๋ฆฌ ๋ชจ๋“ˆ๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์˜ ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด DataHandler์™€ DataProcessor ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ˜•๊ณผ ์ฒ˜๋ฆฌ๊ฐ€ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ด๋ฃจ์–ด์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

4. ๋ชจ๋ธ ์„ฑ๋Šฅ ์‹คํ—˜ ๋ฐ ํ‰๊ฐ€

4.1 Sparse/Dense Embedding ์‹คํ—˜

๊ฐ Embedding ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ํ† ํฌ๋‚˜์ด์ € ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, BM25์˜ max_feature์™€ n-gram ์กฐํ•ฉ, Dense ๋ชจ๋ธ์˜ negative sampling ๋น„์œจ ๋ฐ epoch ์„ค์ • ๋“ฑ์„ ์‹คํ—˜ํ•˜์˜€์œผ๋ฉฐ, ์‹คํ—˜ ๊ฒฐ๊ณผ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ธฐ๋กํ•˜์—ฌ ๊ฐ ์„ค์ •์˜ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

4.2 ํ‰๊ฐ€ ์ง€ํ‘œ ์„ค๊ณ„

Sparse ๋ฐ Dense ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก Retrieval ์„ฑ๋Šฅ ํ‰๊ฐ€๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ง€ํ‘œ๋ฅผ ๋„์ž…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Exact Match(EM), F1 Score ์™ธ์—๋„ Context in Retriever, Reverse Ranking, Linear Ranking ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฌธ์„œ ๊ฒ€์ƒ‰ ๋‹จ๊ณ„์—์„œ์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ชจ๋ธ์ด ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ๋งฅ์„ ์–ผ๋งˆ๋‚˜ ์ž˜ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

5. ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„

5.1 ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„

ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ ์ฝ”๋“œ๋“ค์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„๋ฅผ ํ†ตํ•ด ๊ตฌ์กฐํ™”ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ๋ชจ๋“ˆํ™”๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์˜ ๋…๋ฆฝ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ํ™•๋ณดํ•˜์˜€์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ํด๋ž˜์Šค๊ฐ€ ํ•˜๋‚˜์˜ ์ฑ…์ž„์„ ๊ฐ–๋„๋ก ์„ค๊ณ„ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Reader ํด๋ž˜์Šค๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋ฐ ํ•™์Šต ๋ชจ๋“ˆ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์žฌ์„ค๊ณ„๋˜์—ˆ๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ์‹คํ—˜์ด ์šฉ์ดํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

6. LLM ๋ฐ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ• ์‹คํ—˜

๋ฐ์ดํ„ฐ ์ฆ๊ฐ•์„ ์œ„ํ•ด KorQuAD์™€ ๊ฐ™์€ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•˜์˜€๊ณ , LLM์„ ํ™œ์šฉํ•˜์—ฌ ์งˆ๋ฌธ ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ด์ƒ์น˜ ์ฒ˜๋ฆฌ ๋“ฑ์˜ ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์‹คํ—˜ ๊ณผ์ •์—์„œ ์งˆ๋ฌธ ์ƒ์„ฑ์˜ ํ’ˆ์งˆ์ด ์„ฑ๋Šฅ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ํ™•์ธํ•˜์˜€์œผ๋ฉฐ, ์ถ”ํ›„ ๊ฐœ์„ ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ ‘๊ทผ ๋ฐฉ์•ˆ์„ ๋„์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

7. ํ˜‘์—… ๋ฐ ์ฝ”๋“œ ๊ด€๋ฆฌ

7.1 ํŒ€ ๋ถ„์—… ๋ฐ ํ˜‘์—… ๋„๊ตฌ ํ™œ์šฉ

ํŒ€์€ Retrieval๊ณผ Reader๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ ํŒ€์˜ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ํ•˜์˜€๊ณ , GitHub๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ํ˜‘์—…ํ•˜์˜€์Šต๋‹ˆ๋‹ค. GitHub flow ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์—ฌ ๊ฐ์ž์˜ ์ž‘์—… ๋‚ด์šฉ์„ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด ํ’ˆ์งˆ์„ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

7.2 ํ”„๋กœ์ ํŠธ ํšŒ๊ณ  ๋ฐ ๊ฐœ์„  ๋ฐฉ์•ˆ

ํ”„๋กœ์ ํŠธ ํ›„๋ฐ˜๋ถ€์— ์ง„ํ–‰๋œ ํšŒ๊ณ ๋ฅผ ํ†ตํ•ด ๊ฐ ํŒ€์›์€ ์ž์‹ ์ด ๋งก์•˜๋˜ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์„ฑ๊ณผ์™€ ๊ฐœ์„  ๋ฐฉ์•ˆ์„ ๊ณต์œ ํ•˜์˜€์œผ๋ฉฐ, ํ–ฅํ›„ ํ”„๋กœ์ ํŠธ์—์„œ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋ก ๊ณผ ํšจ์œจ์ ์ธ ํ˜‘์—… ๋ฐฉ์•ˆ์„ ๋„์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

8. ์ตœ์ข… ์„ฑ๋Šฅ ๊ฒฐ๊ณผ ๋ฐ ํ‰๊ฐ€

์ตœ์ข… ๋ฆฌ๋”๋ณด๋“œ์—์„œ EM ๋ฐ F1 ์ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜์˜€์œผ๋ฉฐ, Sparse Embedding์„ ํ™œ์šฉํ•œ Retrieval ๋‹จ๊ณ„๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ํŒ€์˜ ํ˜‘์—… ๊ฒฝํ—˜๊ณผ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์„ ํ†ตํ•ด ์–ป์€ ์„ฑ๊ณผ๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ „๋ฐ˜์— ๊ฑธ์นœ ์„ฑ๊ณผ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ํ–ฅํ›„ ๊ฐœ์„ ํ•  ๋ถ€๋ถ„์„ ๋„์ถœํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์•„ํ‚คํ…์ณ

Reader

Reader Module

Utils

Utils Module

Retriever

Retriever Module

ํ”„๋กœ์ ํŠธ ๊ฒฐ๊ณผ

Public Private
EM 45.4200% 58.3500%
F1 46.3900% 56.9700%
์ตœ์ข… ๋“ฑ์ˆ˜ 16๋“ฑ 16๋“ฑ

Getting Started

  • main.py๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰.
python main.py
  • ์ด๋•Œ ๋ฐ์ดํ„ฐ ์…‹๊ณผ ํ•™์Šต๋ชจ๋ธ, ์ถ”๋ก  ํŒŒ์ผ์˜ ์ถœ๋ ฅ ๊ฒฝ๋กœ๋Š” 'src/config/path_config.py'์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.
data_path = "./data/"
wiki_path = "./data/filtered_wiki.json"
train_data = "./data/train_dataset"
test_data = "./data/test_dataset"
outputs = "./outputs"
  • ๋˜ํ•œ 'src/utils/arguments.py'์˜ model_args.model_name_or_path๋ฅผ ์ˆ˜์ •ํ•ด ํ•™์Šต์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋ธ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, training_args๋ฅผ ์ˆ˜์ •ํ•ด ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์กฐ์ • ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ํ‰๊ฐ€/์ถ”๋ก  ๊ฒฐ๊ณผ๋Š” OUTPUT_PATH์— ์ €์žฅ๋œ๋‹ค.

Appendix

A. ์ฃผ์š” ๊ธฐ์ˆ  ์Šคํƒ ๋ฐ ๋„๊ตฌ

๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋œ ์ฃผ์š” ๊ธฐ์ˆ ๊ณผ ๋„๊ตฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

A.1 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • Python: ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๋ชจ๋ธ ๊ตฌํ˜„์— ํ™œ์šฉ.
  • Hugging Face Transformers: ๋‹ค์–‘ํ•œ NLP ๋ชจ๋ธ์˜ ํ•™์Šต ๋ฐ ์ถ”๋ก ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ. Reader ๋ชจ๋ธ ๊ตฌํ˜„์— ์‚ฌ์šฉ.
  • Scikit-learn: Sparse Embedding ๋ฐ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ์‹คํ—˜์—์„œ ์‚ฌ์šฉ๋œ ํŒŒ์ด์ฌ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
  • PyTorch: Dense Embedding ๋ชจ๋ธ์˜ ํ•™์Šต ๋ฐ ํŠœ๋‹์„ ์œ„ํ•œ ์ฃผ์š” ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ.
  • LangChain & Ollama: LLM์„ ํ™œ์šฉํ•œ ๋ฐ์ดํ„ฐ ์ด์ƒ์น˜ ํƒ์ง€ ๋ฐ ์งˆ๋ฌธ ์ƒ์„ฑ ์‹คํ—˜์— ์‚ฌ์šฉ.
  • Jupyter Notebook: EDA, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์‹คํ—˜ ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”์— ํ™œ์šฉ.

A.2 ํ˜‘์—… ๋ฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ

  • GitHub: ์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ํ˜‘์—…. GitHub Flow๋ฅผ ํ†ตํ•ด ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ง„ํ–‰.
  • Notion: ํŒ€ ํšŒ์˜๋ก, ์‹คํ—˜ ๊ฒฐ๊ณผ ๊ธฐ๋ก, ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ƒํ™ฉ ๋ฌธ์„œํ™”์— ์‚ฌ์šฉ.
  • Slack & Zoom: ํŒ€์› ๊ฐ„์˜ ์›ํ™œํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋ฐ ํ™”์ƒ ํšŒ์˜ ๋„๊ตฌ.
  • pre-commit: ์ฝ”๋“œ ํ’ˆ์งˆ ์œ ์ง€์™€ ์ž๋™ํ™”๋œ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ. ์ฝ”๋“œ ์Šคํƒ€์ผ ๊ฒ€์‚ฌ, ํฌ๋งทํŒ…, ์ •์  ๋ถ„์„ ๋“ฑ์„ Git ์ปค๋ฐ‹ ๋‹จ๊ณ„์—์„œ ์‹คํ–‰ํ•˜์—ฌ ์ผ๊ด€์„ฑ์„ ์œ ์ง€.

B. ์‹คํ—˜ ํ™˜๊ฒฝ ๋ฐ ํ•˜๋“œ์›จ์–ด

B.1 ์ปดํ“จํŒ… ์ž์›

  • GPU (NVIDIA V100): Dense Embedding ๋ชจ๋ธ ํ•™์Šต ๋ฐ Reader ๋ชจ๋ธ ํŠœ๋‹์„ ์œ„ํ•ด ์‚ฌ์šฉ.
  • V100 ์„œ๋ฒ„: ์ฃผ๋กœ ํ›ˆ๋ จ๊ณผ ๋Œ€๊ทœ๋ชจ ์‹คํ—˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ œํ•œ๋œ ์ž์› ๋‚ด์—์„œ ํšจ์œจ์ ์ธ ์ž์› ํ™œ์šฉ์„ ์œ„ํ•œ ๋ฐฐ์น˜ ์‹คํ—˜ ์ง„ํ–‰.

B.2 ์†Œํ”„ํŠธ์›จ์–ด ํ™˜๊ฒฝ

  • Python 3.8: ๋ชจ๋“  ์ฝ”๋“œ ๊ตฌํ˜„์˜ ๊ธฐ๋ณธ ํ™˜๊ฒฝ.
  • PyTorch 1.10: Dense Embedding๊ณผ Reader ๋ชจ๋ธ ๊ตฌํ˜„์— ์‚ฌ์šฉ.
  • Hugging Face Datasets & Tokenizers: ๋ฐ์ดํ„ฐ ๋กœ๋“œ ๋ฐ ์ „์ฒ˜๋ฆฌ, ํ† ํฌ๋‚˜์ด์ง• ๋„๊ตฌ.

C. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

ํ”„๋กœ์ ํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โ”œโ”€โ”€ data_analysis
โ”‚   โ”œโ”€โ”€ manual_data_analysis.ipynb
โ”‚   โ””โ”€โ”€ outlier_handling_with_LLM.ipynb
โ”œโ”€โ”€ src
โ”‚   โ”œโ”€โ”€ config
โ”‚   โ”‚   โ”œโ”€โ”€ key_names.py
โ”‚   โ”‚   โ”œโ”€โ”€ path_config.py
โ”‚   โ”‚   โ””โ”€โ”€ reader_configuration.py
โ”‚   โ”œโ”€โ”€ main.py
โ”‚   โ”œโ”€โ”€ reader
โ”‚   โ”‚   โ”œโ”€โ”€ add_nouns.py
โ”‚   โ”‚   โ”œโ”€โ”€ aug_korquad.py
โ”‚   โ”‚   โ”œโ”€โ”€ LLM_reader.ipynb
โ”‚   โ”‚   โ”œโ”€โ”€ data_controller
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ data_handler.py
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ data_processor.py
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ postprocess_qa.py
โ”‚   โ”‚   โ”œโ”€โ”€ generate_q.py
โ”‚   โ”‚   โ””โ”€โ”€ model
โ”‚   โ”‚       โ”œโ”€โ”€ huggingface_manager.py
โ”‚   โ”‚       โ”œโ”€โ”€ reader.py
โ”‚   โ”‚       โ”œโ”€โ”€ result_saver.py
โ”‚   โ”‚       โ”œโ”€โ”€ trainer_manager.py
โ”‚   โ”‚       โ””โ”€โ”€ trainer_qa.py
โ”‚   โ”œโ”€โ”€ retriever
โ”‚   โ”‚   โ”œโ”€โ”€ embedding
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ bm25.py
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ sklearn_tfidf.py
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ sparse_embedding.py
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ tfidf.py
โ”‚   โ”‚   โ”œโ”€โ”€ retrieval
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ dense_retrieval.py
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ sparse_retrieval.py
โ”‚   โ”‚   โ”œโ”€โ”€ retriever.py
โ”‚   โ”‚   โ”œโ”€โ”€ score
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ ranking.py
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ rerank.py
โ”‚   โ”‚   โ””โ”€โ”€ similarity
โ”‚   โ”‚       โ””โ”€โ”€ similarity.py
โ”‚   โ””โ”€โ”€ utils
โ”‚       โ”œโ”€โ”€ argument_validator.py
โ”‚       โ”œโ”€โ”€ arguments.py
โ”‚       โ”œโ”€โ”€ context_into_articles.py
โ”‚       โ”œโ”€โ”€ context_into_sentences.py
โ”‚       โ”œโ”€โ”€ log
โ”‚       โ”‚   โ””โ”€โ”€ logger.py
โ”‚       โ”œโ”€โ”€ monitoring
โ”‚       โ”‚   โ”œโ”€โ”€ bert_visualizer.py
โ”‚       โ”‚   โ””โ”€โ”€ monitoring_tool.py
โ”‚       โ”œโ”€โ”€ seed.py
โ”‚       โ”œโ”€โ”€ timer.py
โ”‚       โ”œโ”€โ”€ tokenizer_checker.py
โ”‚       โ””โ”€โ”€ tokenizer_validator.py
โ””โ”€โ”€ test
    โ”œโ”€โ”€ conftest.py
    โ”œโ”€โ”€ test_data_handler.py
    โ”œโ”€โ”€ test_data_postprocessor.py
    โ”œโ”€โ”€ test_data_preprocessor.py
    โ””โ”€โ”€ test_model.py

D. ์‹คํ—˜ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ

D.1 Retrieval ์„ฑ๋Šฅ ์‹คํ—˜ ๊ฒฐ๊ณผ

๋‹ค์–‘ํ•œ Sparse ๋ฐ Dense Embedding ๊ธฐ๋ฒ•์˜ ์„ฑ๋Šฅ ๋น„๊ต ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Model Top-K context_in_retriever Reverse Rank Linear Score
BM25 (max_feature=200K) 10 0.82490 0.47262 0.74090
TF-IDF (max_feature=100K) 5 0.67055 0.33891 0.57221
Dense Embedding (BERT) 10 0.19680 - -

์œ„ ํ‘œ๋Š” ์ฃผ์š” ์‹คํ—˜ ๊ฒฐ๊ณผ์˜ ์š”์•ฝ๋ณธ์ด๋ฉฐ, ๊ฐ ์‹คํ—˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •๊ณผ ๊ฒฐ๊ณผ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด Sparse Embedding์˜ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ตœ์ข… ๋ชจ๋ธ์— BM25 ๊ธฐ๋ฐ˜์˜ Retrieval ์‹œ์Šคํ…œ์„ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

D.2 Reader ์„ฑ๋Šฅ ์‹คํ—˜ ๊ฒฐ๊ณผ

Reader ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์€ ์—ฌ๋Ÿฌ pre-trained ๋ชจ๋ธ๊ณผ์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ์ตœ์ ์˜ ๋ชจ๋ธ์„ ์„ ์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Pre-trained Model EM Score F1 Score
klue/roberta-base 62.5 71.1069
monologg/koelectra-base-v3 61.25 69.2452
microsoft/deberta-v3-base 46.25 54.1471
klue/bert-base 53.75 62.3042

์ตœ์ข…์ ์œผ๋กœ klue/roberta-base ๋ชจ๋ธ์ด ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์—ˆ์œผ๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”๊ฐ€์ ์ธ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์„ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

E. ์ถ”๊ฐ€ ์ฐธ๊ณ  ๋ฌธํ—Œ ๋ฐ ์ž๋ฃŒ

  • BM25 ์•Œ๊ณ ๋ฆฌ์ฆ˜: Stephen E. Robertson, Karen Sparck Jones, "Relevance weighting of search terms," Journal of the American Society for Information Science, 1976.
  • Dense Passage Retrieval: Vladimir Karpukhin et al., "Dense Passage Retrieval for Open-Domain Question Answering," arXiv, 2020.
  • BERT: Jacob Devlin et al., "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," arXiv, 2019.
  • Hugging Face Documentation: Hugging Face Docs
  • LangChain: LangChain Official Website

๋ณธ Appendix๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ „๋ฐ˜์ ์ธ ๊ตฌ์„ฑ, ์‹คํ—˜ ํ™˜๊ฒฝ, ๊ธฐ์ˆ  ์Šคํƒ, ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์š”์†Œ๋Š” ์‹คํ—˜์˜ ์žฌํ˜„ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๊ณ , ํ–ฅํ›„ ํ”„๋กœ์ ํŠธ์—์„œ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒด๊ณ„์ ์œผ๋กœ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค.

About

level2-mrc-nlp-07 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published