๐ ๊ธฐ๋ณธ ๋ฐฐ๊ฒฝ์ง์: ์ฒญํน(Chunking)์ด๋?
RAG(๊ฒ์ ์ฆ๊ฐ ์์ฑ) ์์คํ
์ ๋ง๋ค ๋, ์๋ฐฑ ํ์ด์ง์ง๋ฆฌ ์ฑ
์ AI์๊ฒ ํต์งธ๋ก ์ฃผ๋ฉด ๊ธฐ์ต์ ์ ๋ชปํ๊ฑฐ๋ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. ๊ทธ๋์ ์ฑ
์ ์๊ฒ ์ชผ๊ฐ์ ์ ์ฅํ๋๋ฐ, ์ด ์ชผ๊ฐ๋ ๊ณผ์ ์ ์ฒญํน(Chunking)์ด๋ผ๊ณ ํฉ๋๋ค. ๋ํ์ ์ธ ๋ฐฉ๋ฒ ๋ ๊ฐ์ง๊ฐ ๋ฌธ์ ์ ๋์์ต๋๋ค.
1. ๊ณ ์ ์ฐฝ ์ฒญํน (Fixed-window / Fixed-size Chunking):
โข ๋ฐฉ์: ์๋ฏธ์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ๊ธ์ ์๋ ํ ํฐ ์(์: 300๊ธ์์ฉ)๋ก ๋๋ ์๋ฅด๋ ๋ฐฉ์์
๋๋ค.
โข ์ฅ์ : ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ณ ์ปดํจํฐ ์ฐ์ฐ ๋น์ฉ์ด ๊ฑฐ์ ๋ค์ง ์์ ๋จ์ํ๊ณ ์์ธก ๊ฐ๋ฅํฉ๋๋ค.
2. ์๋งจํฑ ์ฒญํน (Semantic Chunking):
โข ๋ฐฉ์: ๋ฌธ์ฅ๋ค์ ์ฝ์ด ๋ด๋ ค๊ฐ๋ค๊ฐ '์ด์ผ๊ธฐ์ ์ฃผ์ ๋ ๋งฅ๋ฝ์ด ๋ฐ๋๋ ์ง์ (์๋ฏธ์ ๊ฒฝ๊ณ)'์ ์ฐพ์๋ด์ด ์ ์ฐํ๊ฒ ์๋ฅด๋ ๋ฐฉ์์
๋๋ค.
โข ์ฅ์ : ๋ฌธ๋งฅ์ด ์ค๊ฐ์ ๋๊ธฐ์ง ์์ ์ด๋ก ์ ์ผ๋ก๋ ๊ฒ์ ํ์ง์ด ๋ ์ข์์ง ๊ฒ์ด๋ผ ๊ธฐ๋ํฉ๋๋ค.
RAG ํ์ดํ๋ผ์ธ 3๋จ๊ณ ๋ฒ์น
์ํ์์ ์์คํ
์ ํ๋ฆ(Pipeline)์ ๋ฌป๋ ์์ ๋ฐฐ์น๋ ์ญํ ๋ฌธ์ ๊ฐ ์์ฃผ ๋์ต๋๋ค.
โข 1๋จ๊ณ (์ง์ ๋ฒ ์ด์ค ๋ถํ ): ๋๊ท๋ชจ ๋ฌธ์๋ฅผ ์ธ๋ฑ์ค์ ์ ์ฅ/์ ์ ๋งค๊ธธ ์ ์๋๋ก ์์ ์กฐ๊ฐ(Chunk)์ผ๋ก ์ชผ๊ฐญ๋๋ค.
โข 2๋จ๊ณ (์๋ฒ ๋ฉ ๋ฐ ์ธ๋ฑ์ฑ): ๊ฐ ์ฒญํฌ๋ฅผ ์ซ์๋ก ๋ณํ(Embedding)ํ์ฌ ์ ์ฅ(Index)ํฉ๋๋ค.
โข 3๋จ๊ณ (ํ๋กฌํํธ ์ฃผ์
): ์ง๋ฌธ๊ณผ ๊ฐ์ฅ ๊ด๋ จ ์๋ ์ฒญํฌ๋ฅผ ๋ฝ์ ํ๋กฌํํธ์ ์ฃผ์
(Context Grounding)ํ์ฌ ๋ชจ๋ธ์ด ๋๋(๋ฉ๋ชจ๋ฆฌ)๊ฐ ์๋ ์ฃผ์ด์ง ๋ณธ๋ฌธ์์ ๋ต๋ณํ๊ฒ ๋ง๋ญ๋๋ค.
โข โ ๏ธ ์ํ ์ถ์ ํฌ์ธํธ: "์ฒญํน์ ํ์ ์ ์ฒด ํ๋ก์ธ์ค์ ์ฒ์ฅ(Ceiling)์ ๊ฒฐ์ ํ๋ค." ์ฆ, 1๋จ๊ณ(์ฒญํน)์์ ๋ฐ์ดํฐ๋ฅผ ์๋ชป ์ชผ๊ฐ๋ฉด ์๋ฌด๋ฆฌ ๊ฒ์๊ธฐ๋ LLM์ด ๋๋ํด๋ ์ค๋ต์ ๋
๋๋ค.
๋ง์ ๊ฐ๋ฐ ํ์ด "๋ฌด์กฐ๊ฑด ์๋ฏธ๋๋ก ์ชผ๊ฐ๋ ์๋งจํฑ ์ฒญํน์ด ๊ฒ์์ ๋ ์ํ๊ฒ ์ง?"๋ผ๊ณ ์ฐฉ๊ฐ(Assume)ํฉ๋๋ค.
ํ์ง๋ง ๋๊ท๋ชจ ๋ฒค์น๋งํฌ์ ์ค์ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๋ ๋ค๋ฆ
๋๋ค.
โข ์๋ฒ ๋ฉ ํ์ง์ ์ค์์ฑ: ํ
์คํธ๋ฅผ ์๋ฌด๋ฆฌ ์๋ฏธ ์๊ฒ ์ ์ชผ๊ฐ๋, ๊ทธ ํ
์คํธ๋ฅผ ์ซ์๋ก ๋ณํํด ์ฃผ๋ '์๋ฒ ๋ฉ ๋ชจ๋ธ(Embedding Model)'์ ์ง๋ฅ(ํ์ง)์ด ๋ฎ์ผ๋ฉด ์๋ก ๊ด๋ จ ์๋ ๋ด์ฉ์ ์ฐพ์๋ด์ง ๋ชปํฉ๋๋ค.
โข ๋ฐ๋๋ก, ํ๋ฅญํ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฐ์ ํ
์คํธ ๊ฒน์นจ(Overlap)์ ๋ ๊ณ ์ ์ฐฝ ์ฒญํน๋ง ์จ๋ ์๋งจํฑ ์ฒญํน๊ณผ ์ฑ๋ฅ์ด ๋น์ทํ๊ฑฐ๋ ์คํ๋ ค ๋ ์์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ฒญํน ์ ๋ต ์์ฒด๋ณด๋ค ์ด๋ค ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ผ๋๋๊ฐ ๊ฒ์ ํ์ง์ ์ข์ฐ(Dominate)ํ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ถ๋ถ์
๋๋ค.
์ฒญํน์ ์กฐ์ ํ๋ 3๊ฐ์ง ๋
ธ๋ธ (Knobs)
์ํคํ
์ฒ ์ค๊ณ ์ ์์น์ ์ฅ๋จ์ (Trade-off)์ ๋น๊ตํ๋ ๋ฌธ์ ๋ก ์ถ์ ๋ฉ๋๋ค.
โข ํฌ๊ธฐ (Size): ์ฒญํฌ์ ํ ํฐ ์
โข ์๊ฒ ์ชผ๊ฐ๋ฉด: ์ ๋ฐ๋(Precision)๊ฐ ๋์์ ธ ์ข์ ๋ฒ์์ ์ง๋ฌธ์ ๊ฐํจ. ๋์ ๋ฌธ๋งฅ์ด ๋๊น.
โข ํฌ๊ฒ ์ชผ๊ฐ๋ฉด: ์ฃผ๋ณ ๋ฌธ๋งฅ์ ์ ๋ณด์กดํจ. ๋์ ๋
ธ์ด์ฆ๊ฐ ์์ฌ ๊ฒ์ ์ ํธ๊ฐ ํฌ์(Dilute)๋จ.
โข ๊ฒฝ๊ณ (Boundary): ์ด๋์ ์๋ฅผ ๊ฒ์ธ๊ฐ
โข ๊ณ ์ ์ฐฝ(Fixed-window): ์๋ฏธ ๋ฌด์, ์ ํด์ง ํ ํฐ ์๋ก ๋ฌด์กฐ๊ฑด ์๋ฆ.
โข ์๋งจํฑ(Semantic): ๋ฌธ๋งฅ, ์ฃผ์ , ์น์
์ด ๋ฐ๋๋ ์ง์ ์ ์ฐพ์์ ์๋ฆ.
โข ์ค๋ฒ๋ฉ (Overlap): ์๋ค ์ฒญํฌ ์ฌ์ด์ ๊ฒน์น๊ฒ ๋๋ ํ ํฐ ์
โข ๋ชฉ์ : ๊ฒฝ๊ณ๋ฉด์ ๊ฑธ์ณ์ง ์ค์ํ ์์ด๋์ด๊ฐ ์ชผ๊ฐ์ ธ ์์ค๋๋ ๊ฒ์ ๋ฐฉ์งํจ.
โข ๋น์ฉ: ์ธ๋ฑ์ค ์ ์ฅ ๊ณต๊ฐ์ด ์ค๋ณต์ผ๋ก ๋์ด๋จ.
3. [โ
๊ฐ์ฅ ์ค์] ์ํ ๋จ๊ณจ ์ค๋ต ํจ์ ๊ณผ ์ง์ค
Anthropic(ํด๋ก๋ ๊ฐ๋ฐ์ฌ)์ ๊ณต์ ๊ฐ์ด๋๋ผ์ธ์ ๊ธฐ๋ฐํ ์ํ์ง ์ ๋ต ๋จ๊ณจ ๋ฉํธ๋ค์
๋๋ค.
โข โ ํจ์ ์ ์ง: "์๋งจํฑ ์ฒญํน์ ์ธ์ ๋ ๊ณ ์ ์ฐฝ ์ฒญํน๋ณด๋ค ๋ฐ์ด๋ ๊ฒ์ ํ์ง์ ๋ณด์ฅํ๋ค."
โข โญ ์ค์ ์ ๋ต: ๊ณ ์ ์ฐฝ ๋ฐฉ์๋ ์๋งจํฑ๊ณผ ๋น๊ตํ ๋งํ(Comparable) ์ฑ๋ฅ์ ๋
๋๋ค. ์๋งจํฑ์ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ํ๋์ด ์ด๋ ค์ฐ๋ฉฐ, ๋
ธ๋ ฅ ๋๋น ์ป๋ ์ด๋์ด ์ ์ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
โข โญ ์ง์ค (Priority): ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ํ์ง(Embedding Quality)์ด ์ฒญํน ์ ๋ต๋ณด๋ค ๊ฒ์ ํ์ง์ ์ง๋ฐฐ(Dominate)ํฉ๋๋ค. ํ๋ค์ด ์ฑ๋ฅ ๋ฎ์ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ฐ๋ฉด์ ์ฒญํน ๋ฐฉ์๋ง ๊ณ ๋ฏผํ๋๋ผ ์๊ฐ์ ๋ญ๋นํ๋๋ฐ, ์ด๋ฅผ ๋ค์ง์ด(Flip) "๋๋ํ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ๋จผ์ ํ๋ณด"ํ๋ ๊ฒ์ด ํต์ฌ์
๋๋ค.
4. ๋๋ฒ๊น
๋ฐ ํธ๋ฌ๋ธ์ํ
์ฉ์ด
์๋ฌ ์ํฉ์ด ์ฃผ์ด์ง๊ณ ์์ธ์ ์ฐพ๋ ๋ฌธ์ ์ ๋์ค๋ ํค์๋์
๋๋ค.
โข ํํธํ ๋ฌธ์ (Bare fragment problem): ์ฒญํฌ ํ๋๋ฅผ ๋ฌธ์์์ ๋ผ์ด๋์ ๋ ์ฃผ๋ณ ๋งฅ๋ฝ์ด ์ฌ๋ผ์ ธ ๋ฉ๊ทธ๋ฌ๋ ๋จ๋ ํ์. ์ง๋ฌธ์ด ๋๋ฝ๋ ๋งฅ๋ฝ์ ์์กดํ ๋ ๊ฒ์ ํ์ง์ ๋จ์ด๋จ๋ฆผ.
โข Recall at K: ์์ K๊ฐ์ ๊ฒ์ ๊ฒฐ๊ณผ ์์ ์ง์ง ๊ด๋ จ๋ ์ฒญํฌ๊ฐ ์ผ๋ง๋ ํฌํจ๋์ด ์๋์ง๋ฅผ ๋ปํ๋ ์งํ. ์์คํ
์ฑ๋ฅ์ ์ง๊ด์ ์ผ๋ก ์ธก์ ํ ๋ ์.
๐ฏ ์ํ ํฉ๊ฒฉ์ ์ํ ์ํคํ
ํธ์ ํ์ค ํ๋ ์ง์นจ (Order of Method)
์ํ ๋ฌธ์ ์์ "์๋ก์ด ์ง์ ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ถํ ๋ ์ํคํ
ํธ๊ฐ ์ทจํด์ผ ํ ์ฌ๋ฐ๋ฅธ ์์๋?" ํ๊ณ ๋ฌผ์ผ๋ฉด ์ด ์์๋ฅผ ๊ณ ๋ฅด์ธ์.
1. Baseline ๊ตฌ์ถ: ๋จ์ํ๊ณ ๊ฐ๋ ฅํ ๊ณ ์ ์ฐฝ(Fixed-window) ๋ฐฉ์์ผ๋ก ๊ธฐ์ค์ ์ ์ก๋๋ค.
2. Overlap ์ถ๊ฐ: ๊ฒฝ๊ณ๋ฉด ๋ฐ์ดํฐ ์์ค์ ๋ง๊ธฐ ์ํด ์ ์ ํ ์ค๋ฒ๋ฉ์ ์ค์ ํ๋ค.
3. Embedder ํฌ์: ์ฒญํน์ ๋ ๋ณต์กํ๊ฒ ๋ฐ๊พธ๊ธฐ ์ ์, ๊ฐ๋ ฅํ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ๋์
ํ๋ค.
4. Measure (์ธก์ ): ์ค์ ์ฟผ๋ฆฌ๋ฅผ ๋์ ธ Recall at K ๋ฑ์ ์งํ(์ซ์)๋ฅผ ํ์ธํ๊ณ , ์งํ๊ฐ ์ฆ๋ช
ํ ๋๋ง ์๋งจํฑ ์ฒญํน ๋ฑ์ ๋ณต์ก์ฑ์ ์ถ๊ฐํ๋ค. (์ง๊ด์ ์์กด ๊ธ์ง)
์ฝํ ์คํธ ๊ธฐ๋ฐ ๊ฒ์(Contextual Retrieval)'**์ ํต์ฌ ๋ฉ์ปค๋์ฆ
๐ฏ ์ํ ๋๋น ํต์ฌ ์์ฝ ํค์๋
โข ๋์: ์ฒญํฌ ์์ 50~100 ํ ํฐ์ ๋ฐฐ๊ฒฝ ์ค๋ช
์ Prepend(์์ ์ถ๊ฐ) ํจ.
โข ํ์ด๋ฐ: ์ฌ์ฉ์๊ฐ ์ง๋ฌธํ ๋๊ฐ ์๋๋ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ Indexing Time(์ธ๋ฑ์ฑ ์์ )์ ์คํ๋จ.
โข ํจ๊ณผ: ์ปจํ
์คํธ๊ฐ ๋จ์ ๋ ํํธํ๋ ์ฒญํฌ์ '๋ฌธ๋งฅ์ ๋ฌ๋ฆฌ(Anchor)'๋ฅผ ํ์ด์ฃผ์ด ๊ฒ์ ์ ํ๋๋ฅผ ๊ทน์ ์ผ๋ก ํฅ์์ํด.
3๋จ๊ณ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ์ ์ธต(Stacking) ๊ตฌ์กฐ์ ์ฑ๋ฅ ์งํ
์ํ ๋ฌธ์ ์์ "Anthropic ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ผ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ์ฑ๋ฅ์ ๊ทน๋ํํ๋ ์ฌ๋ฐ๋ฅธ ์ํคํ
์ฒ ์ ์ธต ๋ฐฉ์์?" ๋๋ ๊ฐ ๋จ๊ณ๋ณ ๋์ ํจ๊ณผ๋ฅผ ๋ฌป๋ ์ฐ์ฐํ ๋ฌธ์ ๊ฐ ์ถ์ ๋ฉ๋๋ค. Anthropic์ ๊ฒ์ ์คํจ์จ ๊ฐ์(Reduction in retrieval failure) ์งํ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช
ํฉ๋๋ค.
โข Layer 1: Contextual Embeddings (์ฝํ
์คํธ ๊ธฐ๋ฐ ์๋ฒ ๋ฉ)
โข ์ค๋ช
: ๋ฐฐ๊ฒฝ ์ค๋ช
(Context)์ด ์ถ๊ฐ๋ ์ฒญํฌ๋ฅผ ๊ณ ์ฐจ์ ์๋ฏธ ๋งค์นญ์ ํ๋ ๋ฐ์ง ๋ฒกํฐ ์ธ๋ฑ์ค(Dense Vector Index)์ ์ ์ฅ.
โข ์ฑ๋ฅ: ๋จ๋
์ ์ฉ ์ ๊ฒ์ ์คํจ์จ ์ฝ 35% ๊ฐ์.
โข Layer 2: Contextual BM25 (์ฝํ
์คํธ ๊ธฐ๋ฐ BM25)
โข ์ค๋ช
: ๋์ผํ ์ฝํ
์คํธ ๊ฐํ ์ฒญํฌ๋ฅผ ์ ํํ ํค์๋/๊ณ ์ ๋ช
์ฌ ๋งค์นญ์ ํ๋ ํฌ์ ์ดํ ์ธ๋ฑ์ค(Sparse Lexical Index)์ ์ค๋ณต ์ ์ฅ.
โข ์ฑ๋ฅ: Layer 1๊ณผ ๊ฒฐํฉ ์(ํ์ด๋ธ๋ฆฌ๋) ์คํจ์จ ์ฝ 49% ๊ฐ์ (์๋ฒ ๋ฉ ๋จ๋
ํจ๊ณผ๊ฐ ์๋์ ์ธ์งํ ๊ฒ).
โข Layer 3: Re-ranking (๋ฆฌ๋ญํน)
โข ์ค๋ช
: ์ ๋ ์ธ๋ฑ์ค์์ ๋๊ฒ ๋ฝ์์จ ํ๋ณด๊ตฐ์ ํฌ๋ก์ค ์ธ์ฝ๋(Cross-encoder) ๋ฆฌ๋ญ์ปค ๋ชจ๋ธ๋ก ๋ค์ ์ ๋ ฌํ์ฌ ์ต์ข
์์ถ.
โข ์ฑ๋ฅ: ์ ์ฒด ์คํ ์์ฑ ์ ์คํจ์จ ์ฝ 67% ๊ฐ์.
โข โ ๏ธ ์ํ ์ถ์ ํฌ์ธํธ: ์ด ์์น๋ค์ ๋ฒ์ฉ ์์๊ฐ ์๋ Anthropic ์์ฒด ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ์
๋๋ค. ์ํ์์๋ "๊ฐ ๋ ์ด์ด๋ ๋
๋ฆฝ์ ์ผ๋ก ๋์
๋ฐ ์ธก์ ์ด ๊ฐ๋ฅํ๋ฉฐ, ๊ฒฐํฉํ ์๋ก ํจ๊ณผ๊ฐ ๋์ (Compound/Stacking)๋๋ค"๋ ์ํคํ
์ฒ์ ๋ณธ์ง์ด ์ ๋ต์ผ๋ก ์ถ์ ๋ฉ๋๋ค.
2. ๊ฒฝ์ ์ฑ ๋ฐ ์ง์ฐ ์๊ฐ(Latency) ์ต์ ํ์ ํต์ฌ: ํ๋กฌํํธ ์บ์ฑ
์ํ์์ ๊ฐ์ฅ ๋ง์ด ํ๊ณ ๋๋ "๋น์ฉ(Cost)๊ณผ ์ฑ๋ฅ์ ํธ๋ ์ด๋์คํ" ๋จ๊ณจ ๋ฌธ์ ์
๋๋ค.
โข ์ค์๊ฐ ์ฒ๋ฆฌ(Query Time)๊ฐ ์๋: ์ฝํ
์คํธ ์์ฑ์ ์ฌ์ฉ์๊ฐ ์ง๋ฌธํ ๋ ์ผ์ด๋๋ ๊ฒ์ด ์๋๋ผ, ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๋ ์ธ๋ฑ์ฑ ์์ (Indexing Time)์ ๋ฑ ํ ๋ฒ ์คํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ์ฒด๊ฐํ๋ ์ค์๊ฐ ๋ต๋ณ ์๋(Query Latency)์๋ ์ถ๊ฐ์ ์ธ ์ค๋ฒํค๋๊ฐ ์ ํ ์์ต๋๋ค.
โข ํ๋กฌํํธ ์บ์ฑ(Prompt Cashing)์ ์ญํ : ๋งค ์ฒญํฌ๋ง๋ค ์๋ฐฑ ํ์ด์ง์ ์๋ณธ ๋ฌธ์๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ์ฝํ๋ฉด ๋น์ฉ์ด ํ์ฐ ์์ค์ผ๋ก ์ปค์ง๋๋ค. ์ํคํ
ํธ๋ ์๋ณธ ๋ฌธ์๋ฅผ ํ ๋ฒ ์บ์(Cache)์ ๋ก๋ํด ๋๊ณ , ๊ทธ ์์์ ๋ชจ๋ ์ฒญํฌ์ ์ฝํ
์คํธ(50~100 ํ ํฐ)๋ฅผ ์บ์ ์ฝ๊ธฐ ๋ฐฉ์์ผ๋ก ์ ๋ ดํ๊ฒ ์์ฑํด์ผ ํฉ๋๋ค.
โข โ ๏ธ ์ํ ์ถ์ ํฌ์ธํธ: ์ฝํ
์คํธ ๊ธฐ๋ฐ ๊ฒ์์ ๋๊ท๋ชจ ํ๊ฒฝ์์ ๊ฒฝ์ ์ ์ผ๋ก ํ์ค์ฑ ์๊ฒ(Affordable/Economical) ๋ง๋๋ ์ผ๋ฑ ๊ณต์ ์ ๋ชจ๋ธ์ ๋จ๊ฐ ํ๋ฝ์ด ์๋๋ผ "ํ๋กฌํํธ ์บ์ฑ ์ํคํ
์ฒ ๊ธฐ๋ฒ" ๊ทธ ์์ฒด์
๋๋ค.
3. ์ํคํ
ํธ์ ์ฝํ
์คํธ ๊ธฐ๋ฐ ๊ฒ์ ๋์
๊ธฐ์ค (์ธ์ ์ธ ๊ฒ์ธ๊ฐ?)
์ด ๊ธฐ์ ์ ์์ ๊ฐ์์์ ์ธ๊ธ๋ 'ํํธํ ๋ฌธ์ (Bare fragment problem)'๋ฅผ ์๋ฒฝํ๊ฒ ์น๋ฃํฉ๋๋ค.
โข ๊ธฐ์กด ๋ฌธ์ ์ : ์๋ฐฑ ํ์ด์ง์ง๋ฆฌ ์ฌ๋ฌด์ ํ ๋ฌธ์์์ "2024๋
2๋ถ๊ธฐ ์์ด์ต์ 5% ์ฆ๊ฐํ๋ค"๋ผ๋ ํ ์ค์ ๋ ๋ผ์ด๋ด์ด ์ฒญํฌ๋ก ๋ง๋ค๋ฉด, ๋์ค์ ์ฌ์ฉ์๊ฐ "Aํ์ฌ์ 2024๋
2๋ถ๊ธฐ ์์ด์ต์ด ์ด๋?"๋ผ๊ณ ๋ฌผ์์ ๋, ์ฒญํฌ ์์ฒด์ 'Aํ์ฌ'๋ผ๋ ๋จ์ด๊ฐ ์์ด์ ๊ฒ์๊ธฐ๊ฐ ์ด ์ฒญํฌ๋ฅผ ์ฐพ์ง ๋ชปํ๊ณ ๋์นฉ๋๋ค.
โข Contextual Retrieval์ ํด๊ฒฐ์ฑ
: ์ฒญํฌ ์์ [์ด ์กฐ๊ฐ์ Aํ์ฌ์ 2024๋
์ฌ๋ฌด์ ํ ์ค 2๋ถ๊ธฐ ์ค์ ๋ฐํ ์น์
์ ํฌํจ๋ ๋ด์ฉ์
๋๋ค]๋ผ๋ 50~100 ํ ํฐ์ง๋ฆฌ ๋ฐฐ๊ฒฝ ์ค๋ช
์ LLM์ด ๋ฏธ๋ฆฌ ์ ์ด์ ๋ถ์ฌ์ค๋๋ค. ๋๋ถ์ ๊ฒ์๊ธฐ๊ฐ ํต์ฌ ํค์๋(Aํ์ฌ, ์ฌ๋ฌด์ ํ ๋ฑ)๋ฅผ ์ฝ๊ฒ ์ธ์ํ๊ณ ์ ํํ๊ฒ ์ฐพ์์ฌ ์ ์์ต๋๋ค.
ํ๋ฆฐ ์์
( Semantic chunking reliably outperforms fixed-window across most corpora and query types : ์๋งจํฑ ์ฒญํน์ด ๋๋ถ๋ถ์ ์ํฉ์์ ๊ณ ์ ์ฐฝ์ ์๋ํ๋ค):
์ค์ ๋๊ท๋ชจ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ, ๋จ์ ๊ณ ์ ์ฐฝ ๋ฐฉ์์ด ์๋งจํฑ ์ฒญํน๋ณด๋ค ์ต์ข
๋ต๋ณ ์ ํ๋๊ฐ ๋ ๋๊ฒ ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ํ๋ฆฐ ์ค๋ช
์
๋๋ค. ์๋งจํฑ ์ฒญํน์ ๋ฌธ์ฅ์ด ๋๋ฌด ์งง๊ฒ ์ชผ๊ฐ์ง๊ฑฐ๋ ํ์ดํ๋ผ์ธ์ด ๋ณต์กํด์ง๋ ๋ถ์์ฉ์ด ์์ต๋๋ค
(Chunk boundary precision is the single largest factor in retrieval quality : ์ฒญํฌ ๊ฒฝ๊ณ์ ์ ๋ฐ๋๊ฐ ๊ฒ์ ํ์ง์ ๋จ์ผ ์ต๋ ์์ธ์ด๋ค):
๊ธ์๋ฅผ ์ ํํ ์ด๋์ ์๋ฅด๋๋(๊ฒฝ๊ณ๋ฉด)๋ณด๋ค๋ ์ฒญํฌ์ ์ ์ฒด์ ์ธ ํฌ๊ธฐ(Size)๋ ์๋ฒ ๋ฉ/๋ฆฌ๋ญ์ปค(Reranker) ๋ชจ๋ธ์ ์ฑ๋ฅ์ด ํ์ง์ ํจ์ฌ ๋ ํฐ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก ํ๋ฆฐ ์ค๋ช
์
๋๋ค.
(Larger chunks tend to improve recall because more context is embedded : ์ฒญํฌ๊ฐ ์ปค์ง๋ฉด ์ปจํ
์คํธ๊ฐ ๋ ๋ง์ด ์๋ฒ ๋ฉ๋๋ฏ๋ก ์ฌํ์จ์ด ํฅ์๋๋ ๊ฒฝํฅ์ด ์๋ค):
์ฒญํฌ ํฌ๊ธฐ๊ฐ ๋๋ฌด ์ปค์ง๋ฉด ์ค์ํ ํต์ฌ ์ ๋ณด(Signal)๊ฐ ์ฃผ๋ณ์ ์ธ๋ฐ์๋ ํ
์คํธ์ ํ๋ฌปํ ํฌ์(Dilute)๋๊ธฐ ๋๋ฌธ์ ๊ฒ์ ํ์ง์ด ์คํ๋ ค ๋๋น ์ง๋๋ค. ๋ฌด์กฐ๊ฑด ์ปค์ง๋ค๊ณ ๊ฒ์ ํ์ง์ด ์ข์์ง์ง ์์ผ๋ฏ๋ก ํ๋ฆฐ ์ค๋ช
์
๋๋ค.