๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Basic RAG + Advanced RAG(Hybrid Search & Re-ranking)

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2026. 4. 19.

๊ฐœ์š”

3์ฃผ์ฐจ์—์„œ ๊ตฌ์ถ•ํ•œ RAG Indexing ํŒŒ์ดํ”„๋ผ์ธ์— Generation์„ ์—ฐ๊ฒฐํ•˜์—ฌ end-to-end RAG๋ฅผ ์™„์„ฑํ•˜๊ณ , Naive(Basic) RAG์˜ ๊ฒ€์ƒ‰ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด์„œ๋Š” Advanced RAG ๊ธฐ๋ฒ•์„ ํ•™์Šตํ•˜๊ณ  ์‹ค์Šตํ•œ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์˜ ์ด๋ก  ๋‚ด์šฉ์œผ๋กœ๋Š” Parent-Child ๋ฐฉ์‹, Hybrid Search, Re-ranking, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง / ์ปจํ…์ŠคํŠธ ์••์ถ•์„ ์กฐ์‚ฌํ•˜๊ณ , ์‹ค์Šต์—์„œ๋Š” ๋‹ค๋…„๋„ ๋ฌธ์„œ๋ฅผ ๋‹ค๋ฃจ๋Š” RAG ์‹œ์Šคํ…œ์„ ์ง์ ‘ ๊ตฌ์ถ•ํ•œ ๋’ค, ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•œ๋‹ค.


1. Advanced RAG

์ •์˜ :

Naive RAG(Basic RAG)์˜ ๋‹จ์ˆœํ•œ ๊ฒ€์ƒ‰ -> ์ƒ์„ฑ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ฐœ์„ ํ•ด์„œ, ๊ฒ€์ƒ‰ ์ „ / ์ค‘ / ํ›„ ๋‹จ๊ณ„์— ๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ•์„ ์ถ”๊ฐ€ํ•œ ๊ณ ๋„ํ™”๋œ RAG์ด๋‹ค.

 

๊ตฌ์„ฑ์š”์†Œ : 

Pre-retrieval (๊ฒ€์ƒ‰ ์ „) ์ฟผ๋ฆฌ๋ฅผ ๋” ์ž˜ ๊ฒ€์ƒ‰๋˜๋„๋ก ๊ฐ€๊ณต

  • Query Rewriting (์ฟผ๋ฆฌ ์žฌ์ž‘์„ฑ)
  • Query Expansion (์ฟผ๋ฆฌ ํ™•์žฅ)
  • HyDE (๊ฐ€์ƒ ๋ฌธ์„œ ์ƒ์„ฑ ํ›„ ๊ฒ€์ƒ‰)

Retrieval (๊ฒ€์ƒ‰ ์ค‘) ๊ฒ€์ƒ‰ ์ž์ฒด๋ฅผ ๊ณ ๋„ํ™”

  • Hybrid Search (BM25 + ๋ฒกํ„ฐ)
  • Parent-Child Chunking
  • Reranker (Cross-encoder)

Post-retrieval (๊ฒ€์ƒ‰ ํ›„) ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ LLM์— ๋„˜๊ธฐ๊ธฐ ์ „์— ์ •์ œ

  • Context Compression (๋ถˆํ•„์š”ํ•œ ๋‚ด์šฉ ์••์ถ•)
  • Reranking (์ตœ์ข… ์ˆœ์œ„ ์žฌ์กฐ์ •)
  • Context Selection (๊ด€๋ จ ์ฒญํฌ๋งŒ ์„ ๋ณ„)


2. ํ•„์š” ๊ฐœ๋… ์ •๋ฆฌ

1) Parent Child Chunking

์ผ๋ฐ˜ ์ฒญํ‚น์˜ ๋ฌธ์ œ์  : 

์ผ๋ฐ˜ ์ฒญํ‚น์€ ๋ฌธ์„œ๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ์ž˜๋ผ์„œ ๊ทธ๋Œ€๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  LLM์— ๋„˜๊ธด๋‹ค.

์—ฌ๊ธฐ์„œ ๋‘ ๊ฐ€ ์ง€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๊ฐ€ ์ƒ๊ธด๋‹ค.

  • ์ฒญํฌ๊ฐ€ ์ž‘์œผ๋ฉด -> ๊ฒ€์ƒ‰ ์ •ํ™•๋„๋Š” ๋†’์•„์ง€์ง€๋งŒ, LLM์— ์ „๋‹ฌ๋˜๋Š” ๋ฌธ๋งฅ์ด ๋„ˆ๋ฌด ์ ์Œ
  • ์ฒญํฌ๊ฐ€ ํฌ๋ฉด -> ๋ฌธ๋งฅ์€ ํ’๋ถ€ํ•˜์ง€๋งŒ, ๊ฒ€์ƒ‰ ์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง

Parent-Child Chunking ์ด๋ž€ :

์ด ๋”œ๋ ˆ๋งˆ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฒญํฌ๋ฅผ ๋‘ ๊ฐ€์ง€ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

์—ญํ•  ํฌ๊ธฐ ํ•˜๋Š”์ผ
Child ์ฒญํฌ ์ž‘์Œ ๊ฒ€์ƒ‰(Retrieval)์— ์‚ฌ์šฉ
Parent ์ฒญํฌ ํผ LLM์— ์ „๋‹ฌํ•˜๋Š” ๋ฌธ๋งฅ์œผ๋กœ ์‚ฌ์šฉ

 

 

ํ๋ฆ„ :

  1. ๋ฌธ์„œ๋ฅผ ํฐ ๋‹จ์œ„(Parent)๋กœ ๋‚˜๋ˆ”
  2. Parent๋ฅผ ๋‹ค์‹œ ์ž‘์€ ๋‹จ์œ„(Child)๋กœ ๋‚˜๋ˆ”
  3. Child ์ฒญํฌ๋ฅผ ๋ฒกํ„ฐ DB์— ์ €์žฅํ•ด ๊ฒ€์ƒ‰์— ํ™œ์šฉ
  4. ๊ฒ€์ƒ‰๋œ Child๊ฐ€ ์†ํ•œ Parent ์ฒญํฌ๋ฅผ LLM์— ์ „๋‹ฌ

 

2) Hybrid Search

์ •์˜ : 

๋ฒกํ„ฐ ๊ฒ€์ƒ‰ (Semantic Search)๊ณผ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰(BM25)์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์˜๋ฏธ ์ดํ•ด์™€ ์ •ํ™•ํ•œ ํ‚ค์›Œ๋“œ ๋งค์นญ์„ ๋™์‹œ์— ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒ€์ƒ‰ ๋ฐฉ์‹์ด๋‹ค. 

 

BM25 ์ด๋ž€

์ฟผ๋ฆฌ์˜ ๋‹จ์–ด๊ฐ€ ๋ฌธ์„œ์— ์–ผ๋งˆ๋‚˜ ์ž์ฃผ, ์–ผ๋งˆ๋‚˜ ํฌ๊ท€ํ•˜๊ฒŒ ๋“ฑ์žฅํ•˜๋Š”์ง€๋ฅผ ์ ์ˆ˜๋กœ ๊ณ„์‚ฐํ•ด์„œ ๊ด€๋ จ์„ฑ์„ ์ธก์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

 

BM25 ํ•ต์‹ฌ ๊ตฌ์„ฑ 3๊ฐ€์ง€

  1. TF(Term Frequency) - ๋‹จ์–ด ๋“ฑ์žฅ ๋นˆ๋„ : ์ฟผ๋ฆฌ์˜ ๋‹จ์–ด๊ฐ€ ๋ฌธ์„œ์— ๋งŽ์ด ๋‚˜์˜ฌ์ˆ˜๋ก ์ ์ˆ˜๊ฐ€ ์˜ฌ๋ผ๊ฐ„๋‹ค. ๊ทผ๋ฐ BM25๋Š” ๋‹จ์ˆœ TF์™€ ๋‹ฌ๋ฆฌ ๋นˆ๋„๊ฐ€ ๋†’์•„์งˆ์ˆ˜๋ก ์ ์ˆ˜ ์ฆ๊ฐ€ํญ์ด ์ค„์–ด๋“ ๋‹ค.
  2. IDF(Inverse Document Frequency) - ๋‹จ์–ด ํฌ๊ท€๋„ : ์ „์ฒด ๋ฌธ์„œ์—์„œ ํ”ํ•œ ๋‹จ์–ด("๊ทธ๋ฆฌ๊ณ ", "the")๋Š” ์ ์ˆ˜๋ฅผ ๋‚ฎ์ถ”๊ณ , ํฌ๊ท€ํ•œ ๋‹จ์–ด๋Š” ์ ์ˆ˜๋ฅผ ๋†’์ธ๋‹ค.
  3. ๋ฌธ์„œ ๊ธธ์ด ์ •๊ทœํ™” : ๊ธด ๋ฌธ์„œ๋Š” ๋‹จ์–ด๊ฐ€ ๋งŽ์ด ๋“ฑ์žฅํ•  ํ™•๋ฅ ์ด ์ž์—ฐํžˆ ๋†’์œผ๋‹ˆ๊นŒ, ๋ฌธ์„œ ๊ธธ์ด๋ฅผ ๋ณด์ •ํ•ด์„œ ์งง์€ ๋ฌธ์„œ๊ฐ€ ๋ถˆ๋ฆฌํ•˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ ๋‹ค.

 

๋ฒกํ„ฐ ๊ฒ€์ƒ‰ vs BM25 vs Hybrid ์žฅ๋‹จ์ 

๊ฒ€์ƒ‰ ๋ฐฉ์‹ ๊ฐ•์  ์•ฝ์ 
๋ฒกํ„ฐ ๊ฒ€์ƒ‰ (Semantic) ์˜๋ฏธ•๋งฅ๋ฝ ์ดํ•ด, ํ‘œํ˜„ ๋‹ฌ๋ผ๋„ ๊ฒ€์ƒ‰ ์ •ํ™• ํ‚ค์›Œ๋“œ ๋งค์นญ ์•ฝํ•จ, ์ „๋ฌธ ์šฉ์–ด ์ทจ์•ฝ
BM25 (Keyword) ์ •ํ™•ํ•œ ํ‚ค์›Œ๋“œ•์ „๋ฌธ ์šฉ์–ด์— ๊ฐ•ํ•จ, ๋น ๋ฆ„ ์˜๋ฏธ ์ดํ•ด ๋ถˆ๊ฐ€, ๋™์˜์–ด•์œ ์‚ฌ ํ‘œํ˜„ ๋†“์นจ
Hybrid (๊ฒฐํ•ฉ) ๋‘ ๋ฐฉ์‹ ์žฅ์  ๋ชจ๋‘ ํ™•๋ณด, ๋†’์€ ์žฌํ˜„์œจ + ์ •๋ฐ€๋„ ๊ตฌํ˜„ ๋ณต์žก, ๊ฐ€์ค‘์น˜ ํŠœ๋‹ ํ•„์š”

 

 

๊ฒฐํ•ฉ ๋ฐฉ์‹

๋ฐฉ์‹ ์„ค๋ช… ํŠน์ง•
RRF(Reciprocal Rank Fusion) ๊ฐ ๊ฒ€์ƒ‰์˜ ์ˆœ์œ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ์ˆ˜ ๊ณ„์‚ฐ ํ›„ ๋ณ‘ํ•ฉ ํŠœ๋‹ ๋ถˆํ•„์š”, ์•ˆ์ •์ 
๊ฐ€์ค‘์น˜ ๊ธฐ๋ฐ˜ Linear Combination ๊ฐ ์ ์ˆ˜๋ฅผ ์ •๊ทœํ™” ํ›„ ๊ฐ€์ค‘์น˜๋กœ ๋ณ‘ํ•ฉ ์„ธ๋ฐ€ํ•œ ์ œ์–ด ๊ฐ€๋Šฅ, ํŠœ๋‹ ํ•„์š”

 

RRF ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•

score = Σ weight_i / (rank_i + k)   # k=60 default

 

3) Re-ranking 

์ •์˜ :

1์ฐจ ๊ฒ€์ƒ‰์œผ๋กœ ๋ฝ‘์€ ํ›„๋ณด ๋ฌธ์„œ๋“ค์„ ๋” ์ •๋ฐ€ํ•œ ๋ชจ๋ธ๋กœ ๋‹ค์‹œ ์ˆœ์œ„๋ฅผ ๋งค๊ธฐ๋Š” ๊ณผ์ •. ๋น ๋ฅธ ๊ฒ€์ƒ‰(์žฌํ˜„์œจ)๊ณผ ์ •ํ™•ํ•œ ์ˆœ์œ„(์ •๋ฐ€๋„)๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋‘ ๋งˆ๋ฆฌ ํ† ๋ผ๋ฅผ ๋ชจ๋‘ ์žก๋Š” ์ „๋žต

 

Bi-encoder vs Cross-encoder ํ•ต์‹ฌ ๋น„๊ต

๊ตฌ๋ถ„ Bi-encoder Cross-encoder
์ •์˜ ์งˆ๋ฌธ•๋ฌธ์„œ๋ฅผ ๊ฐ๊ฐ ๋…๋ฆฝ ์ธ์ฝ”๋”ฉ ํ›„ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ๋น„๊ต ์งˆ๋ฌธ•๋ฌธ์„œ๋ฅผ ํ•˜๋‚˜์˜ ์ž…๋ ฅ์œผ๋กœ ํ•ฉ์ณ ํŠธ๋žœ์Šคํฌ๋จธ์— ๋™์‹œ ํ†ต๊ณผ
์ž…๋ ฅ ๋ฐฉ์‹ Query -> ๋ฒกํ„ฐ / Document -> ๋ฒกํ„ฐ -> ์ฝ”์‚ฌ์ธ ๋น„๊ต ์ฟผ๋ฆฌ์™€ Document -> ์œ ์‚ฌ๋„ ์ ์ˆ˜ ์ถœ๋ ฅ
์†๋„ ๋น ๋ฆ„(๋ฌธ์„œ ์ž„๋ฒ ๋”ฉ ์‚ฌ์ „ ๊ณ„์‚ฐ ๊ฐ€๋Šฅ) ๋А๋ฆผ(์ฟผ๋ฆฌ๋งˆ๋‹ค ์ „์ฒด ์ถ”๋ก  ํ•„์š”)
์ •ํ™•๋„ ๋ณดํ†ต(์˜๋ฏธ๋ฅผ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ๋กœ ์••์ถ• -> ์ •๋ณด ์†์‹ค) ๋†’์Œ(์งˆ๋ฌธ•๋ฌธ์„œ ํ† ํฐ์ด ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉ)
ํ™•์žฅ์„ฑ ์ˆ˜๋ฐฑ๋งŒ ๋ฌธ์„œ์—๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅ ์†Œ์ˆ˜ ํ›„๋ณด์—๋งŒ ์ ์šฉ ๊ฐ€๋Šฅ
์‚ฌ์šฉ ์œ„์น˜ 1๋‹จ๊ณ„ : ๋Œ€๊ทœ๋ชจ ํ›„๋ณด ๊ฒ€์ƒ‰ 2๋‹จ๊ณ„ : ํ›„๋ณด ์ •๋ฐ€ ์žฌ์ˆœ์œ„

 

 

4) ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง๊ณผ ์ปจํ…์ŠคํŠธ ์••์ถ•

๊ธฐ๋ฒ• - 1 : ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง

์ฒญํฌ์— ๋ถ€์ฐฉ๋œ ๊ตฌ์กฐ์  ์†์„ฑ(์ถœ์ฒ˜, ๋‚ ์งœ, ์นดํ…Œ๊ณ ๋ฆฌ ๋“ฑ)์„ ๊ธฐ์ค€์œผ๋กœ ๋ฒกํ„ฐ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰ ์ด์ „์— ๊ฒ€์ƒ‰ ๋ฒ”์œ„๋ฅผ ์ขํžˆ๋Š” ๊ธฐ๋ฒ•

 

ํ•„์š”ํ•œ ์ด์œ  :

ํ‘œ์ค€ RAG ํŒŒ์ดํ”„๋ผ์ธ์€ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ํ•˜๋‚˜์˜ ๊ณต์œ  ๋ฒกํ„ฐ ๊ณต๊ฐ„์— ์ž„๋ฒ ๋”ฉํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์งˆ๋ฌธ์„ ํ–ˆ์„ ๋•Œ ๊ฒ€์ƒ‰๊ธฐ๋Š” ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋กœ ๋ชจ๋“  ์ฒญํฌ๋ฅผ ํ‰๊ฐ€ํ•ด ์ƒ์œ„ k๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋งŒ์•ฝ ์ธ๋ฑ์Šค์— 3๋…„์น˜ ์ •์ฑ… ๋ฌธ์„œ๊ฐ€ ์žˆ๋‹ค๋ฉด, ์œ ์‚ฌ๋„ 0.91 ๊ตฌ๋ฒ„์ „์ด ์œ ์‚ฌ๋„ 0.87์ธ ์ตœ์‹  ๋ฌธ์„œ๋ณด๋‹ค ๋จผ์ € ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

def filter_by_year(docs, source_year):
    filtered = [d for d in docs if d.metadata.get("source_year", "") == source_year]
    return filtered if filtered else docs

 

 

๊ธฐ๋ฒ• - 2 : ์ปจํ…์ŠคํŠธ ์••์ถ•

๊ฒ€์ƒ‰๋œ ์ฒญํฌ ์ „์ฒด๋ฅผ ๊ทธ๋Œ€๋กœ LLM์— ๋„˜๊ธฐ์ง€ ์•Š๊ณ , ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์žฅ•๊ตฌ์ ˆ๋งŒ ์ถ”์ถœ•์••์ถ•ํ•˜์—ฌ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋ฒ•

 

ํ•„์š”ํ•œ ์ด์œ  :

๊ฒ€์ƒ‰์˜ ๋ฌธ์ œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ฑ์‹ฑํ•  ๋•Œ ์‹œ์Šคํ…œ์ด ์–ด๋–ค ์ฟผ๋ฆฌ๋ฅผ ๋ฐ›์„์ง€ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ฟผ๋ฆฌ์™€ ๊ฐ€์žฅ ๊ด€๋ จ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ๊ด€๋ จ ์—†๋Š” ํ…์ŠคํŠธ๊ฐ€ ๋Œ€๋Ÿ‰์œผ๋กœ ํฌํ•จ๋œ ๋ฌธ์„œ ์†์— ๋ฌปํ˜€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด ์ „์ฒด ๋ฌธ์„œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•˜๋ฉด LLM ํ˜ธ์ถœ ๋น„์šฉ์ด ๋†’์•„์ง€๊ณ  ์‘๋‹ต ํ’ˆ์งˆ์ด ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

[์›๋ณธ ์ฒญํฌ: 500 tokens]  →  [์••์ถ• ํ›„: 120 tokens, ํ•ต์‹ฌ ๋‚ด์šฉ๋งŒ]

 

3 ์‹ค์Šต ํ™˜๊ฒฝ ๋ฐ ์ „๋žต

1) ์‹คํ–‰ ํ™˜๊ฒฝ ๋ฐ ์‚ฌ์šฉ ๋ชจ๋ธ

 
ํ•ญ๋ชฉ ๋‚ด์šฉ
์–ธ์–ด Python 3.14
ํ”„๋ ˆ์ž„์›Œํฌ LangChain
LLM gpt-4o-mini
์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ text-embedding-3-small
Re-ranker BAAI/bge-reranker-v2-m3 (๋กœ์ปฌ, sentence-transformers)
๋ฒกํ„ฐ ์ €์žฅ์†Œ FAISS
Hybrid Search FAISS (Dense Vector) + BM25Retriever (Sparse, langchain-community)

 

2) ์ธ๋ฑ์‹ฑ ์ „๋žต

PDF ๋ฌธ์„œ๋ฅผ ๋งˆํฌ๋‹ค์šด ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝ

PDF ํŒŒ์‹ฑ ์‹œ ํ‘œ ๊ตฌ์กฐ๊ฐ€ ์†์‹ค๋˜๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด 25,26๋…„ ์ž๋ฃŒ๋ฅผ ๊ฐ๊ฐ ๋งˆํฌ๋‹ค์šด์œผ๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค.

 

Parent-Child ์ฒญํ‚น ๊ตฌ์กฐ

๊ฐ child chunk์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— source_year, parent_id, parent_content๋ฅผ ์ €์žฅํ•˜์—ฌ ๊ฒ€์ƒ‰ ์‹œ child๋กœ ์ฐพ๊ณ , LLM์—๋Š” parent_content๋ฅผ ์ „๋‹ฌํ•˜๋Š” Parent-Child ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ–ˆ๋‹ค.

metadata = {
    "source_year": "2025",       # ๋…„๋„ ํ•„ํ„ฐ๋ง ๊ธฐ์ค€
    "parent_id": "2025_p0",      # ์ค‘๋ณต parent ์ œ๊ฑฐ์šฉ
    "parent_content": "...",     # LLM์— ์ „๋‹ฌํ•  ๋„“์€ ์ปจํ…์ŠคํŠธ
}
 

 

์ฒญํฌ ํฌ๊ธฐ ์‹คํ—˜

์ดˆ๊ธฐ ์„ค์ •(c300_p1500)์—์„œ ์ •ํ™•๋„๊ฐ€ ๋‚ฎ์•„ ์ฒญํฌ ํฌ๊ธฐ๋ฅผ ํ™•๋Œ€(c1000_p3000)ํ•˜์—ฌ ์žฌ์‹คํ—˜ํ–ˆ๋‹ค.

๊ตฌ๋ถ„ child chunk parent chunk ๋น„๊ณ 
์ดˆ๊ธฐ (c300_p1500) 300์ž, overlap 50์ž 1500์ž, overlap 100์ž HTML ํ‘œ ํ–‰ ๋ถ„์ ˆ ๋ฌธ์ œ ๋ฐœ์ƒ
๊ฐœ์„  (c1000_p3000) 1000์ž, overlap 80์ž 3000์ž, overlap 150์ž HTML ํ‘œ ํ–‰ ๋‹จ์œ„ ์˜๋ฏธ ๋ณด์กด

 

4) Golden Dataset ์„ค๊ณ„

๊ตฌ๋ถ„ ๋ฌธํ•ญ ์ˆ˜ source_year
2025๋…„ ์ „์šฉ (easy/medium/hard) 8๋ฌธํ•ญ 2025
2026๋…„ ์ „์šฉ (easy/medium/hard) 8๋ฌธํ•ญ 2026
cross-year (2025 ๊ธฐ์ค€) 2๋ฌธํ•ญ 2025+2026
cross-year (2026 ๊ธฐ์ค€) 2๋ฌธํ•ญ 2025+2026
ํ•ฉ๊ณ„ 20๋ฌธํ•ญ  

 

cross-year ์„ค๊ณ„ ์˜๋„: CT ๊ฒ€์‚ฌ ๋ณธ์ธ๋ถ€๋‹ด๊ธˆ(2025๋…„ 500์› → 2026๋…„ 5%)๊ณผ ํ•ญ์ •์‹ ๋ณ‘ ์žฅ๊ธฐ์ง€์†ํ˜• ์ฃผ์‚ฌ์ œ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ (2025๋…„ 5% → 2026๋…„ 2%)์ฒ˜๋Ÿผ ์—ฐ๋„ ๊ฐ„ ์ˆ˜์น˜๊ฐ€ ๋ฐ”๋€ ํ•ญ๋ชฉ์„ ์Œ์œผ๋กœ ๊ตฌ์„ฑํ–ˆ๋‹ค. ๋™์ผ ์งˆ๋ฌธ ๊ตฌ์กฐ์—์„œ ๋…„๋„๋งŒ ๋‹ฌ๋ฆฌํ•˜์—ฌ RAG ์‹œ์Šคํ…œ์˜ ๋…„๋„ ๊ตฌ๋ถ„ ๋Šฅ๋ ฅ์„ ์ง์ ‘ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.


 

4. ์‹ค์Šต ๊ณผ์ œ ์˜ˆ์ธก

1. ๋…„๋„ ํ˜ผ๋™์ด ๊ฐ€์žฅ ๋งŽ์ด ๋ฐœ์ƒํ•  ์งˆ๋ฌธ ์œ ํ˜•

์˜ˆ์ธก 2025๋…„๊ณผ 2026๋…„ ๋ฌธ์„œ ๊ตฌ์กฐ๊ฐ€ ์œ ์‚ฌํ•œ ํ•ญ๋ชฉ, ํŠนํžˆ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ  ํ‘œ ํ˜•์‹์ด ๋™์ผํ•œ ํ•ญ๋ชฉ์—์„œ ๋…„๋„ ํ˜ผ๋™์ด ๋งŽ์ด ๋ฐœ์ƒํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ธกํ–ˆ๋‹ค. ์ถ”๋‚˜์š”๋ฒ•, ์ •์‹ ์งˆํ™˜ ์™ธ๋ž˜์ฒ˜๋Ÿผ ๋‘ ๋ฌธ์„œ์— ๋™์ผํ•œ ํ‚ค์›Œ๋“œ๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ํ•ญ๋ชฉ์ด ์ทจ์•ฝํ•  ๊ฒƒ์œผ๋กœ ๋ดค๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ ์˜ˆ์ธก์ด ๋งž์•˜๋‹ค. q15(๋ณต์žก์ถ”๋‚˜ 2026)์—์„œ 2025 ์ฒญํฌ๋งŒ ๋ฐ˜ํ™˜๋˜๋Š” ๋…„๋„ ํ˜ผ์„ ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. BM25๊ฐ€ ํ‚ค์›Œ๋“œ ๋งค์นญ์œผ๋กœ ๋‘ ์—ฐ๋„์˜ ์œ ์‚ฌ ๋ฌธ์„œ๋ฅผ ๋™์‹œ์— ๋Œ์–ด์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๊ณ , Hybrid Only ๋ฐฉ์‹์—์„œ ๋…„๋„ ํ˜ผ์„ ์ด ๊ฐ€์žฅ ๋นˆ๋ฒˆํ–ˆ๋‹ค.

2. Hybrid Search๊ฐ€ ๊ฐ€์žฅ ํšจ๊ณผ๋ฅผ ๋ณผ ์งˆ๋ฌธ ์œ ํ˜•

์˜ˆ์ธก "๋ณต์žก์ถ”๋‚˜", "์„ ํƒ์˜๋ฃŒ๊ธ‰์—ฌ๊ธฐ๊ด€", "์žฅ๊ธฐ์ง€์†ํ˜• ์ฃผ์‚ฌ์ œ"์ฒ˜๋Ÿผ ๋„๋ฉ”์ธ ๊ณ ์œ  ์šฉ์–ด๊ฐ€ ํฌํ•จ๋œ ์งˆ๋ฌธ์—์„œ BM25์˜ ํ‚ค์›Œ๋“œ ๋งค์นญ์ด ๋ฒกํ„ฐ ๊ฒ€์ƒ‰์„ ๋ณด์™„ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ธกํ–ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ ๋ถ€๋ถ„์ ์œผ๋กœ ๋งž์•˜๋‹ค. Hybrid + Re-ranking (c1000_p3000, no filter)๊ฐ€ 70%๋กœ ๊ฐ€์žฅ ๋†’์€ ์ •๋‹ต๋ฅ ์„ ๋ณด์˜€์ง€๋งŒ, Hybrid Only ๋‹จ๋…์€ 30%๋กœ Basic RAG(40%)๋ณด๋‹ค ๋‚ฎ์•˜๋‹ค. Re-ranking ๋ฐ ์ฒญํฌ ํฌ๊ธฐ์™€์˜ ์กฐํ•ฉ์—์„œ ํšจ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค.

3. Re-ranking์ด ๊ฒฐ๊ณผ๋ฅผ ๊ฐœ์„  ๋˜๋Š” ์•…ํ™”์‹œํ‚ค๋Š” ๊ฒฝ์šฐ

์˜ˆ์ธก Re-ranking์ด ์ „๋ฐ˜์ ์œผ๋กœ ์ •๋‹ต๋ฅ ์„ ๋†’์ผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ธกํ–ˆ๋‹ค. ๋‹ค๋งŒ ํ›„๋ณด ํ’€์ด ์ ๊ฑฐ๋‚˜ ๊ด€๋ จ ์ฒญํฌ ์ž์ฒด๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์˜คํžˆ๋ ค ๋…ธ์ด์ฆˆ ์ฒญํฌ๋ฅผ ์ƒ์œ„๋กœ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ดค๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ ์˜ˆ์ธก์ด ๋งž์•˜๋‹ค. Hybrid Only(30%) → Hybrid + Re-ranking no_filter(45%)๋กœ 15%p ์ƒ์Šนํ•ด Re-ranking ํšจ๊ณผ๋Š” ์œ ํšจํ–ˆ๋‹ค. ๋ฐ˜๋ฉด ๋…„๋„ ํ•„ํ„ฐ๋ง ํ›„ ํ›„๋ณด ํ’€์ด ์ค„์–ด๋“  ์ƒํƒœ์—์„œ Re-ranking์„ ์ ์šฉํ•œ year_filter ๋ฒ„์ „์€ 30%๋กœ ์•…ํ™”๋๋‹ค(q03, q14, q20).

4. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง์˜ ๋…„๋„ ํ˜ผ๋™ ํ•ด๊ฒฐ ํšจ๊ณผ

์˜ˆ์ธก ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง์ด ๋…„๋„ ํ˜ผ๋™์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ธกํ–ˆ๋‹ค. ๋‹ค๋งŒ ํ•„ํ„ฐ๋ง์œผ๋กœ ํ›„๋ณด ํ’€์ด ์ข์•„์ ธ ๊ด€๋ จ ์ฒญํฌ ์ž์ฒด๊ฐ€ ํƒˆ๋ฝํ•˜๋Š” ๋ถ€์ž‘์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ดค๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ ์˜ˆ์ธก์ด ์ •ํ™•ํ–ˆ๋‹ค. year_filter ๋ฒ„์ „์€ ๋…„๋„ ํ˜ผ์„  0%๋ฅผ ๋‹ฌ์„ฑํ–ˆ์ง€๋งŒ, ์ •๋‹ต๋ฅ ์€ 30%๋กœ ๊ฐ€์žฅ ๋‚ฎ์•˜๋‹ค. ํ•„ํ„ฐ๊ฐ€ ํ›„๋ณด ํ’€์„ ์ขํ˜€ ๊ด€๋ จ ์ฒญํฌ๊ฐ€ ํƒˆ๋ฝํ•˜๋Š” ์—ญํšจ๊ณผ๊ฐ€ ์‹ค์ œ๋กœ ๋ฐœ์ƒํ–ˆ๋‹ค.


5. ์‹ค์Šต ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๋น„๊ต

Step 1: Basic RAG

ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ

์งˆ๋ฌธ → FAISS ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ (Top-3) → parent_content ์ปจํ…์ŠคํŠธ ๊ตฌ์„ฑ → LLM → ๋‹ต๋ณ€
 
  • Retriever: vectorstore.similarity_search(question, k=3)
  • LLM: gpt-4o-mini, temperature=0
  • ํ”„๋กฌํ”„ํŠธ: ์ปจํ…์ŠคํŠธ์— [์ถœ์ฒ˜ ๋…„๋„: YYYY]๋ฅผ ๋ช…์‹œํ•˜์—ฌ LLM์ด ๋…„๋„๋ฅผ ์ธ์‹ํ•˜๋„๋ก ๊ตฌ์„ฑ
์•„๋ž˜ ์ปจํ…์ŠคํŠธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์งˆ๋ฌธ์— ๋‹ตํ•˜์„ธ์š”.
๊ฐ ์ปจํ…์ŠคํŠธ์—๋Š” ์ถœ์ฒ˜ ๋…„๋„๊ฐ€ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ์ด ํŠน์ • ๋…„๋„๋ฅผ ๋ฌป๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ๋…„๋„์˜ ์ •๋ณด๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.
์ปจํ…์ŠคํŠธ์— ์—†๋Š” ๋‚ด์šฉ์€ "์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋‹ตํ•˜์„ธ์š”.
๋‹ต๋ณ€์€ ํ•ต์‹ฌ ๊ฐ’๋งŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋‹ตํ•˜์„ธ์š”.
 

๊ฒฐ๊ณผ

ํ•ญ๋ชฉ  ๊ฐ’
์ „์ฒด ์ •๋‹ต๋ฅ  8 / 20 (40%)

๋ฌธํ•ญ๋ณ„ ๊ฒฐ๊ณผ

์งˆ๋ฌธID ๋‚œ์ด๋„ source_year ๊ฒ€์ƒ‰๋œ ์ฒญํฌ ํฌํ•จ ์—ฌ๋ถ€ ๋…„๋„ ๋ถ„์„ LLM ์ƒ์„ฑ ๋‹ต๋ณ€ ์ •๋‹ต ์—ฌ๋ถ€ ์˜ค๋‹ต ์›์ธ
q01 easy 2025 X Top1 ์—ญ์ „ (Top1=2026, Top3์— 2025 ํฌํ•จ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต 1์ข… ์˜์› ์™ธ๋ž˜ ๋ณธ์ธ๋ถ€๋‹ด๊ธˆ ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q02 easy 2025 O ํ˜ผ์„  ์—†์Œ (Top1~3 ๋ชจ๋‘ 2025) 5% ์ •๋‹ต  
q03 easy 2025 O ํ˜ผ์„  ์—†์Œ (Top1=2025, Top2 ํ˜ผ์žฌ) 0% (๋ฌด๋ฃŒ) ์ •๋‹ต  
q04 medium 2025 O ํ˜ผ์„  ์—†์Œ (Top1=2025, Top2 ํ˜ผ์žฌ) ์ž…์› ๋ณธ์ธ๋ถ€๋‹ด๋ฅ ์€ 3%์ด๋ฉฐ, ์‹๋Œ€ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ ์€ 20%์ž…๋‹ˆ๋‹ค ์ •๋‹ต  
q05 medium 2025 X Top1 ์—ญ์ „ (Top1=2026, Top2·3์— 2025 ํฌํ•จ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต ๋ณต์žก์ถ”๋‚˜ ๊ด€๋ จ ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q06 medium 2025 X Top1 ์—ญ์ „ (Top1·2=2026, Top3=2025) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต ์กฐํ˜„๋ณ‘ ์™ธ๋ž˜ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ  ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q07 hard 2025 X Top1 ์—ญ์ „ (Top1=2026, Top2=2025) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต ์น˜๋งค ์ž…์› 5% ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰, ์‹๋Œ€ ์ฒญํฌ๋งŒ ๊ฒ€์ƒ‰
q08 hard 2025 X ํ˜ผ์„  ์—†์Œ (Top1=2025, Top2 ํ˜ผ์žฌ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต ์ƒํ•œ์ผ์ˆ˜ ์ดˆ๊ณผ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ  ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q09 cross-year 2025+2026 X cross-year, 2026 ํŽธํ–ฅ (Top1~3 ๋ชจ๋‘ 2026) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต CT ๊ฒ€์‚ฌ ๋ณธ์ธ๋ถ€๋‹ด๊ธˆ ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q10 cross-year 2025+2026 O cross-year ํ˜ผ์žฌ (ํ—ˆ์šฉ ๋ฒ”์œ„) 5% ์ •๋‹ต  
q11 easy 2026 O Top1 ์—ญ์ „ (Top1=2025, Top2=2026) 1,500~2,000์› ์ •๋‹ต  
q12 easy 2026 O Top1 ์—ญ์ „ (Top1=2025, Top2·3=2026) 20% ์ •๋‹ต  
q13 easy 2026 X ํ˜ผ์„  ์—†์Œ (Top1·2=2026, Top3 ํ˜ผ์žฌ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต ์ œ์™•์ ˆ๊ฐœ ๋ถ„๋งŒ ์ž…์› ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q14 medium 2026 O Top1 ์—ญ์ „ (Top1·2=2025, Top3=2026) 6์„ธ ์ด์ƒ 15์„ธ ์ดํ•˜ ์•„๋™์ธ ๊ฒฝ์šฐ ์ž…์› ๋ณธ์ธ๋ถ€๋‹ด๋ฅ ์€ 3%์ž…๋‹ˆ๋‹ค ์ •๋‹ต  
q15 medium 2026 X ์ „์ฒด ํŽธํ–ฅ (Top1~3 ๋ชจ๋‘ 2025, ์—ฐ๋„ ํ˜ผ์„ ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต 2026๋…„ ๋ณต์žก์ถ”๋‚˜ ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰, 2025๋…„ ์ฒญํฌ๋งŒ ๋ฐ˜ํ™˜
q16 medium 2026 O ํ˜ผ์„  ์—†์Œ (Top1=2026, Top2 ํ˜ผ์žฌ) ์ด ์ง„๋ฃŒ๋น„์˜ 15% ์˜ค๋‹ต LLM์ด 15%๋กœ ์˜ค๋‹ต (์ •๋‹ต 5%)
q17 hard 2026 X ํ˜ผ์„  ์—†์Œ (Top1=2026, Top2 ํ˜ผ์žฌ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต MRI ์™ธ๋ž˜ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ  ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q18 hard 2026 X Top1 ์—ญ์ „ (Top1=2025, Top2=2026) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต ์ƒํ•œ์ผ์ˆ˜ ์ดˆ๊ณผ ์ž…์› ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q19 cross-year 2025+2026 X cross-year ํ˜ผ์žฌ (ํ—ˆ์šฉ ๋ฒ”์œ„) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต CT ๋ณธ์ธ๋ถ€๋‹ด๋ฅ  ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q20 cross-year 2025+2026 O cross-year ํ˜ผ์žฌ (ํ—ˆ์šฉ ๋ฒ”์œ„) 2% ์ •๋‹ต  
ํ•ฉ๊ณ„           8/20 (40%)  

๋…„๋„ ํ˜ผ๋™ ๋ถ„์„

์˜ฌ๋ฐ”๋ฅธ ์ฃผ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋…„๋„์˜ ์ฒญํฌ๋ฅผ ๊ฐ€์ ธ์˜จ ๊ฒฝ์šฐ๋ฅผ ๋ณ„๋„๋กœ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ ๊ฐ’
์˜ฌ๋ฐ”๋ฅธ ๋…„๋„ ๊ฒ€์ƒ‰ ์„ฑ๊ณต๋ฅ  7 / 16 (44%) — ๋‹จ์ผ ๋…„๋„ 16๋ฌธํ•ญ ๊ธฐ์ค€, Top1์ด ์ •๋‹ต ๋…„๋„์ธ ๊ฒฝ์šฐ
๋…„๋„ ํ˜ผ๋™์œผ๋กœ ์ธํ•œ ์˜ค๋‹ต ์ˆ˜ 6๊ฑด (q01·q05·q06·q07·q15·q18)
๋…„๋„ ํ˜ผ๋™ ์žˆ์œผ๋‚˜ ์ •๋‹ต 3๊ฑด (q11·q12·q14 — 2025/2026 ๋‚ด์šฉ ๋™์ผํ•˜์—ฌ ์ •๋‹ต ๋„์ถœ)
์ฃผ์š” ๋…„๋„ ํ˜ผ๋™ ํŒจํ„ด 2025/2026 ๋™์ผ ์ •์ฑ… ํ•ญ๋ชฉ์—์„œ ์ž„๋ฒ ๋”ฉ ํฌํ™” ๋ฐœ์ƒ — ๋‘ ์ฒญํฌ์˜ ๋ฒกํ„ฐ๊ฐ€ ๊ฑฐ์˜ ๋™์ผํ•ด์ ธ ์—ฐ๋„ ๊ตฌ๋ถ„ ๋ถˆ๊ฐ€

2์ฃผ์ฐจ ๋Œ€๋น„ ๋น„๊ต

๋ฐฉ์‹ ์ •๋‹ต๋ฅ  ๋น„๊ณ 
2์ฃผ์ฐจ Zero-shot (์ „์ฒด ๋ฐ์ดํ„ฐ in system prompt) 83%  
2์ฃผ์ฐจ ์ตœ๊ณ  ์„ฑ๋Šฅ ๊ธฐ๋ฒ• 92% Few-shot
4์ฃผ์ฐจ Basic RAG 40%  

 

Step 2: Advanced RAG (Hybrid Search + Re-ranking, ๋…„๋„ ํ•„ํ„ฐ๋ง ์—†์Œ)

ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ

์งˆ๋ฌธ → FAISS (Top-5) + BM25 (Top-5) → ํ•ฉ์ณ์„œ ์ตœ๋Œ€ 10๊ฐœ
     → Re-ranking (์ƒ์œ„ 3๊ฐœ) → parent_content ์ปจํ…์ŠคํŠธ ๊ตฌ์„ฑ → LLM → ๋‹ต๋ณ€
 

์„ค์ •๊ฐ’

ํ•ญ๋ชฉ ์„ค์ •๊ฐ’
BM25 Retriever k 5
Vector Retriever k 5
Ensemble ๋ฐฉ์‹ RRF (Reciprocal Rank Fusion)
RRF ๊ฐ€์ค‘์น˜ (vector : BM25) 0.5 : 0.5
Re-ranker ๋ชจ๋ธ BAAI/bge-reranker-v2-m3
Re-ranking ํ›„ ์ตœ์ข… Top-K 3
๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ์—†์Œ

 

์ฃผ์š” ์„ค๊ณ„ ๊ฒฐ์ •:

  • Re-ranker ์ž…๋ ฅ์„ child chunk(300์ž) ๋Œ€์‹  parent_content(1500์ž) ๊ธฐ์ค€์œผ๋กœ ์Šค์ฝ”์–ด๋ง → ์งง์€ chunk๋กœ ์ธํ•œ ์ปจํ…์ŠคํŠธ ์†์‹ค ๋ฐฉ์ง€
  • ๋…„๋„ ํ•„ํ„ฐ๋ง ๋ฏธ์ ์šฉ → Re-ranking์ด ์—ฐ๋„ ํ˜ผ์„ ์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ณด์ •ํ•˜๋Š”์ง€ ๊ฒ€์ฆ
  • BM25๋Š” ๋งค ์‹คํ–‰ ์‹œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์žฌ๊ตฌ์„ฑ (FAISS๋Š” ์ง€์† ํ™œ์šฉ)

๊ฒฐ๊ณผ

ํ•ญ๋ชฉ ๊ฐ’
์ „์ฒด ์ •๋‹ต๋ฅ  9 / 20 (45%)

๋ฌธํ•ญ๋ณ„ ๊ฒฐ๊ณผ

์งˆ๋ฌธID ๋‚œ์ด๋„ source_year ๊ฒ€์ƒ‰ ๋ฐฉ์‹ ์ƒ‰ ๊ฒฐ๊ณผ ํฌํ•จ ์—ฌ๋ถ€ ๋…„๋„ ๋ถ„์„ LLM ์ƒ์„ฑ ๋‹ต๋ณ€ ์ •๋‹ต ์—ฌ๋ถ€
q01 easy 2025 Hybrid X Top1 ์—ญ์ „ (Top1·2=2026, Top3=2025) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q02 easy 2025 Hybrid O ํ˜ผ์„  ์—†์Œ (Top1~3 ๋ชจ๋‘ 2025) 5% ์ •๋‹ต
q03 easy 2025 Hybrid X ์ „์ฒด ํŽธํ–ฅ (Top1~3 ๋ชจ๋‘ 2026) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q04 medium 2025 Hybrid O ํ˜ผ์„  ์—†์Œ (Top1·2=2025, Top3=2026 ํ˜ผ์žฌ) ์ž…์› ๋ณธ์ธ๋ถ€๋‹ด๋ฅ ์€ 3%์ด๋ฉฐ, ์‹๋Œ€ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ ์€ 20%๋ฅผ ์ ์šฉ๋ฐ›์Šต๋‹ˆ๋‹ค ์ •๋‹ต
q05 medium 2025 Hybrid X Top1 ์—ญ์ „ (Top1·2=2026, Top3=2025) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q06 medium 2025 Hybrid O Top1 ์—ญ์ „ (Top1=2026, Top2=2025) 15% ์˜ค๋‹ต
q07 hard 2025 Hybrid X Top1 ์—ญ์ „ (Top1·2=2026, Top3=2025) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q08 hard 2025 Hybrid X Top1 ์—ญ์ „ (Top1=2026, Top2=2025) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q09 cross-year 2025+2026 Hybrid X cross-year, 2026 ํŽธํ–ฅ (Top1~3 ๋ชจ๋‘ 2026) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q10 cross-year 2025+2026 Hybrid O cross-year ํ˜ผ์žฌ (Top1·2=2026, Top3=2025) 5% ์ •๋‹ต
q11 easy 2026 Hybrid O ํ˜ผ์„  ์—†์Œ (Top1=2026, Top2=2025 ํ˜ผ์žฌ) 1,500~2,000์›์ž…๋‹ˆ๋‹ค ์ •๋‹ต
q12 easy 2026 Hybrid O ํ˜ผ์„  ์—†์Œ (Top1=2026, Top2=2025 ํ˜ผ์žฌ) 20%์ž…๋‹ˆ๋‹ค ์ •๋‹ต
q13 easy 2026 Hybrid X ํ˜ผ์„  ์—†์Œ (Top1·2=2026, Top3=2025 ํ˜ผ์žฌ) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q14 medium 2026 Hybrid O Top1 ์—ญ์ „ (Top1·2=2025, Top3=2026) ์ž…์› ๋ณธ์ธ๋ถ€๋‹ด๋ฅ ์€ 3%์ด๋ฉฐ, ์‹๋Œ€ ๋ณธ์ธ๋ถ€๋‹ด๋ฅ ์€ 20%๋ฅผ ์ ์šฉ๋ฐ›์Šต๋‹ˆ๋‹ค ์ •๋‹ต
q15 medium 2026 Hybrid X Top1 ์—ญ์ „ (Top1=2025, Top2·3=2026) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
q16 medium 2026 Hybrid O ํ˜ผ์„  ์—†์Œ (Top1=2026, Top2·3=2025 ํ˜ผ์žฌ) 15% ์˜ค๋‹ต
q17 hard 2026 Hybrid O ์ „์ฒด ํŽธํ–ฅ (Top1~3 ๋ชจ๋‘ 2025, ๋‚ด์šฉ ๋™์ผ๋กœ ์ •๋‹ต) ์ด ์ง„๋ฃŒ๋น„์˜ 15%์ž…๋‹ˆ๋‹ค ์ •๋‹ต
q18 hard 2026 Hybrid O ํ˜ผ์„  ์—†์Œ (Top1·2=2026, Top3=2025 ํ˜ผ์žฌ) 20% ์ •๋‹ต
q19 cross-year 2025+2026 Hybrid O cross-year ํ˜ผ์žฌ (Top1·2=2026, Top3=2025) 5% ์ •๋‹ต
q20 cross-year 2025+2026 Hybrid X cross-year, 2026 ํŽธํ–ฅ (Top1~3 ๋ชจ๋‘ 2026) ์ •๋ณด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค ์˜ค๋‹ต
ํ•ฉ๊ณ„             9/20 (45%)

 

Step 3: Basic RAG vs Advanced RAG ๋น„๊ต ๋ถ„์„

๋‘ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๊ณ  ์–ด๋–ค ์ฐจ์ด๊ฐ€ ๋‚˜๋Š”์ง€ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

 

3-1. ์ •๋‹ต๋ฅ  ๋น„๊ต ํ…Œ์ด๋ธ”

๋ฐฉ์‹ ์ „์ฒด ์ •๋‹ต๋ฅ  easy(6๋ฌธํ•ญ) medium(6๋ฌธํ•ญ) hard(4๋ฌธํ•ญ) cross-year(4๋ฌธํ•ญ) ๋…„๋„ ํ˜ผ๋™ ์˜ค๋‹ต ์ˆ˜
Basic RAG (๋ฒกํ„ฐ ๊ฒ€์ƒ‰๋งŒ) 8/20 (40%) 4/6 2/6 0/4 2/4 6๊ฑด
Advanced RAG (Hybrid + Re-ranking, no filter) 9/20 (45%) 3/6 2/6 2/4 2/4 5๊ฑด

3-2. ๋ฌธํ•ญ๋ณ„ ๋ณ€ํ™” ๋ถ„์„

์งˆ๋ฌธ ID Basic RAG Advanced RAG (no filter) ๋ณ€ํ™” ๋ณ€ํ™” ์›์ธ ๋ถ„์„
q01 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q02 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q03 ์ •๋‹ต ์˜ค๋‹ต ์•…ํ™” Re-ranking ํ›„ ๋ถ„๋งŒ ๊ด€๋ จ ์ฒญํฌ๊ฐ€ ํƒˆ๋ฝ, ์‹๋Œ€·์ž„ํ”Œ๋ž€ํŠธ ์ฒญํฌ๋กœ ๊ต์ฒด
q04 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q05 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q06 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ LLM ์น˜๋งค/์กฐํ˜„๋ณ‘ ํ•ญ๋ชฉ ํ˜ผ๋™ ๊ณตํ†ต
q07 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ ์น˜๋งค ์ž…์› 5% ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰ ๊ณตํ†ต
q08 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q09 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q10 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q11 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q12 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q13 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q14 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€ ์–‘ ์—ฐ๋„ ๋‚ด์šฉ ๋™์ผ, Top1·2=2025 ์—ญ์ „๋˜์–ด๋„ ์ •๋‹ต ๋„์ถœ
q15 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q16 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ LLM์ด ๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ 15%๋กœ ์˜ค๋‹ต
q17 ์˜ค๋‹ต ์ •๋‹ต ๊ฐœ์„  2025/2026 MRI ๋ณธ์ธ๋ถ€๋‹ด๋ฅ  ๋‚ด์šฉ ๋™์ผ, ์—ฐ๋„ ํ˜ผ์„ ์—๋„ ์ •๋‹ต ๋„์ถœ
q18 ์˜ค๋‹ต ์ •๋‹ต ๊ฐœ์„  Re-ranking์—์„œ 2026 ์ƒํ•œ์ผ์ˆ˜ ๊ด€๋ จ ์ฒญํฌ๊ฐ€ ์ƒ์œ„๋กœ ์˜ฌ๋ผ์˜ด
q19 ์˜ค๋‹ต ์ •๋‹ต ๊ฐœ์„  CT ๋ณธ์ธ๋ถ€๋‹ด๋ฅ  ์ •๋ณด ๋„์ถœ ์„ฑ๊ณต (cross-year ํ˜ผ์žฌ ํ—ˆ์šฉ)
q20 ์ •๋‹ต ์˜ค๋‹ต ์•…ํ™” Basic์€ ์ง์ ‘ ์ˆ˜์น˜ ์ฒญํฌ ํฌํ•จ, Re-ranking ํ›„ ์ฃผ์‚ฌ์ œ ์„ธ๋ถ€ ํ•ญ๋ชฉ ์ฒญํฌ ํƒˆ๋ฝ

3-3. ๊ธฐ๋ฒ•๋ณ„ ๊ธฐ์—ฌ๋„ ๋ถ„์„

๋ฐฉ์‹ ์ •๋‹ต๋ฅ  ํ•ต์‹ฌ ๋ณ€ํ™”
Basic RAG (๋ฒกํ„ฐ๋งŒ) 40% ๋ฒ ์ด์Šค๋ผ์ธ
+ Hybrid Search only (RRF) 30% BM25 ๋ถ€์ž‘์šฉ์œผ๋กœ ์˜คํžˆ๋ ค ํ•˜๋ฝ
+ Hybrid + Re-ranking (no filter) 45% Re-ranking์ด BM25 ํ˜ผ๋™ ๋ณด์ •

 

Step 4: ์ฒญํฌ ํฌ๊ธฐ ๋น„๊ต ์‹คํ—˜ (c300_p1500 vs c1000_p3000)

๋น„๊ต ์กฐ๊ฑด: Advanced RAG (Hybrid + Re-ranking, ๋…„๋„ ํ•„ํ„ฐ๋ง ์—†์Œ) ๋™์ผ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ฒญํฌ ํฌ๊ธฐ๋งŒ ๋ณ€๊ฒฝ

 

์ •๋‹ต๋ฅ  ๋น„๊ต

๊ตฌ๋ถ„ c300_p1500 c1000_p3000 ๋ณ€ํ™”
์ „์ฒด 9 / 20 (45%) 14 / 20 (70%) +25%p
easy (6๋ฌธํ•ญ) 4 / 6 (67%) 4 / 6 (67%) ๋™์ผ
medium (6๋ฌธํ•ญ) 2 / 6 (33%) 5 / 6 (83%) +50%p
hard (4๋ฌธํ•ญ) 1 / 4 (25%) 2 / 4 (50%) +25%p
cross-year (4๋ฌธํ•ญ) 2 / 4 (50%) 3 / 4 (75%) +25%p

๋ฌธํ•ญ๋ณ„ ์ •์˜ค๋‹ต ๋น„๊ต

์งˆ๋ฌธ ID ๋‚œ์ด๋„ c300_p1500 c1000_p3000 ๋ณ€ํ™” ์›์ธ
q01 easy ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q02 easy ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q03 easy ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ ๋ถ„๋งŒ ๋ฉด์ œ ์ •๋ณด ์–‘์ชฝ ๋ชจ๋‘ ์ฒญํฌ ๋ฏธํฌํ•จ
q04 medium ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q05 medium ์˜ค๋‹ต ์ •๋‹ต ๊ฐœ์„  c1000์—์„œ ์„ ๋ณ„๊ธ‰์—ฌ ํ‘œ ์ „์ฒด ํ–‰ ํฌํ•จ
q06 medium ์˜ค๋‹ต ์ •๋‹ต ๊ฐœ์„  c1000์—์„œ ์ •์‹ ์งˆํ™˜ ์™ธ๋ž˜์ง„๋ฃŒ ํ‘œ ์˜จ์ „ํžˆ ๊ฒ€์ƒ‰
q07 hard ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ ์น˜๋งค ์ž…์› ํŠน๋ก€ 5% ์ •๋ณด ์–‘์ชฝ ๋ชจ๋‘ ๋ฏธํฌํ•จ
q08 hard ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q09 cross-year ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ CT ๋ณธ์ธ๋ถ€๋‹ด๊ธˆ ์ง์ ‘ ์ˆ˜์น˜ ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q10 cross-year ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q11 easy ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q12 easy ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q13 easy ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ ๋ถ„๋งŒ ๋ฉด์ œ ์ •๋ณด ์–‘์ชฝ ๋ชจ๋‘ ์ฒญํฌ ๋ฏธํฌํ•จ
q14 medium ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ ํ•„ํ„ฐ ์—†์Œ์—๋„ ๊ด€๋ จ ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q15 medium ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ ๋ณต์žก์ถ”๋‚˜ 2026 ์ฒญํฌ ์–‘์ชฝ ๋ชจ๋‘ ๋ฏธ๊ฒ€์ƒ‰
q16 medium ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ LLM ์น˜๋งค/์กฐํ˜„๋ณ‘ ํ•ญ๋ชฉ ํ˜ผ๋™ (์ฒญํฌ ํฌ๊ธฐ ๋ฌด๊ด€)
q17 hard ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€ MRI ์™ธ๋ž˜ ์„ธ๋ถ€ ์ฒญํฌ ๋ฏธ๊ฒ€์ƒ‰
q18 hard ์˜ค๋‹ต ์ •๋‹ต ๊ฐœ์„  c1000์—์„œ ์ƒํ•œ์ผ์ˆ˜ ๊ด€๋ จ ์ฒญํฌ ํ™•๋ณด
q19 cross-year ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q20 cross-year ์˜ค๋‹ต ์ •๋‹ต ๊ฐœ์„  c1000์—์„œ ์ •์‹ ์งˆํ™˜ ์™ธ๋ž˜์ง„๋ฃŒ ํ‘œ ์ „์ฒด ํฌํ•จ
ํ•ฉ๊ณ„   9/20 (45%) 14/20 (70%) +25%p  

 

Step 5: Advanced RAG no_filter vs year_filter ๋น„๊ต

๋™์ผํ•œ Hybrid + Re-ranking (c300_p1500) ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋…„๋„ pre-filtering ์ ์šฉ ์—ฌ๋ถ€๋งŒ ๋‹ฌ๋ฆฌํ•œ ๋น„๊ต

 

์ •๋‹ต๋ฅ  ๋น„๊ต

๋ฐฉ์‹ ์ „์ฒด easy (6๋ฌธํ•ญ) medium (6๋ฌธํ•ญ) hard (4๋ฌธํ•ญ) cross-year (4๋ฌธํ•ญ) ๋…„๋„ ํ˜ผ์„ 
Advanced RAG (no filter) 9/20 (45%) 3/6 2/6 2/4 2/4 ๋‹ค์ˆ˜ (BM25 ํ˜ผ๋™·์ž„๋ฒ ๋”ฉ ํฌํ™” ์ง€์†)
Advanced RAG (year filter) 6/20 (30%) 3/6 1/6 0/4 2/4 0๊ฑด (pre-filtering์œผ๋กœ ์™„์ „ ์ฐจ๋‹จ)

 

๋ฌธํ•ญ๋ณ„ ๋ณ€ํ™” (no_filter → year_filter)

์งˆ๋ฌธ ID no_filter year_filter ๋ณ€ํ™” ์›์ธ ๋ถ„์„
q01 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q02 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q03 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q04 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q05 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q06 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q07 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q08 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q09 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q10 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q11 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q12 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q13 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q14 ์ •๋‹ต ์˜ค๋‹ต ์•…ํ™” 2026 ํ•„ํ„ฐ ํ›„ ํ›„๋ณด ํ’€ ์ถ•์†Œ, Re-ranking์—์„œ ๊ด€๋ จ ์ฒญํฌ ํƒˆ๋ฝ
q15 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q16 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
q17 ์ •๋‹ต ์˜ค๋‹ต ์•…ํ™” 2026 ํ•„ํ„ฐ ์ ์šฉ ํ›„ ๊ด€๋ จ ์ฒญํฌ๊ฐ€ ํ›„๋ณด ํ’€์—์„œ ํƒˆ๋ฝ
q18 ์ •๋‹ต ์˜ค๋‹ต ์•…ํ™” 2026 ํ•„ํ„ฐ ํ›„ ์ƒํ•œ์ผ์ˆ˜ ๊ด€๋ จ ์ฒญํฌ ํƒˆ๋ฝ
q19 ์ •๋‹ต ์ •๋‹ต ์œ ์ง€  
q20 ์˜ค๋‹ต ์˜ค๋‹ต ์œ ์ง€  
ํ•ฉ๊ณ„ 9/20 (45%) 6/20 (30%) -3  

๋…„๋„ ํ˜ผ์„  ๋ถ„์„

ํ•ญ๋ชฉ ๊ฐ’
no_filter ๋…„๋„ ํ˜ผ์„  ๋ฐœ์ƒ ๋ฌธํ•ญ q01·q03·q05·q07·q08·q15·q17 ๋“ฑ ๋‹ค์ˆ˜
year_filter ๋…„๋„ ํ˜ผ์„  ์˜ค๋‹ต ์ˆ˜ 0๊ฑด (pre-filtering์œผ๋กœ ์™„์ „ ์ฐจ๋‹จ)
์ฃผ์š” ํŒจํ„ด 2026 ๋ฌธ์„œ ๋‚ด '2025๋…„ ๋ณ€๊ฒฝ์‚ฌํ•ญ' ์„น์…˜ BM25 ๊ณผ๊ฒ€์ƒ‰, 2025/2026 ๋™์ผ ์ •์ฑ… ์ž„๋ฒ ๋”ฉ ํฌํ™”

 

Step 6: ์ „์ฒด ๋น„๊ต ๋ถ„์„

์ •๋‹ต๋ฅ  ์ „์ฒด ๋น„๊ต

๋ฐฉ์‹ ์ „์ฒด easy medium hard cross-year
Basic RAG (๋ฒกํ„ฐ๋งŒ) 8/20 (40%) 4/6 2/6 0/4 2/4
Hybrid Only (ํ•„ํ„ฐ·๋ฆฌ๋žญํ‚น ์—†์Œ) 6/20 (30%) 3/6 1/6 0/4 2/4
Advanced RAG (no filter, c300_p1500) 9/20 (45%) 4/6 2/6 1/4 2/4
Advanced RAG (year filter, c300_p1500) 6/20 (30%) 3/6 1/6 0/4 2/4
Advanced RAG (no filter, c1000_p3000) 14/20 (70%) 4/6 5/6 2/4 3/4

๊ธฐ๋ฒ•๋ณ„ ๊ธฐ์—ฌ๋„

๋ฐฉ์‹ ์ •๋‹ต๋ฅ  ํ•ต์‹ฌ ๋ณ€ํ™”
Basic RAG (๋ฒกํ„ฐ๋งŒ) 40% ๋ฒ ์ด์Šค๋ผ์ธ
+ Hybrid Search only (RRF) 30% BM25 ๋ถ€์ž‘์šฉ์œผ๋กœ ์˜คํžˆ๋ ค ํ•˜๋ฝ
+ Hybrid + Re-ranking (no filter) 45% Re-ranking์ด BM25 ํ˜ผ๋™ ๋ณด์ •
+ Hybrid + Re-ranking + ๋…„๋„ ํ•„ํ„ฐ๋ง 30% ํ•„ํ„ฐ๋กœ ํ›„๋ณด ํ’€ ๊ณผ๋„ ์ถ•์†Œ
+ Hybrid + Re-ranking + ์ฒญํฌ ํฌ๊ธฐ ํ™•๋Œ€ 70% HTML ํ‘œ ๊ตฌ์กฐ ๋ณด์กด์œผ๋กœ ๊ธ‰์ƒ์Šน

 


6. ์ธ์‚ฌ์ดํŠธ

  1. ์ฒญํ‚น ์ „๋žต์ด ํŒŒ์ดํ”„๋ผ์ธ๋ณด๋‹ค ์šฐ์„ : ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Hybrid, Re-ranking, ํ•„ํ„ฐ๋ง)์„ ๋ชจ๋‘ ์กฐํ•ฉํ•ด๋„ 45%์˜€๋˜ ์ •๋‹ต๋ฅ ์ด ์ฒญํฌ ํฌ๊ธฐ ๋ณ€๊ฒฝ ํ•˜๋‚˜๋กœ 70%๊นŒ์ง€ ์˜ฌ๋ž๋‹ค. ์˜๋ฃŒ๊ธ‰์—ฌ ๋ฌธ์„œ์ฒ˜๋Ÿผ HTML ํ‘œ ์ค‘์‹ฌ ๋ฌธ์„œ์—์„œ๋Š” ์ฒญํฌ๊ฐ€ ํ‘œ ํ–‰ ๋‹จ์œ„๋ฅผ ์˜จ์ „ํžˆ ๋‹ด์•„์•ผ LLM์ด ํ•ญ๋ชฉ๋ช…๊ณผ ์ˆ˜์น˜๋ฅผ ํ•จ๊ป˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. Hybrid Search๋Š” Re-ranking๊ณผ ๋ฐ˜๋“œ์‹œ ํ•จ๊ป˜: BM25๊ฐ€ 2026 ๋ฌธ์„œ ๋‚ด '2025๋…„ ๋ณ€๊ฒฝ์‚ฌํ•ญ' ์„น์…˜ ํ‚ค์›Œ๋“œ์— ๊ณผ๋„ํ•˜๊ฒŒ ๋ฐ˜์‘ํ•˜์—ฌ Hybrid Only(30%)๋Š” Basic RAG(40%)๋ณด๋‹ค ๋‚ฎ์•˜๋‹ค. Re-ranking์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ฟผ๋ฆฌ-๋ฌธ์„œ ๊ด€๋ จ์„ฑ ์žฌํ‰๊ฐ€๋กœ BM25 ๋ถ€์ž‘์šฉ์ด ๋ณด์ •๋˜์–ด 45%๋กœ ํšŒ๋ณต๋๋‹ค.
  3. Re-ranking์€ hard ๋ฌธํ•ญ ๊ฐœ์„ ์— ํšจ๊ณผ์ : Basic RAG์—์„œ 0/4์˜€๋˜ hard ๋ฌธํ•ญ์ด Hybrid + Re-ranking์—์„œ 2/4๋กœ ๊ฐœ์„ ๋๋‹ค. ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๋‹จ๋…์œผ๋กœ ๋†“์ณค๋˜ ์ฒญํฌ๋ฅผ BM25 ํ‚ค์›Œ๋“œ ๋งค์นญ์œผ๋กœ ํ™•๋ณดํ•˜๊ณ , Re-ranking์ด ๊ด€๋ จ์„ฑ ๋†’์€ ์ฒญํฌ๋ฅผ ์ƒ์œ„๋กœ ์˜ฌ๋ฆฐ ๊ฒฐ๊ณผ๋‹ค.
  4. medium ๋‚œ์ด๋„์—์„œ ์ฒญํฌ ํฌ๊ธฐ ํšจ๊ณผ ์ง‘์ค‘: easy๋Š” ๋‹จ์ˆœ ์ˆ˜์น˜ ์กฐํšŒ๋ผ c300์—์„œ๋„ ์ถฉ๋ถ„ํžˆ ๊ฒ€์ƒ‰๋๊ณ , hard๋Š” ์ •๋ณด๊ฐ€ ์—ฌ๋Ÿฌ ์ฒญํฌ์— ๋ถ„์‚ฐ๋˜์–ด ํฌ๊ธฐ๋ฅผ ๋Š˜๋ ค๋„ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค. ํ‘œ ๊ตฌ์กฐ๊ฐ€ ํ•ต์‹ฌ์ธ medium(33% → 83%)์—์„œ ๊ฐœ์„  ํญ์ด ๊ฐ€์žฅ ์ปธ๋‹ค.
  5. ์—ฐ๋„ ํ˜ผ์„  ์ œ๊ฑฐ๊ฐ€ ์ •๋‹ต๋ฅ  ํ–ฅ์ƒ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค: year_filter๋Š” ์—ฐ๋„ ํ˜ผ์„ ์„ 0%๋กœ ์ค„์˜€์ง€๋งŒ, ํ•„ํ„ฐ๋ง์œผ๋กœ ํ›„๋ณด ํ’€์ด ์ถ•์†Œ๋˜๋ฉด์„œ ๊ด€๋ จ ์ฒญํฌ๊ฐ€ ํƒˆ๋ฝํ•˜๋Š” ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•ด ์ •๋‹ต๋ฅ ์ด 45% → 30%๋กœ ์˜คํžˆ๋ ค ํ•˜๋ฝํ–ˆ๋‹ค. ์—ฐ๋„ ํ˜ผ์„  ์ œ๊ฑฐ์™€ ์ •๋‹ต๋ฅ  ํ–ฅ์ƒ์€ ๋ณ„๊ฐœ์˜ ๋ฌธ์ œ์ด๋ฉฐ, ํ•„ํ„ฐ๋ง ์ž์ฒด๊ฐ€ ์ •๋‹ต๋ฅ  ํ•˜๋ฝ์˜ ์ง์ ‘ ์›์ธ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
  6. ์ž„๋ฒ ๋”ฉ ํฌํ™”๋Š” ํ•„ํ„ฐ๋ง·Re-ranking์œผ๋กœ ํ•ด๊ฒฐ ๋ถˆ๊ฐ€: ์ž„๋ฒ ๋”ฉ ํฌํ™”(๋‘ ์—ฐ๋„์˜ ๋ฌธ์„œ ๋‚ด์šฉ์ด ๊ฑฐ์˜ ๋™์ผํ•  ๋•Œ ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ๋‘ ์ฒญํฌ๊ฐ€ ๊ฐ™์€ ์œ„์น˜์— ์ˆ˜๋ ดํ•ด ์—ฐ๋„ ๊ตฌ๋ถ„ ์ž์ฒด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง€๋Š” ํ˜„์ƒ)๋Š” 2025·2026 ๋ฌธ์„œ๊ฐ€ ๋™์ผ ์ •์ฑ… ๋‚ด์šฉ์„ ๋ฐ˜๋ณต ์ˆ˜๋กํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋ฉฐ, ์ฒญํฌ ๋‚ด์— ์—ฐ๋„ ์ •๋ณด๋ฅผ ํ…์ŠคํŠธ๋กœ ๋ช…์‹œํ•˜๊ฑฐ๋‚˜ ์—ฐ๋„๋ณ„ ๋ณ„๋„ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด ๊ทผ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๊นƒํ—ˆ๋ธŒ ์ฃผ์†Œ

https://github.com/jasonpark112/aiagent-repo/tree/jasonpark112/week-4/jasonpark112

 

aiagent-repo/week-4/jasonpark112 at jasonpark112 · jasonpark112/aiagent-repo

Contribute to jasonpark112/aiagent-repo development by creating an account on GitHub.

github.com

 

 

๋Œ“๊ธ€