-
Notifications
You must be signed in to change notification settings - Fork 1
Experiments
sim_threshold, bbox_threshold, max-pool dedupe ๋ฑ ์ต์ข
์ค์ ์ ์ด๋ฅด๊ธฐ๊น์ง์ ์ ์ฒด ์คํ ํ์คํ ๋ฆฌ.
์ต์ข ๊ฒฐ๊ณผ๋ Benchmark ์ฐธ๊ณ .
| # | ์คํ | ํ ์ค ์์ฝ |
|---|---|---|
| 01 | ์ต์ด ์ธก์ (full90) | EU๊ฐ baseline์ ์์์ง๋ง context_dependent์์ base2048์ ๋ฐ๋ฆผ |
| 02 | ๋ฌธ๋งฅ ๋ฐ๋ณต ์ฝ์ + page_span | ๋ถํ ์กฐ๊ฐ ๋ฌธ๋งฅ ์์ค, ํ์ด์ง ๋ผ๋ฒจ ์ค์ฐจ ์์ |
| 03 | 02 ๋ฐ์ ํ ์ฌ์ธก์ (full90) |
context_dependent ์ญ์ ์ฑ๊ณต, Recall@10 ์ํด ๋ฐ๊ฒฌ |
| 04 | ํ๋ผ๋ฏธํฐ ์ค์ + max-pool | bbox/sim_threshold ํ์ , Recall@10 ์ํด๋ฅผ max-pool๋ก ํด์ |
| 05 | ์ต์ข ์ธก์ (full90) | Benchmark์ ์ค๋ฆฐ ์ต์ข ์์น |
90๊ฐ PDFยท2725๋ฌธํญ(full90) ๊ธฐ์ค ์ต์ด ์ธก์
| ์งํ | baseline | EU | ๊ฐญ |
|---|---|---|---|
| Recall | 0.574 | 0.625 | +5.2pp |
| EM | 0.314 | 0.537 | +22.2pp |
| ์ ํ | n | baseline EM | EU EM | baseline Recall | EU Recall |
|---|---|---|---|---|---|
| cell_value | 1727 | 0.415 | 0.667 | 0.629 | 0.688 |
| table_about | 462 | 0.290 | 0.442 | 0.374 | 0.392 |
| context_dependent | 536 | 0.009 | 0.200 | 0.565 | 0.625 |
| ์ ํ | ์ฒญํฌ ํ ํฐ ์ | R(first) | R(any) | EM |
|---|---|---|---|---|
| base | 202 | 0.574 | 0.591 | 0.314 |
| base1024 | 493 | 0.418 | 0.464 | 0.301 |
| base2048 | 484 | 0.304 | 0.372 | 0.274 |
| eu | 200 | 0.625 | 0.633 | 0.537 |
- ๋ค์ค ๋ทฐ ์์ธ ๋ฏธํต์
-
baseline์ ์ฒญํฌ 1๊ฐ=๋ฒกํฐ 1๊ฐ, EU๋
retrieval_units๋ฅผ ํผ์ณ ์ฒญํฌ 1๊ฐ=๋ฒกํฐ ์ฌ๋ฌ ๊ฐ๋ก ์์ธ๋๋ค.โ EU๊ฐ ๋จ์ง ๊ฒ์ ๊ธฐํ๊ฐ ๋ง์์ ์ด๊ธฐ๊ณ ์๋์ง์ ๋ํด์ ยง03์์ rowsplit ๋์กฐ๊ตฐ์ผ๋ก ๊ฒ์ฆํ์๋ค.
- context_dependent์์ base2048์ ๋ฐ๋ฆผ
-
EU EM 0.200 < base2048 EM 0.222. ํ๊ฐ ์ปค์ ํ ๋จ์๋ก ๋ถํ ๋ ๋(
split_eu())context_before๋ ์ฒซ ์กฐ๊ฐ์๋ง,context_after๋ ๋ง์ง๋ง ์กฐ๊ฐ์๋ง ๋ค์ด๊ฐ๊ณ ์ค๊ฐ ์กฐ๊ฐ์ ๋ฌธ๋งฅ์ด ์๋ ๊ตฌ์กฐ๊ฐ ์์ธ์ด๋ค.โ ยง02-2์์ ์์ ํ์๋ค.
- ํ์ด์ง ๋ผ๋ฒจ ยฑ1 ์ค์ฐจ
-
EvidenceUnit.page_no๊ฐ ํ ์์ ์ ํ์ด์ง ํ๋๋ฟ์ด๋ผ, ์ธ์ ํ์ด์ง์์ ๋์ด์จ ๋ฌธ๋งฅ์ด ์์ด๋ ๊ทธ ์ฌ์ค์ด metadata์ ๋จ์ง ์์ ์ ๋ต์ ์ฐพ๊ณ ๋ ํ์ด์ง ๋ผ๋ฒจ๋ง ๋ฌ๋ผ ์ค๋ต ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค.โ ยง02-3์์ ์์ ํ์๋ค.
dev20(20๊ฐ PDF, 430๋ฌธํญ) ๊ธฐ์ค ์๊ท๋ชจ ๋ฐ๋ณต ์คํ.
Recall@1/5/10 ์ธก์ , semantic chunker ๋์กฐ๊ตฐ, rowsplit(ํ๋ง ํ ๋จ์ ๋ค์ค ์์ธ) ๋์กฐ๊ตฐ์ ๋ฒค์น๋งํฌ ์ฝ๋์ ์ถ๊ฐ.
| ์งํ | baseline | EU | ๊ฐญ |
|---|---|---|---|
| Recall | 0.586 | 0.684 | +9.8pp |
| EM | 0.344 | 0.612 | +26.7pp |
| ๋์กฐ๊ตฐ | R(first) | EM |
|---|---|---|
| base | 0.586 | 0.344 |
| rowsplit | 0.623 | 0.379 |
| semantic | โ | 0.123 |
| base1024 | 0.407 | 0.333 |
| base2048 | 0.265 | 0.284 |
| eu | 0.684 | 0.612 |
rowsplit(๋ค์ค ์์ธ ์์ฒด์ ํจ๊ณผ๋ง ๋ถ๋ฆฌ)๋ baseline๋ณด๋ค ์ด์ง ๋์ ๋ฟ EU์๋ ํฌ๊ฒ ๋ชป ๋ฏธ์น์ง ๋ชปํ๋ค. ์ฆ, ๋ค์ค ๋ทฐ ์์ธ๋ง์ผ๋ก๋ EU ์ฐ์๋ฅผ ์ค๋ช ํ์ง ๋ชป ํ๋ค.
split_eu()๊ฐ ๋ถํ ๋ ๋ชจ๋ ์กฐ๊ฐ์ context_before/context_after๋ฅผ ๋ฐ๋ณต ์ฝ์
ํ๋๋ก ์์ .
| ์ ํ | ์ด์ EU EM | ์ดํ EU EM |
|---|---|---|
| context_dependent | 0.167 | 0.222 |
base2048(0.222)๊ณผ ๋๋ฅ ๊น์ง ํ๋ณตํ์๋ค. ๋ฌธํญ ๋จ์ ๊ฒ์ฆ ๊ฒฐ๊ณผ ์ ํ 0๊ฑด, ๊ฐ์ 5๊ฑด (์์ ๊ฐ์ )
์ธ์ ํ์ด์ง์์ ๋์ด์จ ๋ฌธ๋งฅ์ ํ์ด์ง ๋ฒํธ๋ฅผ EvidenceUnit.page_span์ผ๋ก ๋จ๊ธฐ๋๋ก ์์ ํ์๋ค.
Recall ํ์ ํจ๊ณผ: R(first) 0.684 โ R(any) 0.688 (+0.5pp, 430๋ฌธํญ ์ค 2๊ฑด). Recall@1/5/10๋ ๊ฐ๊ฐ +0.4/+0.7/+0.5pp ์ํญ ์์น
ํจ๊ณผ๋ ์์ง๋ง ๋ฐฉํฅ์ ์ผ๊ด๋๊ฒ ๊ฐ์ ๋๋ฏ๋ก ๋ฐ์ํ๋ค.
ยง02์ ์์ ์ฌํญ์ ๋ฐ์ํด 90๊ฐ PDF๋ก ์ฌ์ธก์ .
| ์งํ | baseline | EU | ๊ฐญ |
|---|---|---|---|
| Recall | 0.574 | 0.625 | +5.2pp |
| EM | 0.314 | 0.546 | +23.2pp |
| ์ ํ | n | baseline EM | EU EM | baseline Recall | EU Recall |
|---|---|---|---|---|---|
| cell_value | 1727 | 0.415 | 0.667 | 0.629 | 0.688 |
| table_about | 462 | 0.290 | 0.444 | 0.374 | 0.392 |
| context_dependent | 536 | 0.009 | 0.246 | 0.565 | 0.625 |
| Recall@k | R@1 | R@5 | R@10 |
|---|---|---|---|
| base | 0.574 | 0.831 | 0.904 |
| base1024 | 0.418 | 0.650 | 0.739 |
| base2048 | 0.304 | 0.497 | 0.588 |
| rowsplit | 0.628 | 0.863 | 0.920 |
| semantic | 0.121 | 0.245 | 0.314 |
| EU | 0.638 | 0.777 | 0.824 |
- context_dependent ์ญ์
- ยง01์์ ๋ฐ๊ฒฌํ "EU๊ฐ base2048์ ๋ฐ๋ฆฐ๋ค"๋ ๋ฌธ์ (0.200 vs 0.222)๊ฐ
split_eu()์์ ํ EU 0.246 vs base2048 0.222๋ก ์์ ํ ์ญ์ (+2.4pp)๋์๋ค.
- ๋ค์ค ๋ทฐ ์์ธ ๋์กฐ๊ตฐ(rowsplit)
- EM 0.314โ0.352(+3.7pp)๊ฐ ๋ค์ค ๋ทฐ ์์ธ ์์ฒด์ ํจ๊ณผ์ด๊ณ , ๋๋จธ์ง +19.5pp๊ฐ EU ๊ณ ์ ๊ตฌ์กฐ(์บก์ ยท๋ฌธ๋งฅ ๊ฒฐํฉ)์ ํจ๊ณผ์ธ ๊ฒ์ผ๋ก ๋ํ๋ฌ๋ค.
- semantic chunker ๋์กฐ๊ตฐ
- ๊ฐ์ Docling ํ์ฑ์ LangChain
SemanticChunker(๊ธฐ๋ณธ ํ์ดํผํ๋ผ๋ฏธํฐ)๋ฅผ ๋ถ์ฌ๋ EM 0.145๋ก ๋งค์ฐ ๋ฎ๋ค. ํ์๋ฅผ ๊ณ ์ ํ๊ณ semantic chunking์ ์ํํด๋ ์ฑ๋ฅ์ ์ค๋ฅด์ง ์๋๋ค.
- ์๋ก ๋ฐ๊ฒฌํ ๋ฌธ์ : Recall@10์์ EU๊ฐ baseline์ ์ง.
-
90๊ฐ ๋ฌธ์ ์ค 20๊ฐ์์ EU recall์ด baseline๋ณด๋ค ๋ฎ๊ณ , EM์ ์ฌ์ ํ EU๊ฐ ์์์ง๋ง recall๋ง ๋๊ณ ๋ณด๋ฉด ์ง๋ ๊ตฌ๊ฐ์ด ์กด์ฌํ๋ค.
โ ยง04-3์์ ์์ธ ๊ท๋ช .
dev20 ๊ธฐ์ค ํ๋ผ๋ฏธํฐ ์ค์๊ณผ ยง03์์ ๋ฐ๊ฒฌํ Recall@10 ๋ฌธ์ ์ ์์ธ ๊ท๋ช .
100~1000pt๋ก bbox_threshold ์ค์.
| bbox(pt) | 100 | 150 | 200 | 250 | 300 | 400 | 500 | 700 | 1000 |
|---|---|---|---|---|---|---|---|---|---|
| ์ ์ฒด EM | 0.605 | 0.609 | 0.609 | 0.621 | 0.623 | 0.628 | 0.628 | 0.626 | 0.626 |
| context_dependent EM | 0.139 | 0.167 | 0.194 | 0.208 | 0.222 | 0.250 | 0.250 | 0.250 | 0.250 |
๊ฒฐ๋ก : ๊ธฐ๋ณธ๊ฐ 300pt ์ ์ง.
400pt ์ด์์์ context_dependent EM์ด 0.250์ผ๋ก ํฌํ๋ผ 300pt(0.222) ๋๋น +2.8pp ๊ฐ์ ์ฒ๋ผ ๋ณด์ด์ง๋ง, 95% CI ๋ฐํญ์ด ยฑ11.55pp(n=72)๋ผ ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ์ง ์์ dev20 ํ๋ณธ์ผ๋ก๋ ๋๋ฆด ๊ทผ๊ฑฐ๊ฐ ๋ถ์กฑํ๋ค.
์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ๋ช ์ํ๋ค๊ณ ๊ฐ์ ํ๊ณ ๊ฒ์ ๋ญํน์ ๋ถ์คํ ํ๋ฉด ์ผ๋ง๋ ๊ฐ์ ๋๋์ง ์ธก์ .
| ์กฐ๊ฑด | baseline R | baseline EM | EU R | EU EM |
|---|---|---|---|---|
| delabeled(๊ธฐ์ค์ ) | 0.586 | 0.344 | 0.684 | 0.623 |
| ์๋ณธ ์ง๋ฌธ ๊ทธ๋๋ก | 0.588 | 0.342 | 0.656 | 0.586 |
| ์ํํธ ๋ถ์คํ (ฮด=0.02) | 0.626 | 0.367 | 0.721 | 0.653 |
| ฮด=0.20 | 0.893 | 0.502 | 0.916 | 0.812 |
| ํ๋ ํํฐ(ฮด=0.50) | 0.916 | 0.509 | 0.937 | 0.823 |
๋ถ์คํ ์ ๊ฑธ์ด๋ baseline๊ณผ EU์ EM ๊ฐญ์ด ์คํ๋ ค ๋ฒ์ด์ง๋ ๊ฒ(+27.9pp โ +31.4pp)์ ํ์ธ๋์๋ค. ๋ถ์คํ ์ด EU์ ๊ตฌ์กฐ์ ์ด์ ์ ํ์ธํ๋ ์ ๋์ ์ฐธ๊ณ ์๋ฃ๋ก๋ง ๋ณด๊ดํ๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ธฐ๋ฅ์ผ๋ก๋ ๋ฐ์ํ์ง ์๊ธฐ๋ก ํ๋ค.
ยง03์์ ๋ฐ๊ฒฌํ Recall@10 ์ํด์ ์์ธ ๊ท๋ช .
๊ฐ์ค: EU ํ๋๊ฐ retrieval_units๋ก ์ฌ๋ฌ ๋ฒกํฐ๋ฅผ ๋ง๋๋๋ฐ, ๊ธฐ์กด ์ฑ์ ๋ฐฉ์(flat)์ ์ด ๋ฒกํฐ๋ค์ ๊ฐ๋ณ์ ์ผ๋ก top-k์ ๋ฃ๋๋ค. ๊ฐ์ EU์ ์ ๋ ์ฌ๋ฌ ๊ฐ๊ฐ top-10 ์ฌ๋กฏ์ ๋ชฐ์ ์ฐจ์งํ๋ฉด ๋ค๋ฅธ ๊ทผ๊ฑฐ๋ฅผ ๊ฐ์ง EU๊ฐ ๋ฐ๋ ค๋ ์ ์๋ค.
์ฆ, Recall@10 ์ํด๊ฐ EU ๊ตฌ์กฐ ์์ฒด์ ๊ฒฐํจ์ด ์๋ ๋ญํน ์ง๊ณ ๋ฐฉ์์ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
๊ฐ์ chunk_id๋ผ๋ฆฌ ์ต๊ณ ์ ์๋ก ๋ฌถ์ด top-k์ ๊ฐ์ EU๊ฐ ์ค๋ณต์ผ๋ก ๋ค์ด๊ฐ์ง ์๋๋ก ์์ ํ๋ค.
| baseline | flat | max_pool | ฮ(mpโflat) | |
|---|---|---|---|---|
| R@1 | 0.586 | 0.695 | 0.693 | โ0.2pp |
| R@5 | 0.856 | 0.833 | 0.886 | +5.3pp |
| R@10 | 0.928 | 0.872 | 0.951 | +7.9pp |
๊ฒฐ๋ก : max_pool์ด R@5, R@10์์ baseline์ ์ค์ ๋ก ์ญ์ ํ๋ค.
๋ฐ๋ผ์ Recall@10 ์ํด๋ EU ๊ตฌ์กฐ ์์ฒด์ ๊ฒฐํจ์ด ์๋๋ผ flat ๋ญํน(์ ๋ ๋จ์ ์ง๊ณ) ๋ฐฉ์์ ๋ฌธ์ ์๋ค.
โ LangChain/LlamaIndex ๋ํผ์ ๊ฐ์ chunk_id๋ฅผ max-pool๋ก ํฉ์น๋ ์ต์
์ผ๋ก ๋ฐ์ํ๋ค.
CPU ๊ธฐ์ค ์ฒ๋ฆฌ ์๋ ์ธก์ .
dev20 ์ ์ฒด(20๊ฐ PDF) ํ๊ท 2.01์ด/ํ์ด์ง โ 10ํ์ด์ง ํ์ฐ ์ฝ 20.1์ด, baseline(HybridChunker) ๋๋น EU ๋น๋ ์์ฒด์ ์ค๋ฒํค๋๋ ๋๋ถ๋ถ 1์ด ๋ฏธ๋ง์ด์๋ค.
docling ํ์ฑ ์๊ฐ์ด ์ ์ฒด์ 90% ์ด์์ ์ฐจ์งํ๊ณ , EU ๊ตฌ์ฑ ๋ก์ง์ ๋ณ๋ชฉ์ด ์๋๋ค.
์ง๊ธ๊น์ง ๋ชจ๋ ์คํ์ด all-MiniLM-L6-v2๋ก embedder๋ฅผ ๊ณ ์ ํด์จ ๊ฒ์ ๋ํ robustness ์ฒดํฌ.
bge-small-en-v1.5/e5-small-v2๋ ๊ณต์ ๊ถ์ฅ query/passage ํ๋ฆฌํฝ์ค๋ฅผ ์ ์ฉํด ๊ณต์ ๋น๊ต.
| embedder | baseline EM | EU EM | ๊ฐญ | EU R@1 | EU R@10 |
|---|---|---|---|---|---|
| all-MiniLM-L6-v2 | 0.344 | 0.600 | +25.6pp | 0.661 | 0.854 |
| bge-small-en-v1.5 | 0.407 | 0.614 | +20.7pp | 0.672 | 0.854 |
| e5-small-v2 | 0.435 | 0.644 | +20.9pp | 0.677 | 0.872 |
์ธ embedder ์ ๋ถ์์ ๊ฐญ์ด 20pp ์ด์ ํ๊ณ ํ ์ ์ง๋์๋ค. ํนํ context_dependent์์ baseline EM์ด ์ธ embedder ๋ชจ๋ ์ ํํ 0.0417๋ก ๋์ผํ ๋ฐ๋ฉด EU๋ embedder๊ฐ ์ข์์ง์๋ก ๊ฐ์ด ๊ฐ์ ๋๋ค.
baseline์ ์คํจ๊ฐ ์๋ฒ ๋ฉ ํ์ง ๋ฌธ์ ๊ฐ ์๋ ์ ๋ต์ด ์ ์ด์ ์ฒญํฌ ์์ ์์ด์ ํ์ง ๋ชปํ๋ ๊ตฌ์กฐ์ ๋ฌธ์ ๋ผ๋ ํต์ฌ ์ฃผ์ฅ์ ๋ท๋ฐ์นจํ๋ ๊ฒฐ๊ณผ์ด๋ค. ๊ตฌ์กฐ์ ์ฐ์๊ฐ embedder์ ์์กดํ์ง ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ embedder๋ ๊ทธ๋๋ก ์ ์งํ๊ธฐ๋ก ํ๋ค.
0.00~0.60(0.05 ๊ฐ๊ฒฉ, 13๊ฐ ์ง์ ).
| sim_threshold | ์ ์ฒด EM | cell_value EM | table_about EM | context_dependent EM |
|---|---|---|---|---|
| 0.00 | 0.635 | 0.756 | 0.494 | 0.319 |
| 0.20 | 0.619 | 0.749 | 0.494 | 0.250 |
| 0.40(๊ตฌ ๊ธฐ๋ณธ๊ฐ) | 0.600 | 0.735 | 0.494 | 0.194 |
| 0.60 | 0.579 | 0.724 | 0.494 | 0.111 |
13๊ฐ ์ง์ ์ ๊ตฌ๊ฐ์์ threshold๋ฅผ ๋ฎ์ถ์๋ก ์ธ ์ ํ EM์ด ๋จ์กฐ ์ฆ๊ฐํ๊ฑฐ๋ ์ ์ง๋๋ค.
- ํนํ
context_dependent๋ 0.00์์ 0.319, 0.40์์ 0.194๋ก +12.5pp ์ฐจ์ด.
๊ฒฐ๋ก : sim_threshold ๊ธฐ๋ณธ๊ฐ์ 0.0์ผ๋ก ๋ฎ์ถ๋ค(์ฝ์ฌ์ธ ๊ฒ์ดํธ๋ฅผ ์ฌ์ค์ ๋ฌด๋ ฅํ).
์ฌ์ฉ์๊ฐ ํ์์ ๊ฐ์ ์ฌ๋ฆด ์ ์๊ฒ ๋จ๊ฒจ๋๋, ๊ธฐ๋ณธ๊ฐ(0.0)์์๋ model.encode() ํธ์ถ ์์ฒด๋ฅผ ๊ฑด๋๋ฐ์ด sentence-transformers/torch ์์ด๋ ๋์ํ๋๋ก ๊ตฌํํ๋ค.
๋ชจ๋ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐ์ํด 90๊ฐ PDF๋ก ์ฌ์ธก์ ํ ์ต์ข ๊ฒฐ๊ณผ.
์ด ์คํ์์ ๋์จ ์ต์ข ์์น๋ Benchmark์ ์ ๋ฆฌ.
์ฌ๊ธฐ์๋ ๊ทธ ์์น์ ์ด๋ฅด๋ ๊ณผ์ ์์ ํ์ธํ ๊ฒ๋ง ์์ฝํ๋ค.
| ์งํ | baseline | Evidence Chunker | ๊ฐญ |
|---|---|---|---|
| Recall | 0.574 | 0.625 | +5.1pp |
| EM | 0.314 | 0.569 | +25.5pp |
- base1024/base2048: ์ฒญํฌ๋ฅผ ์ต์ง๋ก ํค์๋ R@1/EM์ด ์คํ๋ ค ๋จ์ด์ง๋ค.
- rowsplit: baseline ๋๋น EM +3.8pp(0.314โ0.352)๋ง ํ๋ณต๋๋ค. ๋ค์ค ๋ทฐ ์์ธ ์์ฒด์ ๊ธฐ์ฌ๋ ์๊ณ ์บก์ +๋ฌธ๋งฅ ๊ฒฐํฉ(EU ๊ณ ์ ๊ตฌ์กฐ)์ด ๊ฐ์ ๋ถ์ ๋๋ถ๋ถ์ ์ค๋ช ํ๋ค.
-
semantic chunking:
SemanticChunker๋ R@1 0.121, EM 0.145๋ก baseline๋ณด๋ค๋ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค. -
๋ฌธํญ ๋จ์ ์นํจ: EU๋ง ์ ๋ต 521๊ฑด, baseline๋ง ์ ๋ต 382๊ฑด
- ๋ฌธ์ ์์ ๊ตฌ์กฐ์ ์ผ๋ก ๋น์ทํ ํ๊ฐ ์ฌ๋ฌ ๊ฐ ์์ด ๊ฒ์ ๋จ๊ณ์์ ์๋ฑํ ํ๋ฅผ ๊ณจ๋ผ์จ ๊ฒฝ์ฐ๋ก, ์บก์ /๋ฌธ๋งฅ ์ถ์ถ ์์ฒด์ ์คํจ๋ ์๋๋ค. (Limitations & Roadmap #2 ์ฐธ๊ณ )