Week13 Day3 - ai-esg/our-history GitHub Wiki

ํŒ€ NLP 11์กฐ Week13 Day3

๋ชฉ์ฐจ

์ผ์ž

  • 2021.10.27 ์ˆ˜

ํŒ€์›

  • ๋ฌธ์„์•”_T2075
  • ๋ฐ•๋งˆ๋ฃจ์ฐฌ_T2078
  • ๋ฐ•์•„๋ฉ˜_T2090
  • ์šฐ์›์ง„_T2137
  • ์œค์˜ํ›ˆ_T2142
  • ์žฅ๋™๊ฑด_T2185
  • ํ™ํ˜„์Šน_T2250

์ฃผ๊ฐ„ ์ผ์ •

ํ”ผ์–ด์„ธ์…˜

Reader

  • answer๋ฅผ ๋ฝ‘์•˜์„ ๋•Œ, exact match ํŠน์„ฑ์ƒ ์กฐ์‚ฌ๊ฐ€ ์žˆ์œผ๋ฉด ํ‹€๋ฆฐ ๊ฒƒ์œผ๋กœ ํŒ์ •๋  ํ™•๋ฅ ์ด ๋†’๋‹ค๊ณ  ์ƒ๊ฐ๋จ.
    • konlpy์˜ mecab์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜๋ฏธ ์—†๋Š” ์กฐ์‚ฌ ์—†์• ๋Š” ๊ฒƒ ๊ณ ๋ ค
  • No answer ์ถ”๊ฐ€? ๋‹ต ์—†์Œ ์ œ์™ธ, ์†Œํ”„ํŠธ ๋ณดํŒ…์„ ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ณ ๋ ค.

data ๋ถ„์„ (+ ๊ฐ ํŽ˜์ด์ฆˆ๋ณ„ input - output)

  • ์‹œ๊ฐ„์ด ๋‚จ๊ฑฐ๋‚˜, ๋‹ค์Œ ๋„์ „์ด ์–ด๋ ต๋‹ค๋ฉด ์งฌ์„ ๋‚ด์„œ ์‹œ๋„ํ•ด ๋ณด์ž. ๋น ๋ฅผ์ˆ˜๋ก ์ข‹๋‹ค.

  • max_length retrieval ์„ฑ๋Šฅ๊ณผ์˜ ๊ด€๊ณ„?

  • ์™ธ๊ตญ์–ด 10๊ฐœ ์ด์ƒ ๋ฌธ์žฅ์€ ์ œ์™ธ (์ „์ฒ˜๋ฆฌ ์ง„ํ–‰)

  • URL ํƒœ๊ทธ๋“ฑ์ด ์ œ๊ฑฐ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ์กด์žฌํ•œ๋‹ค (๋‹ค์‹œ ์ „์ฒ˜๋ฆฌ ํ•œ๋ฒˆ์€ ํ•ด์ค„ํ•„์š”๊ฐ€ ์žˆ๋‹ค.)

  • docs title ์€ ๊ณผ์—ฐ ์–ด๋–ป๊ฒŒ ํ™œ์šฉ ์ˆ˜ ์žˆ์„๊นŒ??

  • retrieval์˜ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— top k๋ฅผ ๋„˜๊ฒจ ์ฃผ์—ˆ์„๋•Œ reader์—์„œ ์–ด๋–ป๊ฒŒ ์ด๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

    • top k๋ฅผ ๋ชจ๋‘ ๋ถ™์—ฌ์„œ ํ•˜๋‚˜์˜ ๋ฌธ์„œ๋กœ ๋งŒ๋“ค์–ด์„œ ๊ทธ ์•ˆ์—์„œ ๋‹ต์„ ์ฐพ๋Š”๋‹ค.
      • ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ, ํ›ˆ๋ จ ์†๋„ ๋ฌธ์ œ ๋“ฑ์˜ ์ด์Šˆ๊ฐ€ ์žˆ์Œ
    • top k๋ฅผ ํ•˜๋‚˜์”ฉ ๋„˜๊ฒจ ๋‹ต์„ ๋ฝ‘๊ณ  ๊ทธ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅธ๋‹ค.
      • ์ •๋‹ต ์—†์Œ์ด๋ผ๋Š” ๋‹ต์„ ๋„์ถœํ•˜๋Š” ํ›ˆ๋ จ๋„ ํ•„์š”.
      • ๋ชจ๋“  ๋ฌธ๋‹จ์—์„œ ์ •๋‹ต์—†์Œ์ด๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?
      • ์—ฌ๋Ÿฌ ๋‹ต์ด ๋‚˜์˜ค๋ฉด? ์Šค์ฝ”์–ด, ๊ฐ€์ค‘์น˜ ๋“ฑ์œผ๋กœ ์„ ํƒํ•˜๋Š” ๊ธฐ์ค€ ์ƒ์„ฑ์ด ํ•„์š”.
    • ๊ฒฐ๊ตญ ๋‹ค ํ•ด๋ณด๋Š”๊ฒŒ ๋‹ต์ด๊ธฐ๋Š” ํ•˜๋‹ค. (๋ญ๊ฐ€ ๋” ์ข‹์„์ง€๋Š” ์ธ๊ฐ„์ด ๋‹จ์–ธํ•  ์ˆ˜ ์—†๋‹ค.)

์ƒํ™ฉ

Test - set (Val)

TOP-5 30 (dense none in-batch) TOP-5 28 (dense in-batch) TOP-5 49.7 (sparse) (๋ฐฉ๊ธˆ)

์ž‘์—… ์šฐ์„ ์ˆœ์œ„ (์ˆ˜์š”์ผ)

  1. dense_retrieval.py ์ฝ”๋“œ์ •๋ฆฌ (์˜ค๋Š˜ ๊ฐ™์ด) ์ง„ํ–‰ํ›„ PR
  2. Inference (Spare , Dense)
    • top-k inference Reader์— ์ž…๋ ฅ์„ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?
  3. Sparse Top-N -> ๋ฐ์ดํ„ฐ ๋กœ๋” ๊ตฌ์„ฑ (๋ผ๋ฒจ, N๊ฐœ์˜ ์œ ์‚ฌ ๋ฌธ์„œ, ๋žœ๋ค) (์•„๋ฉ˜)
    • ์‹คํ—˜์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์•„๋‹Œ๊ฐ€
    • ์ถ”๊ฐ€ ํ•™์Šต์— ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
  4. ์ „์ฒ˜๋ฆฌ (์„์•”)
    • ์„ฑ๋Šฅ ๊ฐœ์„  ์—†์Œ, ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ ๋ฌธ์ œ ๋˜๋Š” ๋ฌธ์„œ๋Š” ์†Œ์ˆ˜์ธ ๋“ฏ
    • ์„ ํ–‰ ์‹คํ—˜์ž(์ „๊ธฐ์ˆ˜ ๋“ฑ)๋“ค์˜ ๊ฒฐ๊ณผ๋Š” ์ด ์ „์ฒ˜๋ฆฌ๊ฐ€ ์„ฑ๋Šฅ์— ๋ถ€์ •์ ์ด์—ˆ๋‹ค๊ณ  ํ•จ.
  5. BM25 (๋™๊ฑด)
    • rank_bm25๋กœ ์ „๋ฐ˜์ ์ธ ๋กœ์ง ์ž‘์„ฑ ์™„๋ฃŒ
    • query ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ณ  retrieve ํ•˜๋Š” ๋ถ€๋ถ„ ์ž‘์„ฑ ๋ฐ ์ •๋ฆฌ ์˜ˆ์ •
  6. ์—˜๋ผ์Šคํ‹ฑ (์›์ง„, ์˜ํ›ˆ, ํ˜„์Šน)
    • ๊ฒฐ๊ณผ๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ๊ฒƒ ์„ฑ๊ณต, ์ฅฌํ”ผํ„ฐ ๋…ธํŠธ๋ถ์—์„œ .py ํŒŒ์ผ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…
    • index config ํŒŒ์ผ ์ˆ˜์ •? ์˜ˆ์ •
  7. ํ† ๋ก ๊ฒŒ์‹œํŒ dense retrieval 48%(val set) ๋ฒค์น˜๋งˆํฌ (๋งˆ๋ฃจ์ฐฌ)
    • p_encoder ์ž…๋ ฅ ์ „์— dimension์ฐจ์ด (์‹ค์Šต ์ฝ”๋“œ ๊ฐ„์˜ ์ฐจ์ด)๋ฅผ ํ™•์ธํ•ด๋ณด๊ฒŸ์Œ
    • ๊ธฐ์กด์˜ batch dependency๋Š” matmul ์ฐจ์› ๋ณ€ํ™˜์—์„œ ๋ฌธ์ œ๋กœ ์ธํ•จ
    • ๋‚ฎ์€ ์„ฑ๋Šฅ์€ training epoch, optimizer ๋“ฑ์œผ๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐ ์ค‘
  8. hybrid (๋ฐฉ๋ฒ•๋ก ์ด ๋งŽ์Œ)
    • ์ œ์‹œํ•œ ์œ„์˜ ๊ฒƒ๋“ค์ด ์„ ํ–‰๋œ ํ›„์— ์ƒ๊ฐํ•ด๋ณด๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ์ด๋‹ค.
  9. Parameter searching (๋งˆ๋ฃจ์ฐฌ)

์ฝ”๋“œ ์ž‘์—…

  • dense retrieval์—์„œ wiki ์‚ฌ์šฉํ•˜๊ฒŒ ์ˆ˜์ •
  • get_item index 4 -> num_neg
  • inference.py ์ˆ˜์ •

Elastic Search