๋ณธ ํ๋ก์ ํธ๋ Retrieval์ ๊ธฐ๋ฐ์ผ๋กํ Question Answering(QA)๋ฅผ ์ฃผ์ ๋ก ํ๊ณ ์์ต๋๋ค. ์ง๋ฌธ-๋ฌธ๋งฅ-์ ๋ต ์์ผ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด์ ํน์ ์ง๋ฌธ์ ๋ํ ์ ๋ต์ ๋ฐํํ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ ๋ฐฉ๋ํ ์ง์์ ์ ๊ทผํ ์ ์๋ ํจ์จ์ ์ธ ๋ฐฉ์์ ์ ์ํ ์ ์์ต๋๋ค. ๋ค์ํ ํํ์ ๋ํ retrieval ์ฑ๋ฅ ๊ฐ์ , reader๋ฅผ ํตํ ์ ์ฐํ ๋ต๋ณ ์์ฑ ๋ฑ ๋ชจ๋ธ ๊ณ ๋ํ๋ฅผ ํตํด ๊ธฐ์กด์ ๊ฒ์ ์์ง์์ ๋์ฑ ๋ฐ์ ๋ ๊ฒ์ ๊ธฐ์ ์ ๊ตฌํํ ์ ์์ ๊ฒ์ ๋๋ค.
๊ฐ๊ฒฝ์ค | ๊น์ฌ๊ฒธ | ์ํธ์ | ์ ์ ์ฐ |
---|---|---|---|
ํ์ | ์ญํ |
---|---|
๊ฐ๊ฒฝ์ค | EDA, ๋ชจ๋ธ๋ง, ๋ชจ๋ธ ์คํ ์ฝ๋ ๊ด๋ฆฌ, ๋ชจ๋ธ ์ฑ๋ฅ ๊ฐ์ ์คํ |
๊น์ฌ๊ฒธ | EDA ๋ฐ ๋ฐ์ดํฐ ๊ฒ์, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ๋ฐ ์ฆ๊ฐ ์คํ, ๋ชจ๋ธ ์์น ๋ฐ ํ๋ผ๋ฏธํฐ ํ๋ ๋ฑ ๋ชจ๋ธ ์ฑ๋ฅ ๊ฐ๋ฐ, ์์๋ธ |
์ํธ์ | EDA ๋ฐ ๋ฐ์ดํฐ ๊ฒ์, ๋ฐ์ดํฐ ์ฆ๊ฐ ์กฐ์ฌโ ์คํ ๋ฐ ๊ด๋ จ ์ฝ๋๊ด๋ฆฌ, ๋ชจ๋ธ ์์น ๋ฐ ์คํ |
์ ์ ์ฐ | EDA ๋ฐ ๋ฐ์ดํฐ ๊ฒ์, ํ ์คํธ ์ ์ , ํ๋ก์ ํธ ๊ตฌ์กฐ ๊ด๋ฆฌ, ๋ชจ๋ธ ์คํ ๋ฐ ํ๋ผ๋ฏธํฐ ํ๋ |
- ๋ฐ์ดํฐ ๊ตฌ์ฑ
- train_dataset / test_dataset
- question: ์ง๋ฌธ text
- context: ์ง๋ฌธ์ ๋ํ ๋ต์ด ํฌํจ๋ passage
- answer (train_dataset only)
- answer index: context ๋ด์์ ์ ๋ต์ด ์์๋๋ index
- answer text: textํํ๋ก ์ ์๋ context ๋ด์ ์ ๋ต
- wikipedia_documents
- ์ํคํผ๋์ ๋ฌธ์ ์งํฉ
- train_dataset / test_dataset
. level2-mrc-nlp-16
โโ .gitihub
โโ data
โ โโ embedding
โ โ โโ context_sparse_embedding.bin
โ โ โโ context_dense_embedding.bin
โ โโ test_dataset
โ โโ train_dataset
โโ data_modules
โ โโ data_sets.py
โ โโdata_loaders.py
โโ model
โ โโ loss.py
โ โโ metric.py
โ โโ model.py
โโ utils
โ โโ __init__.py
โ โโ add_data.py
โ โโ embedding.py
โ โโ augmentation.py
โ โโ augmentation_requirements.py
โ โโ util.py
โโ .flake8
โโ .gitignore
โโ .gitmessage.txt
โโ .pre-commit-config.yaml
โโ README.md
โโ config_reader.yaml
โโ config_retrieval.yaml
โโ context_dense_embedding.yaml
โโ context_sparse_embedding.yaml
โโ inference.py
โโ requirements.txt
โโ train_reader.py
โโ train_retrieval.py
โโ test.py
-
EDA
- Unknown token ๋ถ์
- ์ ์์ ์ธ ๋จ์ด์์๋, ์ธ์๋์ง ์๋ ๊ฒฝ์ฐ
- ์์
- ์์ด๋ค๋
- ๋ณด์ดํ์ผ๋ก
- ๊พธ๋ฐ์ด
- ์ป์น , ์ป๋๋ฌด
- ์จ๊ทธ๋ ๊ฑฐ๋ฆด
- ์ฌํ๋ค
- ์์ ์ฒ๋ฆฌ ๋ฐฉ์
- ์ธ์๋์ง ์๋ ๊ธ์ ๋ถ์ ํ ์ถ๊ฐ
- ์ ์ ํ ์๋ฏธ ๋จ์๋ฅผ ํ ํฐ์ผ๋ก ์ถ๊ฐ
- ์์ ํจ๊ณผ
- ๋์ฑ ๋ค์ํ ๋จ์ด์ ๋ํ ์ธ์ ๊ฐ๋ฅ
- ์๋ฏธ ๋จ์๋ฅผ ํ ํฐ์ผ๋ก ์ถ๊ฐํ๋ ๊ฒฝ์ฐ, ๊ฐ์ ์๋ฏธ๋ฅผ ๊ฐ๋ ๋จ์ด์ ํ์ฉํ์ ๋ํด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ํ ํฐํ๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์์ ๊ฒ์ผ๋ก ์์
- ์ธ๊ตญ์ธ ์ด๋ฆ์ ํ๊ธ๋ก ํ๊ธฐ์, ํ๊ธ์์ ์ ์ฌ์ฉ๋์ง ์๋ ๊ธ์๊ฐ ํฌํจ๋๋ ๊ฒฝ์ฐ
- ์์
- ๋ฒต๊ณจ
- ๋จ์ค์ฝํ์คํค
- ๋
- ๋ฒ ์ด์
- ์์ ์ฒ๋ฆฌ ๋ฐฉ์
- ์ธ์๋์ง ์๋ ๊ธ์ ๋ถ์ ํ ์ถ๊ฐ
- ์์ ํจ๊ณผ
- ์ง๋ฌธ์ ํน์ ์ธ๋ฌผ์ ์ด๋ฆ์ด ์ง์ ์ ์ผ๋ก ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ๋ ๋ง๊ธฐ ๋๋ฌธ์, ์ฑ๋ฅ ๊ฐ๋ฐ์ ๋์์ด ๋ ๊ฒ์ผ๋ก ์์
- ์์
- Annotation Bias
- ํ ํฐํ๋ ํ ์คํธ๋ฅผ ๊ธฐ์ค์ผ๋ก question์ ํ ํฐ์ด context์ ํฌํจ๋๋ ๋น์จ์ ํตํด annotation bias ์ธก์
- Summary for covering ratio
Statistic Value Mean 0.70 Standard deviation 0.11 Minimum 0.10 Maximum 1.00 - ๊ฝค ๋์ covering ratio๋ฅผ ๋ณด์ฌ์ค
- sparse embedding์ด ์ข์ ์ฑ๋ฅ์ ๋ณด์ผ ๊ฒ์ผ๋ก ์๊ฐ๋จ
- ์์ ์ฒ๋ฆฌ ๋ฐฉ์
- ์ ์ฌ์ด ๋์ฒด ๋ฑ์ augmentation์ ํตํ ์ธ์ด ํํ์ ๋ค์์ฑ ํ๋ณด
- Unknown token ๋ถ์
-
Augmentation
- ์ด์ ๋ณ๊ฒฝ(EDA)
- ์ค๋ช
- ์์๋ก ๋ฌธ์ฅ์ ๋จ์ด ์์๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋ฐ์ดํฐ์ ๋ค์์ฑ ํ๋ณด
- ์ ์ฉ ์์
- ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ์ ํ์ ๋ถ ๊ฒฌ์ ๊ถ์ ๊ฐ๋ ๊ตญ๊ฐ ๊ธฐ๊ด์? โ ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ์ ํ์ ๋ถ ๊ฒฌ์ ๊ถ์ ๊ฐ๋ ๊ธฐ๊ด์? ๊ตญ๊ฐ
- ํ๋์ ์ธ์ฌ์กฐ์ง๊ด๋ฆฌ์ ์๋ฐ์ ์ด ๋ ์ฑ ์? โ ํ๋์ ์ธ์ฌ์กฐ์ง๊ด๋ฆฌ์ ์๋ฐ์ ์ด ์ฑ ์? ๋
- ๊ฐํฌ์ ๊ฐ 1717๋ ์ ์ด ๊ธ์ ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ? โ ๊ฐํฌ์ ๊ฐ ๊ธ์ ์ด 1717๋ ์ ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ?
- ๊ฒฐ๊ณผ
- ์ฆ๊ฐ๋ ๋ฌธ์ฅ๊ณผ ์๋ ๋ฌธ์ฅ๊ฐ์ ์๋ฏธ ์ฐจ์ด๋ ํฌ์ง ์์
- ํด๋น ๋ฐ์ดํฐ ์ ์ฉ์ ์ฑ๋ฅ ์ ํ ๋ฐ์
- ์ธ์ด ํํ์ ๋ค์์ฑ ํ๋ณด ์ฐจ์์์๋ ์๋ฏธ ์์
-
Method EM F1 Base 0.5708 0.6629 Augmented 0.5541 0.6385
- ์ค๋ช
- ํน์ ๊ธฐํธ ์ถ๊ฐ(AEDA)
- ์ค๋ช
- text์ ์์๋ก ๊ตฌ๋์ ('.', ',', '!', '?', ';')์ ์ถ๊ฐ ํ์ฌ ๋ฐ์ดํฐ์ ๋ค์์ฑ์ ํ๋ณด
- ์ ์ฉ ์์
- ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ์ ํ์ ๋ถ ๊ฒฌ์ ๊ถ์ ๊ฐ๋ ๊ตญ๊ฐ ๊ธฐ๊ด์? โ ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ์ ํ์ ๋ถ ๊ฒฌ์ ๊ถ์ . ๊ฐ๋ ๊ตญ๊ฐ ๊ธฐ๊ด์? ;
- ํ๋์ ์ธ์ฌ์กฐ์ง๊ด๋ฆฌ์ ์๋ฐ์ ์ด ๋ ์ฑ ์? โ "ํ๋์ ์ธ์ฌ์กฐ์ง๊ด๋ฆฌ์ ์๋ฐ์ ์ด ๋ , ์ฑ ์? ;
- ๊ฐํฌ์ ๊ฐ 1717๋ ์ ์ด ๊ธ์ ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ? โ "๊ฐํฌ์ ๊ฐ , 1717๋ ์ ์ด ๊ธ์ , ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ? ?
- ๊ฒฐ๊ณผ
- EM์ ์ํญ ์ฆ๊ฐํ์ผ๋, F1์ ์ํญ ๊ฐ์
- ์ ์๋ฏธํ ์ฐจ์ด๋ฅผ ๋ฐ๊ฒฌํ ์ ์์
-
Method EM F1 Base 0.5708 0.6629 Augmented 0.5875 0.6599
- ์ค๋ช
- ์ง๋ฌธ ์์ฑ
- ์ค๋ช
- ์ฃผ์ด์ง ๋ฐ์ดํฐ ์์ ์ง๋ฌธ์ ์ด์ด์ง๋ ๋ด์ฉ์ ์์ฑํ์ฌ ์ฆ๊ฐ
- ์ธ์ด ๋ชจ๋ธ (skt/kogpt2-base-v2) ๊ธฐ๋ฐ์ผ๋ก ์์ฑ
- ์ ์ฉ ์์
- ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ์ ํ์ ๋ถ ๊ฒฌ์ ๊ถ์ ๊ฐ๋ ๊ตญ๊ฐ ๊ธฐ๊ด์? โ ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ์ ํ์ ๋ถ ๊ฒฌ์ ๊ถ์ ๊ฐ๋ ๊ตญ๊ฐ ๊ธฐ๊ด์?? ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๋ฌ๋ผ๋ ๊ฒ ์๋๋ผ ๋ฏธ๊ตญ์ ๊ฒฝ์ ๋ ฅ์ ์ด๋ป๊ฒ ํค์์ผ ํ ๊ฒ์ธ๊ฐ? ์ด๋ฐ ๋ฌธ์ ์
- ํ๋์ ์ธ์ฌ์กฐ์ง๊ด๋ฆฌ์ ์๋ฐ์ ์ด ๋ ์ฑ ์? โ ํ๋์ ์ธ์ฌ์กฐ์ง๊ด๋ฆฌ์ ์๋ฐ์ ์ด ๋ ์ฑ ์?์ด๋ค. ์ด๋ฐ ์ฑ ์ '์ธ๋ถ์ ์ํ ์กฐ์ง๊ด๋ฆฌ๊ฐ ์๋๋ผ ๋ด๋ถ์ ์๋ฐ์ ์กฐ์ง๊ด๋ฆฌ๊ฐ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค'๋ ๊ฒ์
- ๊ฐํฌ์ ๊ฐ 1717๋ ์ ์ด ๊ธ์ ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ? โ ๊ฐํฌ์ ๊ฐ 1717๋ ์ ์ด ๊ธ์ ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ?๋ผ๋ ์ง๋ฌธ์ผ๋ก ์์๋์๋ค. ์๋๋ฉด ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ? ๋๊ฐ ๋๊ตฌ์๊ฒ
- ๊ฒฐ๊ณผ
- ์์ฑ๋ ๋ฌธ์ฅ์ ์ง์ด ์ ์ข์
-
Method EM F1 Base 0.5708 0.6629 Augmented 0.5875 0.6772
- ์ค๋ช
- ์ญ๋ฒ์ญ
- ์ค๋ช
- ํ๊ตญ์ด๋ฅผ ์์ด๋ก ๋ฒ์ญํ ๋ค ๋ค์ ํ๊ตญ์ด๋ก ๋ฒ์ญํ๋ ๊ณผ์ ์ ํตํด text์ ๋ค์์ฑ ํ๋ณด
- ์ ์ฉ ์์
- ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ์ ํ์ ๋ถ ๊ฒฌ์ ๊ถ์ ๊ฐ๋ ๊ตญ๊ฐ ๊ธฐ๊ด์? โ ์ด๋ค ๊ตญ๊ฐ๊ธฐ๊ด์ด ๋ํต๋ น์ ํฌํจํ ๋ฏธ๊ตญ ํ์ ๋ถ๋ฅผ ๊ฒฌ์ ํ ๊ถ๋ฆฌ๊ฐ ์๋๊ฐ?
- ํ๋์ ์ธ์ฌ์กฐ์ง๊ด๋ฆฌ์ ์๋ฐ์ ์ด ๋ ์ฑ ์? โ ํ๋ ์ธ์ฌ ์ด์์ ์ถ๋ฐ์ ์ด ์ด๋ค ์ฑ ์ด ๋์๊น?
- ๊ฐํฌ์ ๊ฐ 1717๋ ์ ์ด ๊ธ์ ๋๊ตฌ๋ฅผ ์ํด ์ฐ์ฌ์ก๋๊ฐ? โ ๊ฐํฌ์ ๊ฐ ๋๊ตฌ๋ฅผ ์ํด 1717๋ ์ ์ผ๋์?
- ๊ฒฐ๊ณผ
- ์์ฑ๋ ๋ฌธ์ฅ์ ์ง์ด ์ข์
- ์ธ์ด ํํ์ ๋ค์์ฑ์ ํ๋ณดํ๋ ๋ฐ ๋์์ด ๋จ
-
Method EM F1 Base 0.5708 0.6629 Augmented 0.5678 0.6682
- ์ค๋ช
- ์ด์ ๋ณ๊ฒฝ(EDA)
-
Modeling
- chunking
- task ์ค๋ช
- context๊ฐ ๋๋ฌด ๊ธธ์ด์, ๋ชจ๋ธ์ input size ์ ํ์ ๋๋ ๊ฒฝ์ฐ ๋ฐ์
- ๊ธด text๋ฅผ chunk๋ณ๋ก ๋๋์ด ๊ฒฐ๊ณผ ๋์ถ
- chunking ์ ์ฉ ๋ฐฉ์
- fixed length
- ์ผ์ ๊ธธ์ด ๋จ์๋ก chunking
- stride๋ฅผ ์ค์ ํ์ฌ ์ ํ์ chunk๊ฐ ์ผ์ ๊ธธ์ด์ ๊ณตํต๋ ๋ถ๋ถ ๋ณด์
- truncation
- ์ผ์ ๊ธธ์ด๋ก ์ ๋จํ์ฌ retrieval ์งํ (์ฒซ ๋ฒ์งธ chunk๋ง ํ์ฉ)
- ์ข์ ์ฑ๋ฅ ๋ณด์
- ๋ง์ ๋ฌธ์๋ค์ด ๋๊ด์์ผ๋ก ์์ฑ๋ผ ์์ด์ ์ฑ๋ฅ์ด ๊ด์ฐฎ์ ์ ์๋ค๋ ์๊ฒฌ
- summary
- ๋๊ด์ ๋ฌธ์๋ฅผ ๊ธฐ๋ํ๋ ๊ฒ ๋ณด๋ค, summary๋ฅผ ์ง์ ์์ฑ ํ ํ์ฉํ๋ ๋ฐฉ์ ๊ฐ๋ฅ
- summary๋ฅผ ์๋ํ์ผ๋, ์ฆ๊ฐ์ ์ธ ์ฑ๋ฅ ํฅ์์ด ๋ํ๋์ง๋ ์์
- ๋ฌธ์ ํด๊ฒฐ์ ์ํ ๋ถ์ ํ์ ํ์ง๋ง, ์ ์ฒด context dataset์ ๋ํ summary ์์ฑ์ ์ง๋์น๊ฒ ๋ง์ ์๊ฐ ์๋น๋๋ฏ๋ก ๋ฐฉ๋ฒ๋ก ์ ์ฉ์ด ์ด๋ ค์
- chunk๋ณ ๊ฒฐ๊ณผ ํฉ์ฐ ๋ฐฉ์
- mean
- ๊ฐ text์ ๋ํ chunk ๋ณ embedding vector์ ํ๊ท ์ ๊ตฌํ๋ ๋ฐฉ์
- max
- ๊ฐ chunk๋ณ embedding๊ณผ question embedding์ ๋ํ similarity์ ์ต๋๊ฐ ํ์ฉ
- ์ด๋ฌํ ๋ฐฉ์์ search๋ฅผ ์ํด์ chunk๋ณ embedding์ ๋ชจ๋ ์ ์ฅํด์ผ ํจ โ ๋ฉ๋ชจ๋ฆฌ ๋ฌธ์ ๋ฐ์
- mean
- ๋ฌธ์ ์
- chunk ๊ธธ์ด๊ฐ ๋งค์ฐ ํฐ ๊ฒฝ์ฐ
- ๋ฌธ์ ์ํฉ
- token length 512 ๊ธฐ์ค์ผ๋ก ์ต๋ 80๊ฐ ๊ฐ๋์ chunk๊ฐ ์์ฑ๋๋ ๊ฒฝ์ฐ๊น์ง ์กด์ฌ โ OOM ๋ฐ์
- chunk๋ฅผ ๋๋๊ณ batch size๋ฅผ 1๋ก ๋ง๋ค์ด๋ OOM์ด ๋ฐ์
- reader model์์๋ ๋ชจ๋ context๋ฅผ ํ์ฉํด์ ๋ต์ ์ฐพ์์ผ ํ๊ธฐ ๋๋ฌธ์, ๋ฌธ์๋ฅผ ์ผ์ ๊ธธ์ด์์ ์ ๋จ ๋ถ๊ฐ
- ํด๊ฒฐ ๋ฐฉ์
- ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, batch size๋ฅผ 1๋ก ๊ณ ์ ํ๊ณ ๊ฐ ์ฒญํฌ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๋ชจ๋ธ์ ์ ๋ ฅํ๋ ๋ฐฉ์์ ํตํด, OOM ๋ฌธ์ ๋ฅผ ํผํจ
- OOM์ ํผํ๊ธฐ ์ํด train data๋ฅผ ํ ๋ฒ์ ์ ๋ถ ๊ณ์ฐํ์ง ์๊ณ , mini-batch๋ฅผ ํ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ฆฌ
- ๋ฌธ์ ์ํฉ
- chunk ๊ธธ์ด๊ฐ ๋งค์ฐ ํฐ ๊ฒฝ์ฐ
- fixed length
- task ์ค๋ช
- hybrid retrieval
- task ์ค๋ช
- question๊ณผ context ์ฌ์ด์ ๋จ์ด ํํ์ ๋ํ ๋์ covering ratio ๊ธฐ๋ฐ์ผ๋ก sparse embedding์ ๋์ ์ฑ๋ฅ ์์
- ์ ์ ํ augmentation๊ณผ ์ถ๊ฐ ๋ฐ์ดํฐ ํ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ฉด, dense embedding์ ํ์ฉํ์ฌ ์ผ๋ฐํ ์ฑ๋ฅ ํฅ์ ๊ฐ๋ฅ
- sparse embedding ์ ์ฉ
- context๋ณ๋ก ๊ธธ์ด์ ์ฐจ์ด๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ ์ ๋ฐ์ํ๊ธฐ ์ํด bm25 ํ์ฉ
- parameter test
K1 top-k match ratio 0.5 0.8833 0.8 0.9 1 0.8958 2 0.8833 3 0.8708 - K1 : bm25 parameter
- top-k match ratio : ์ ํํ k๊ฐ์ context ์ค real context๊ฐ ํฌํจ๋๋ ๋น์จ
- task ์ค๋ช
- concat retrieval
- task ์ค๋ช
- ๋ ํ ์คํธ๋ฅผ concatํ์ฌ ๋ชจ๋ธ output์ผ๋ก ์ ์ฌ๋๋ฅผ ๋ฐํํ๋ ๋ฐฉ์ ์ ์ฉ
- question๊ณผ context๊ฐ์ attention ํ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์, ๋ ์ข์ ์ฑ๋ฅ์ ๋ณด์ผ ๊ฒ์ผ๋ก ์์
- ๋ฌธ์ ์
- ๊ฐ๊ฐ embeddingํ๋ ๊ฒฝ์ฐ๋ searchํ ๋ ๋ฏธ๋ฆฌ context์ ๋ํ embedding์ ๊ณ์ฐํ ๋ค์, search๋ฅผ ์งํํ๋ ๊ฒ์ด ๊ฐ๋ฅ
- ํ์ง๋ง, concat method๋ ์๋ก์ด ์ง๋ฌธ์ด ๋์ฌ ๋ ๋ง๋ค ๋ชจ๋ context์ concat์ ํตํ ๊ณ์ฐ ํ์ โ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๊ณ์ฐ ์๊ฐ ๋ฌธ์
- ํ์ฉ ๋ฐฉ์
- Reranking์ ํ์ฉํ์ฌ sparse embedding์ ํตํด k1๊ฐ์ ๋ฌธ์๋ฅผ ์ ํํ ๋ค, ํด๋น ๋ฌธ์์ ๋ํด์๋ง concat retrieval ์ ์ฉ์ ํตํด ๊ณ์ฐ๋ ์ต์ํ
- ๊ฒฐ๊ณผ
Method top-k match ratio Not Concat 0.7625 Concat 0.8875 - top-k match ratio : ์ ํํ k๊ฐ์ context ์ค real context๊ฐ ํฌํจ๋๋ ๋น์จ
- not concat์ ๊ธฐ์กด์ ํ์ฉํ๋ sparse embedding๊ณผ์ weighted mean ๋ฐฉ์์ ํ์ฉํ์ฌ, ์ต์ข ์ ํ๊น์ง sparse embedding์ ์ํฅ์ ๋ฐ์ ๋์ฑ ๋์ ์ ์๊ฐ ๋์ค๋ ๊ฒ์ผ๋ก ์์
- task ์ค๋ช
- chunking
-
๋ชจ๋ธ์์น
- ๊ณ ๋ ค ์ฌํญ
- retrieval์ ๊ฒฝ์ฐ embedding์ ์์ฑํ๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์, encoder model ์์ฃผ๋ก search
- reader์ ๊ฒฝ์ฐ extraction based MRC๋ฅผ ์งํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ reader model ๋ํ encoder model ์์ฃผ๋ก search
- ๊ธด text ์ฒ๋ฆฌํด์ผ ํ๋ ์ํฉ์ ๊ณ ๋ คํ์ฌ RoBERTa ๊ณ์ด ๋ชจ๋ธ ์์ฃผ๋ก ํ์ฉ
- BERT๋ ์๋ฌด ๋ ๋ฌธ์ฅ์ ๋ถ์ฌ์ ํ์ตํ๊ธฐ ๋๋ฌธ์, ์์ฃผ ์งง์ ์ผ์ด์ค๋ ์กด์ฌ
- RoBERTa๋ ํ ํฐํ๋ ๋ฌธ์ฅ ๊ธธ์ด๊ฐ 512๊ฐ ๋์ง ์๋ ์ ์์ ์ต๋ํ ๋ฌธ์ฅ์ ์ด์ด ๋ถ์ฌ์ ํ์ต
- ๋ฐ๋ผ์, ์ฌ๋ฌ ๋ฌธ์ฅ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ธด context๋ฅผ ์ฒ๋ฆฌํ๋ task์์ ๋ ์ข์ ์ฑ๋ฅ ์์
- ๊ณ ๋ ค ์ฌํญ
wandb sweep config_retrieval.yaml ## retrieval ํ์ต
wandb sweep config_reader.yaml ## reader ํ์ต
wandb agent SWEEP_ID --count 5 ## SWEEP_ID์ ์์์ ๋ฐํ๋ sweep id ## --count ๋ค์๋ ๋ฐ๋ณต ์คํ ์งํํ ํ์
# -m : model name (AutoModel.frompretrained()์ ๋ฃ๋ model name)
# -k, -b, -e : bm25 parameter (optional, float)
python context_sparse_embedding.py -m jhgan/ko-sroberta-multitask
# -mp : model path (artifact ์์ model path, ํ๋จ ์ฒซ ๋ฒ์งธ ์ด๋ฏธ์ง ๋นจ๊ฐ ๋ฐ์ค)
# -mn : model name (artifact ์์ model name, ํ๋จ ๋ ๋ฒ์งธ ์ด๋ฏธ์ง ๋นจ๊ฐ ๋ฐ์ค)
# -b : batch size (optional, int)
python3 context_dense_embedding.py -mp [model path] -mn [model name]
# -rtmp : retrieval model path (artifact ์์ model path)
# -rtmn : retrieval model name (artifact ์์ model name)
# -rdmp : reader model path (artifact ์์ model path)
# -rdmn : reader model name (artifact ์์ model name)
# -k : number of selected contexts (optional, int)
# -w : weight for dense embedding in hybrid model (optional, float, 0~1)
python3 test.py -rtmp [retrieval model path] -rtmn [retrieval model name] -rdmp [reader model path] -rdmn [reader model name]
python3 inference.py -rtmp [retrieval model path] -rtmn [retrieval model name] -rdmp [reader model path] -rdmn [reader model name]