_์ฃผํ์๋์ฐจ๋ณดํธ๋ฒ RAG ์ฑ๋ด + RAGAS ์ ๋ ํ๊ฐ
House-rental-chat์ ์ฃผํ์๋์ฐจ๋ณดํธ๋ฒ์ ๊ทผ๊ฑฐ๋ก ์ ์ธยท์์ธยท๋ณด์ฆ๊ธยท๊ณ์ฝ๊ฐฑ์ ์ง๋ฌธ์ ์กฐ๋ฌธ์ ์ธ์ฉํด ๋ตํ๋ RAG ์ฑ๋ด์
๋๋ค.| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ์คํ | FastAPI LangGraph PostgreSQL RAGAS |
| ํ | 2์ธ |
| ๋ด๋น | RAG pipeline ๊ตฌ์ถ ๋ฐ ์๋น |


recall .73){3, 5, 10, 20, 40}์ผ๋ก ์ค์ํด recallยทhit์ด ๊บพ์ด๋ ์ง์ ์ ์ฐพ์k=5โ10์์ recall .73โ.85ยทhit .85โ.93์ผ๋ก ๊ฐ์ฅ ํฌ๊ฒ ์ค๋ฅด๊ณ ์ดํ ์๋ง โ k=10 ๊ณ ์ mrr .62) ์ฃผ๋ณ์ด ๋
ธ์ด์ฆ.์ 6์กฐ์3 ๊ฐ์ ์ ํํ ์ดํ ๋งค์นญ์ด ์ฝํจ.์์ฐจ์ธ์ด/์์ฐจ์ธ์)์ ์กฐ๋ฌธ๋ฒํธ๋ฅผ ๋ชป ์ชผ๊ฐฌ..62โ.66 โ ๋ชป ์ฐพ๋ ์กฐ๋ฌธ์ ์๋ก ์ฐพ์ง ๋ชปํด๋ ์ด๋ฏธ ์ฐพ์ ์ ๋ต์ ์์๋ก ๋์ด์ฌ๋ฆผ.fetch=40) top-10์ผ๋ก ์ขํ
.66โ.72, hit .92โ.94.fetch=40 ๊ณ ์ .94์์ ๋ ์ ์ฌ๋ผ, ๋จ์ miss๋ฅผ ๊ฒ์ ์คํจ๋ก ์์ฌ.94 โ .99answer_correctness๋ base์ RAG๋ฅผ ๊ฑฐ์ ๊ฐ๊ฒ ์ฑ์ (+0.02, flat)answer_correctness๋ ์๋ฏธ ์ ์ฌ๋ ์์ฃผ์ 6์กฐ์3 ์ ์ 6์กฐ์2 ๋ก ํ๋ฆฐ ๊ฒ ๊ฐ์ ์กฐ๋ฌธ๋ฒํธ ์ค๋ฅ์ ๋๊ฐํจrecall@k(.86)์ hit@k(.99)๊ฐ ํฌ๊ฒ ๋ฒ์ด์ ธ, “๊ฒ์์ด ์ ๋๋ ๊ฑด๊ฐ?“๋ฅผ ํ๋จํ ๋ ์ด๋ ์ซ์๋ฅผ ๋ด์ผ ํ ์ง ํท๊ฐ๋ฆผhit@k: ์ด ์ง๋ฌธ, ๊ฒ์์ด ์ ๋ต์ ๊ฑด๋๋ฆฌ๊ธด ํ๋
recall@k: ์ ๋ต์ ๋น ์ง์์ด ๋ค ๋ด์๋
โ ์ ๋ต ์กฐ๋ฌธ์ด ์ฌ๋ฌ ๊ฐ์ธ ์ง๋ฌธ์์ ๊ทธ์ค ๋ช ๊ฐ๊ฐ top-k์ ๋ค์ด์๋์งhit=1์ธ๋ฐ recall<1 โ ํญ์ hit@k โฅ recall@k.99 vs .86)๋ ๊ฒ์ ์คํจ๋ผ๊ธฐ๋ณด๋ค, ๋ค์ค์กฐ๋ฌธ ์ง๋ฌธ์์ ์ ๋ต ์ฒญํฌ ์ผ๋ถ๊ฐ top-10 ๋ฐ์ผ๋ก ๋ฐ๋ฆฐ ๊ฒhit@k(.99) โ “์ ๋ต์ด ํ๋ณด์ ๋ค์ด์๋” = ๊ฒ์์ด ๋ณ๋ชฉ์ธ์ง ๊ฐ๋ฅด๋ ์ง๋จ์ฉ โ ๋ณ๋ชฉ์ ๊ฒ์์ด ์๋์ ํ์ recall@k(.86) โ “๋ค ๋ด์๋” = kยท์ฒญํน์ ๋ ์กฐ์ผ์ง ํ๋จ์ฉrecall@k๋ ์ค๋ฅด์ง๋ง(k=40์์ .93) precision@k๊ฐ ๋ถ๊ดด(.12โ.03) โ k=10 ์ ์ง, ๋จ์ recall์ ์ฒญํน์ผ๋ก๋ง ๊ฐ์ ์ฌ์งhit โ .99).76 โ ๊ฒฉ์ฐจ๋ ๊ฒ์์ด ์๋๋ผ ์์ฑ์ ์์hit@k๋ ์ฑ๊ณผ ์งํ๊ฐ ์๋๋ผ “๋ณ๋ชฉ์ด ๊ฒ์์ด ์๋"์ ๋ณด์ด๋ ์ง๋จ ๊ทผ๊ฑฐ๋ก ์ฌ์ฉยฑ0.1 ํ๋ค๋ ค ๊ฐ์ ์ธ์ง ๋
ธ์ด์ฆ์ธ์ง ๊ตฌ๋ถ ๋ถ๊ฐquote-then-answer ํ๋กฌํํธ: ๋ต ์ฐ๊ธฐ ์ ์ ๊ทผ๊ฑฐ ์กฐ๋ฌธ์ ์์น๋ฅผ ์๋ฌธ ๊ทธ๋๋ก ์ธ์ฉํ๋๋ก ์ ๋temperature=0 ๊ณ ์ ์ผ๋ก eval ์ฌํ์ฑ ํ๋ณด (judge๋ฟ ์๋๋ผ ์์ฑ๋ ๊ฒฐ์ ์ ์ผ๋ก)