Week19 Day4 - ai-esg/our-history GitHub Wiki

ํŒ€ NLP 11์กฐ Week19 Day4

๋ชฉ์ฐจ

์ผ์ž

  • 2021.12.09 ๋ชฉ

ํŒ€์›

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

์ฃผ๊ฐ„ ์ผ์ •

  • 1์ฃผ์ฐจ ๋ฉ˜ํ† ๋ง 12/10(๊ธˆ) 16:00
  • 2์ฃผ์ฐจ ๋ฉ˜ํ† ๋ง 12/15(์ˆ˜) 16:30
  • 3์ฃผ์ฐจ ๋ฉ˜ํ† ๋ง 12/20(์›”) 16:00

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

์ตœ์ข…ํ”„๋กœ์ ํŠธ

ํ˜‘์—… ๋งํฌ

์ตœ์ข… ํ”„๋กœ์ ํŠธ์—์„œ ์ž‘์„ฑ

๊ตฌ๊ธ€๋“œ๋ผ์ด๋ธŒ ๋งํฌ

ํ”ผ๊ทธ๋งˆ ๋งํฌ

To Do

์•ŒํŒŒ ํ…Œ์ŠคํŠธ

  • ์„ค๋ฌธ์ง€ ์ž‘์„ฑ

    • ํ˜„์Šน
  • ํ”„๋กœํ†  ํƒ€์ž… ๊ตฌํ˜„ (streamlit)

    • ์›์ง„
    • ์•„๋ฉ˜
      • ํ”ผ๊ทธ๋งˆ์— ์žˆ๋Š” ๊ทธ 2ํŽ˜์ด์ง€์งœ๋ฆฌ ์‹œ๋„ํ•ด๋ณด๊ธฐ
  • ๋ชจ๋ธ baseline ์ œ๊ณต

    • query dense - ์˜ํ›ˆ
    • ์œ ์‚ฌํ•œ ์žฅ์†Œ

BE ๊ตฌ์„ฑ

  • FASTAPI

query

  • ๋ฒˆ์—ญ๋ฌธ ์ „์ฒ˜๋ฆฌ("(๊ตฌ๊ธ€ ๋ฒˆ์—ญ ์ œ๊ฑฐ)"->์ œ๊ฑฐ, "(์›๋ฌธ)...."->์ œ๊ฑฐ)
  • ์ „๋ฌธ ์˜์–ด
  • ์ด๋ชจ์ง€ ์ œ๊ฑฐ
  • ๊ธฐ๋ณธ ์ „์ฒ˜๋ฆฌ
  • ๊ตฌ๊ธ€ ๋ฆฌ๋ทฐ ํ‰์  ๊ธฐ๋ฐ˜ ์ „์ฒ˜๋ฆฌ

context

  • blog ์ „์ฒ˜๋ฆฌ์—๋„ Copyright ์ „์ฒ˜๋ฆฌ ์ฒ˜๋ฆฌ ํ•„์š”ํ• ๋“ฏ
  • blog ๋„์–ด์“ฐ๊ธฐ ์˜ค๋ฅ˜ . ? !
    • ์šฐ์„  ํœด๋ฆฌ์Šคํ‹ฑํ•˜๊ฒŒ๋ผ๋„ ์ฒ˜๋ฆฌ ํ•  ์˜ˆ์ •
  • blog ์—๋„ ์˜์–ด๋กœ๋งŒ ๋œ context๊ฐ€ ์กด์žฌ
    • ์ œ๊ฑฐ ์—ฌ๋ถ€ ๊ณ ๋ ค
  • ๋„์–ด์“ฐ๊ธฐ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐ˜๋ณต
    • . . . . . . . . ์ด๋”ด๊ฒŒ ์žˆ๋„ค;;
  • ๋„์–ด์“ฐ๊ธฐ ์ฒ˜๋ฆฌ ํ•ด์ฃผ๊ธฐ!!!!!!

Sparse

์‹คํ—˜(model)

Question : ๋ถ€๋ชจ๋‹˜๊ณผ ํ•จ๊ป˜ ๊ฐ€๊ธฐ ์ข‹์€๊ณณ Top-5 passage with score 266.938538 Content name : ํฌํ•ญํ•ด์ƒ๊ณต์› ์บ๋ฆญํ„ฐํ…Œ๋งˆํŒŒํฌ 2021์ „๊ตญ์ƒํ™œ๋ฌธํšŒ์ถ•์ œ CTSํ•ฉ์ฐฝ๋‹จ ์—ฐ์Šตํ’๊ฒฝ

  • context ๊ธธ์ด์— ๋Œ€ํ•œ ๋ฌธ์ œ

์‹คํ—˜ ํ•  ๊ฒƒ

์ƒˆ๋กœ์šด ๋ชจ๋ธ

  • ์œ ์‚ฌํ•œ ์žฅ์†Œ topk ์ถ”์ฒœ
  • ์ด๋ฏธ์ง€์˜ ์œ ์‚ฌ๋„ ๋น„๊ตํ•˜์—ฌ ์ถ”์ฒœ (text ์œ ์‚ฌ๋„์™€ ๊ฒฐํ•ฉํ•˜์—ฌ)

๊ธฐ์กด ๋ชจ๋ธ ๊ฐœ์„ 

  • DAPT (context)
  • elastic search๋กœ k๊ฐœ ๋ฝ‘์€ ํ›„ dense retrieval
  • ๋ฐฐํฌํ•ด์„œ ์˜๊ฒฌ์„ ๋“ค์–ด๋ณด์ž!
    • ์•ŒํŒŒ ํ…Œ์ŠคํŠธ์— ๊ฐ€๊นŒ์›€. ํ•„์š”ํ•œ ์„ฑ๋Šฅ์€?

      • ๋ชจ๋ธ๋งŒ ์žˆ์œผ๋ฉด ๋จ

      • DB ๋งŒ๋“ค๊ณ  ์ฟผ๋ฆฌ - ๊ฒฐ๊ณผ

      • ์„ค๋ฌธ์ง€ ๋งํฌ - ๊ตฌ๊ธ€ํผ

        • ์ž‘์„ฑํ•œ query
        • ๋ฆฌ์ŠคํŠธ ์ค‘ ์ผ์น˜ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฐฏ์ˆ˜
      • ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๋Š”๋‹ค๋ผ๊ณ ํ•˜๋ฉด

        • FE -> query -> BE -> pair
        • ํ‰๊ฐ€ -> pair ๋ฅผ ์ฐพ์•„์„œ ๋ฐ˜์˜
        • query ๋ผ๋Š”๊ฑด ์œ ์ €๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒƒ
          • query ์— ๋Œ€ํ•œ context ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋งˆ์Œ์— ๋“ค์—ˆ๋‚˜์š”?
      • ๋Œ€๋†“๊ณ  ๋ฌผ์–ด๋ณด์ฃ . ์ด ๊ฒฐ๊ณผ๊ฐ€ ๋งˆ์Œ์— ๋“œ๋‚˜์š”?

    • ์ดํ˜„ ๋ฉ˜ํ† ๋‹˜ ๋ง์— ์˜ํ•˜๋ฉด ์Œ์•… ์ƒ์„ฑํ›„ ํ‰๊ฐ€๋ฅผ ์‚ฌ๋žŒ์ด ํ–ˆ๋‹ค๊ณ  ํ–ˆ์—ˆ์Œ....

    • ์‚ฌ์šฉ์ž ํ‰๊ฐ€์— ์˜ํ•œ ์ ์ˆ˜๊ฐ€ ์‹ค์ œ ์„œ๋น„์Šคํ–ˆ์„๋•Œ ํ‰์ ์— ๊ฐ€๊น๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋ฉด ์œ ์˜๋ฏธํ• ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋จ

๊ถ๊ธˆ์ฆ

  • query ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ์ ์ˆ˜๊ฐ€ ๋†’์•„์งˆ๊นŒ ๋‚ฎ์•„์งˆ๊นŒ? (dense)
  • context ๊ธธ์ด๊ฐ€ ์ฃผ๋Š” ์˜ํ–ฅ (dense)

์˜๊ฒฌ

  • LTR ์ด๊ฑฐ๋ž‘ Dense๋ž‘ ์„ฑ๋Šฅ ๋น„๊ต ํ•„์š”์„ฑ ๋…ผ์˜
  • unsupervised learning ๋ฅผ ํ†ตํ•œ ์ž์ฒด classification ๋ฅผ ํ†ตํ•ด ๋น„์Šทํ•œ ๊ณณ ํƒ์ƒ‰ ๊ฐ€๋Šฅ (sparse ๋ž‘ ๋น„์Šทํ•˜๊ธด ํ•  ๋“ฏ)
  • ์ƒ๊ฐ๋ณด๋‹ค query์— ํ•ด๋‹น ๋ช…์†Œ๋‚˜ ์ง€์—ญ ๋ช…์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ ์ด๋Š” ํ•™์Šต์—์„œ ์ข‹์„๊นŒ ๋ณ„๋กœ์ผ๊นŒ?
  • DAPT ๋ฒ„๋Ÿฌ์ง€๋Š” ๋ฐ์ดํ„ฐ

๋ฌธ์ œ์ 

query (์ „์ฒ˜๋ฆฌ ํŒŒ์ผ ํ•„์š”ํ•ด์šฉ ์•„๋‹ˆ๋ฉด blog ๋ž‘ ์œ ์‚ฌํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค)

  • ์‹œ๊ฐ„ ๊ด€๋ จ ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ

    • ํŠน์ • ๊ธฐ๊ฐ„ ๋˜๋Š” ํŠน์ • ์‹œ์ ์— ๋Œ€ํ•œ query ์— ๋Œ€ํ•œ ๋ฌธ์ œ
    • ex)
      • ์ฝ”๋กœ๋‚˜ ๊ธฐ๊ฐ„ ์ด๋ผ ~
      • ์ง€๊ธˆ ๊ณต์‚ฌ์ค‘์ด๋ผ ~
  • ์‚ฌ์ง„ ๊ด€๋ จ ์ข…์ข… ์‚ฌ์ง„ ๋“ฑ์˜ ๋‹จ์–ด์— ์ƒ์œ„๋กœ ์˜ฌ๋ผ์˜ค๋‚˜ ์ด๋ฏธ์ง€๊ฐ€ ์—†์–ด์„œ ์˜๋ฏธ ์—†๋Š” ๋ฐ์ดํ„ฐ

    • ํ•˜์ง€๋งŒ ์ผ๊ด„ ์ œ๊ฑฐํ•˜๊ธฐ์—” ๋˜ ์‚ฌ์ง„์ฐ๊ธฐ ์ข‹๋‹ค ๋“ฑ ์˜ ์ถฉ๋Œ์ด ์žˆ์Œ
  • ์™œ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋ฆฌ๋ทฐ์— ์„ค๋ช…์ถฉ์ด ์žˆ๋‹ค ์œ„ํ‚ค ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ์˜จ ์„ค๋ช… ๋ฐ์ดํ„ฐ๋“ค

    • Sparse๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๊ฑฐ์˜ ๋ฌด์กฐ๊ฑด ๋†’์€ score
      • ์ด๊ฑธ๋กœ ํ•˜๋‚˜ ์•Œ ์ˆ˜ ์žˆ๋Š”๊ฑด ํ™•์‹คํžˆ ํ•ด๋‹น ์ง€์—ญ ๋˜๋Š” ๋ช…์†Œ๋ฅผ ์„ค๋ช…ํ•˜๋Š” context(blog)๊ธ€์€ ์ฐจ๊ณ  ๋„˜์นœ๋‹ค
    • ๋ญ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์–ด๋–ค ์˜ํ–ฅ์„ ์ค„์ง€ ๊ณ ๋ ค
  • spare ๊ธฐ์ค€์œผ๋กœ ๋„ˆ๋ฌด ์งง์€ ๋ฌธ์žฅ์€ ๋ถ„๋ณ„๋ ฅ์ด ๋„ˆ๋ฌด ๋ถ€์กฑํ•จ (์ž„์‹œ ์ฒ˜๋ฆฌ ์ง„ํ–‰ํ•จ)

    • ๋„์–ด์“ฐ๊ธฐ ๊ธฐ์ค€์œผ๋กœ 5๊ฐœ ์ด์ƒ์œผ๋กœ ์ง„ํ–‰ํ•จ

context

  • blog ํ™๋ณด์„ฑ ๊ธ€์ด ์ง€๋ฐฐํ•œ๋Š” ๊ฒฝ์šฐ ์กด์žฌ
    • ๊ทธ๋ƒฅ ๋‚ ์งœ๋งŒ ๋‹ค๋ฅด๊ณ  ์‚ฌ์‹ค์ƒ ๊ฐ™์€ ๋‚ด์šฉ

sparse

  • ๋„ˆ๋ฌด ๋А๋ ค์„œ Mecab ์œผ๋กœ ๋ณ€ํ™˜

    • ๊ทธ๋ƒฅ ๋ณด๊ธฐ์—” ๊ดœ์ฐฎ์€๋ฐ ์„ฑ๋Šฅ์ด ์–ด๋–จ์ง€ ๋ชจ๋ฅด๊ฒ ์Œ..
    • ๋Œ€๋žต ์ฑ„๊ฐ ์†๋„ ์ฐจ์ด 10๋ฐฐ (Mecab์œผ๋กœํ•˜๋ฉด ํ•œ์‹œ๊ฐ„ ์ปท)
    • Mecab ์„ค์น˜์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด ์—ฌ์ „ํžˆ ์งœ์ฆ๋‚จ
    • ๊ฐ€๋Šฅํ•˜๋ฉด ๋‹ค ์จ๋ณด๋Š”๊ฒŒ ๋ฐฉ๋ฒ•์ผ ๋“ฏ
  • ํ† ํฌ๋‚˜์ด์ฆˆ ํ•  ๋•Œ๋Š” ํ™•์‹คํžˆ ,.;?! ๋“ฑ์˜ ๋ถ€๋ถ„ ์ œ๊ฑฐ ํ•„์š”

    • ๊ฐ€๋Šฅํ•˜๋ฉด Stop words ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒŒ ์ข‹์„ ๋“ฏ
    • stem -> ์›ํ˜•
    • .. ๋“ฑ์˜ ์˜ํ–ฅ์„ ๋„ˆ๋ฌด ๋งŽ์ด ๋ฐ›์Œ ๊ทธ๋ƒฅ ๋‚ด์šฉ์ด ์™„์ „ ๋‹ฌ๋ผ๋„ .. ์ด ๋งŽ์€ ๊ฒฝ์šฐ
  • ๋™์ผ query,context ๋ฐœ์ƒ๊ฐ€๋Šฅ (ํ•ด๊ฒฐ)

    • ์ค‘๋ณต ์ „๋ถ€ ์ œ๊ฑฐํ•ด์คŒ

pair

  • ๋‚ด์šฉ์ด ๋„ˆ๋ฌด ๋‹ค์–‘ํ•œ ๊ณต๊ฐ„์—๋Œ€ํ•œ ๋ฌธ์ œ

    • ex) ๋ฐฉ์†ก์‚ฌ๋Š” ์—ฌ๋Ÿฌ ํ–‰์‚ฌ์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ context๋„ ๋„ˆ๋ฌด ๋‹ค์–‘ํ•จ
  • ์‚ฌ์‹ค์ƒ ๊ฐ™์€ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์ค‘๋ณต ๋ฌธ์ œ

    • ex) ์œ ์„ฑ ์กฑ์š•์ฒดํ—˜์žฅ ์œ ์„ฑ ์˜จ์ฒœ์ง€๊ตฌ
      • ๋ฆฌ๋ทฐ๊ฐ€ ๊ฐ™์Œ