โ† Back to list

๐Ÿค– Career Agent ๊ฐœ๋ฐœ๊ธฐ (4) : RAG (Retrieval-Augmented Generation)

RAG๋Š” ๊ฐ ์งˆ์˜์— ํŠนํ™”๋œ ์ปจํ…์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค

eunsoo jin in worxphere-tech ยท 2026-06-10 01:57 ยท 0 claps ยท 20.8 min read
#tech #ai-agent #reboot #data #agentic-rag
Open on Medium โ†—
Wiki topics: RAG ยท RAG & Retrieval AGT ยท AI Agents

WORXPHERE

๐Ÿค– Career Agent ๊ฐœ๋ฐœ๊ธฐ (4) : RAG (Retrieval-Augmented Generation)

RAG๋Š” ๊ฐ ์งˆ์˜์— ํŠนํ™”๋œ ์ปจํ…์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค

๐Ÿš€ ๋“ค์–ด๊ฐ€๋ฉฐ

Career Agent ํ”„๋กœ์ ํŠธ์—์„œ RAG ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ฒกํ„ฐ DB ๊ตฌ์„ฑ์€ ๊ณตํ†ต ํ”Œ๋žซํผ ํŒ€์—์„œ ๋‹ด๋‹นํ•ด ์ฃผ์…จ๊ณ , ์ €ํฌ ํŒ€์€ OpenSearch ๊ธฐ๋ฐ˜์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์„ ํ™œ์šฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์†”์งํžˆ ๊ณ ๋ฐฑํ•˜์ž๋ฉด, RAG ๊ด€๋ จ ์šฉ์–ด๋“ค์€ ์ €์—๊ฒŒ ๊ฐ€์žฅ ์ƒ์†Œํ•œ ์˜์—ญ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋žญํ‚น(Re-ranking)์€ ์–ด๋–ค ์›๋ฆฌ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€, ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ๊ถ๊ธˆํ•œ ๊ฒƒ ํˆฌ์„ฑ์ด์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํŽธ์—์„œ๋Š” ์ง์ ‘์ ์ธ ๊ตฌํ˜„ ๊ฒฝํ—˜๋ณด๋‹ค, ๊ทธ ๊ณผ์ •์—์„œ ์ƒˆ๋กญ๊ฒŒ ๋ฐฐ์šด ์šฉ์–ด์™€ ๊ฐœ๋… ์œ„์ฃผ๋กœ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €์ฒ˜๋Ÿผ RAG๊ฐ€ ์ฒ˜์Œ์ธ ๋ถ„๋“ค๊ป˜ ์ž‘์€ ์ด์ •ํ‘œ๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”Ž RAG: ์—์ด์ „ํŠธ์—๊ฒŒ ์ ์ ˆํ•œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ์ˆ 

Career Agent๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉฐ ๋งˆ์ฃผํ•œ ๊ฐ€์žฅ ํฐ ๋ฒฝ์€ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ์ˆ˜๋งŒ ๊ฑด์˜ ์ฑ„์šฉ๊ณต๊ณ ๋ฅผ ์ฐธ๊ณ ํ•ด ๋‹ต๋ณ€ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด ๋ฐฉ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ”„๋กฌํ”„ํŠธ์— ์ „๋ถ€ ๋‹ด์„ ์ˆ˜๋Š” ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ๊ฐ ์งˆ์˜์— ๊ผญ ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ๊ณจ๋ผ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•ต์‹ฌ์ด๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ํŒจํ„ด์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • RAG ํŒจํ„ด: ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ์ง€์‹ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๊ณ  ์ตœ์‹  ์ •๋ณด๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์—์ด์ „ํŠธ ํŒจํ„ด: ์›น ๊ฒ€์ƒ‰์ด๋‚˜ API ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœ ์ •๋ณด ์ „๋‹ฌ์„ ๋„˜์–ด ํ˜„์‹ค ์„ธ๊ณ„์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ์ž‘์—…์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค.

RAG(Retrieval-Augmented Generation)๋Š” ํ•œ๋งˆ๋””๋กœ ๋ชจ๋ธ์—๊ฒŒ โ€˜์ฐธ๊ณ ์„œโ€™๋ฅผ ์ฅ์—ฌ์ฃผ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์งˆ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ๊ด€๋ จ ์ •๋ณด๋งŒ ๊ณจ๋ผ ๋ชจ๋ธ์—๊ฒŒ ๊ฑด๋„ค์คŒ์œผ๋กœ์จ, ๋ชจ๋ธ์˜ ๊ธฐ์–ต๋ ฅ(์ปจํ…์ŠคํŠธ ๊ธธ์ด) ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•ฉ๋‹ˆ๋‹ค. ์ปจํ…์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๋ฉด ๋ชจ๋ธ์ด ์—‰๋šฑํ•œ ์ •๋ณด์— ์ง‘์ค‘ํ•˜๊ฑฐ๋‚˜ ๋น„์šฉ๊ณผ ์ง€์—ฐ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, RAG๋Š” ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ์ฝ• ์ง‘์–ด ์ „๋‹ฌํ•ด ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ ๋™์‹œ์— ์žก์Šต๋‹ˆ๋‹ค.

๐Ÿ—๏ธ RAG ์•„ํ‚คํ…์ฒ˜

RAG์˜ ๊ตฌ์กฐ๋Š” ์ƒ๊ฐ๋ณด๋‹ค ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒ€์ƒ‰๊ธฐ์™€, ๊ฒ€์ƒ‰๋œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•˜๋Š” ์ƒ์„ฑ ๋ชจ๋ธ. ์ด ๋‘ ๊ฐ€์ง€๊ฐ€ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, RAG์˜ ์„ฑ๊ณต์€ ๊ฒ€์ƒ‰๊ธฐ์˜ ํ’ˆ์งˆ์— ๋‹ฌ๋ ค ์žˆ์œผ๋ฉฐ, ๊ฒ€์ƒ‰๊ธฐ์—๋Š” ์ƒ‰์ธํ™”์™€ ์งˆ์˜๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ ์ „์ฒด๋ฅผ ๊ทธ๋ƒฅ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ปจํ…์ŠคํŠธ๊ฐ€ ์ง€๋‚˜์น˜๊ฒŒ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์„œ๋ฅผ ๋” ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์ฒญํฌ(chunk)๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ์„ฑ ๋†’์€ ๋ฐ์ดํ„ฐ ์ฒญํฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ์งˆ์˜์˜ ๋ชฉํ‘œ์ด๊ณ , ๊ฒ€์ƒ‰๋œ ์ฒญํฌ๋ฅผ ์‚ฌ์šฉ์ž ํ”„๋กฌํ”„ํŠธ์™€ ํ•ฉ์น˜๋Š” ํ›„์ฒ˜๋ฆฌ๋ฅผ ๊ฑฐ์ณ ์ตœ์ข… ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์ƒ์„ฑ ๋ชจ๋ธ์— ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“ฆ ์ฒญํ‚น: ๋ฐ์ดํ„ฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜๊ฒŒ ์ž๋ฅผ ๊ฒƒ์ธ๊ฐ€

RAG๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ฒ˜์Œ ์ƒ๊ฐ์ด ๋“  ์งˆ๋ฌธ์ด โ€œ๋ฐ์ดํ„ฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜๊ฒŒ ์ž˜๋ผ์•ผ ํ•˜์ง€?โ€์˜€์Šต๋‹ˆ๋‹ค. ์ฒญํ‚น์€ ๊ธด ๋ฌธ์„œ๋ฅผ ์˜๋ฏธ ์žˆ๋Š” ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๋Š” ์ „๋žต์ธ๋ฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ƒ‰์ธํ™”ํ• ์ง€๋Š” ๋‚˜์ค‘์— ์–ด๋–ป๊ฒŒ ๊ฒ€์ƒ‰ํ•  ๊ฒƒ์ธ์ง€์— ๋”ฐ๋ผ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ด ์ฒญํ‚น ์ „๋žต ํ•˜๋‚˜๊ฐ€ ๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์— ์ƒ๋‹นํ•œ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

  • ๊ณ ์ • ํฌ๊ธฐ ์ฒญํ‚น: ๊ธ€์ž ์ˆ˜๋‚˜ ํ† ํฐ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ๊ตฌํ˜„์ด ์‰ฝ์ง€๋งŒ ๋ฌธ๋งฅ์ด ์ค‘๊ฐ„์— ๋Š๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ค‘์ฒฉ ์ฒญํ‚น: ๊ณ ์ • ํฌ๊ธฐ๋กœ ๋‚˜๋ˆ„๋˜ ์•ž๋’ค ์ฒญํฌ๋ฅผ 10~20% ์ •๋„ ๊ฒน์น˜๊ฒŒ ํ•˜์—ฌ ๋ฌธ๋งฅ ๋Š๊น€์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์žฌ๊ท€์  ๋ฌธ์ž ์ฒญํ‚น: ๋ฌธ๋‹จ ๊ตฌ๋ถ„์ž, ์ค„๋ฐ”๊ฟˆ, ๊ณต๋ฐฑ ์ˆœ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‘์–ด ์˜๋ฏธ ๋‹จ์œ„๊ฐ€ ๊นจ์ง€์ง€ ์•Š๊ฒŒ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. LangChain ๋“ฑ์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ์˜๋ฏธ๋ก ์  ์ฒญํ‚น: ๋ฌธ์žฅ ๊ฐ„ ์˜๋ฏธ์  ์œ ์‚ฌ๋„๋ฅผ ์ธก์ •ํ•˜์—ฌ ๋‚ด์šฉ์ด ๋‹ฌ๋ผ์ง€๋Š” ์ง€์ ์„ ์ฐพ์•„ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ์ •๋ณด ์ผ๊ด€์„ฑ์ด ๊ฐ€์žฅ ๋†’์ง€๋งŒ ์ž„๋ฒ ๋”ฉ ์—ฐ์‚ฐ ๋น„์šฉ์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ฒญํฌ ํฌ๊ธฐ๊ฐ€ ์ž‘์„์ˆ˜๋ก ๋” ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๊ณ , ๋„“์€ ๋ฒ”์œ„๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ์†์‹ค๋˜๊ณ , ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ๊ณต๊ฐ„์ด ์ปค์ ธ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒญํ‚น์€ ๋ฐฉ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ AI๊ฐ€ ์†Œํ™”ํ•˜๊ธฐ ์ข‹์€ ํฌ๊ธฐ๋กœ ์ž˜๋ผ์ฃผ๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ํฌ๊ฒŒ ์ž๋ฅด๋ฉด ๋น„์šฉ์ด ์ƒ์Šนํ•˜๊ณ  ๋…ธ์ด์ฆˆ๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉฐ, ๋„ˆ๋ฌด ์ž‘๊ฒŒ ์ž๋ฅด๋ฉด ๋ฌธ๋งฅ์„ ์ƒ์‹คํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“„ ์ปจํ…์ŠคํŠธ ๊ฒ€์ƒ‰: ์ฒญํฌ์— ๋งฅ๋ฝ์„ ๋˜๋Œ๋ ค์ฃผ๊ธฐ

RAG๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ๋ฌธ์„œ๋ฅผ ์ฒญํฌ๋กœ ์ž๋ฅด๋ฉด, ์ž˜๋ฆฐ ์กฐ๊ฐ์ด ์•ž๋’ค ๋ฌธ๋งฅ์„ ์žƒ์–ด๋ฒ„๋ฆฐ๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด โ€œ2026๋…„ 1๋ถ„๊ธฐ ๋งค์ถœ์€ ์ „๋…„ ๋Œ€๋น„ 15% ์ฆ๊ฐ€ํ–ˆ๋‹คโ€๋ผ๋Š” ์ฒญํฌ์— ์–ด๋А ํšŒ์‚ฌ์ธ์ง€ ์ •๋ณด๊ฐ€ ์—†๋‹ค๋ฉด, ๊ฒ€์ƒ‰ ์—”์ง„์€ ์ด ์กฐ๊ฐ์„ ์ œ๋Œ€๋กœ ๋งค์นญํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…์ŠคํŠธ ๊ฒ€์ƒ‰(Contextual Retrieval)์€ ๊ฐ ์ฒญํฌ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์ „์— ํ•ด๋‹น ์ฒญํฌ๊ฐ€ ์ „์ฒด ๋ฌธ์„œ์—์„œ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”์ง€ ์„ค๋ช…์„ ๋ง๋ถ™์ด๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. LLM์ด ๋ฌธ์„œ ์ „์ฒด๋ฅผ ๋จผ์ € ์ฝ๊ณ , ๊ฐ ์ฒญํฌ์— โ€œ์ด ์กฐ๊ฐ์€ [A ํšŒ์‚ฌ]์˜ [์žฌ๋ฌด ๋ณด๊ณ ์„œ] ์ค‘ [๋งค์ถœ ํ˜„ํ™ฉ] ์„น์…˜์— ํ•ด๋‹นํ•จโ€๊ณผ ๊ฐ™์€ ์งง์€ ๋งฅ๋ฝ์„ ์ƒ์„ฑํ•œ ๋’ค, ์›๋ณธ ์ฒญํฌ์™€ ํ•ฉ์ณ์„œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. Anthropic์˜ ์‹คํ—˜์— ๋”ฐ๋ฅด๋ฉด ์ด ๋ฐฉ์‹์œผ๋กœ ๊ฒ€์ƒ‰ ์‹คํŒจ์œจ์ด ์ตœ๋Œ€ 49%๊นŒ์ง€ ๊ฐ์†Œํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ ๋ชจ๋“  ์ฒญํฌ๋งˆ๋‹ค LLM์„ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ดˆ๊ธฐ ์ธ๋ฑ์‹ฑ ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์ €์žฅํ•˜๋ฉด ๊ฒ€์ƒ‰ ์‹œ์—๋Š” ์ถ”๊ฐ€ ๋น„์šฉ์ด ๋“ค์ง€ ์•Š์ง€๋งŒ, ๋ง๋ถ™์ด๋Š” ๋งฅ๋ฝ์ด ๋„ˆ๋ฌด ๊ธธ๋ฉด ์›๋ณธ ๋ฐ์ดํ„ฐ์˜ ํ•ต์‹ฌ ์˜๋ฏธ๊ฐ€ ํฌ์„๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ ์ ˆํ•œ ๊ธธ์ด ์กฐ์ ˆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ” ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์šฉ์–ด ๊ธฐ๋ฐ˜ vs ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜

์ฒญํฌ๋ฅผ ์ž˜ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด, ์ด์ œ ๊ทธ ์ฒญํฌ๋“ค ์ค‘์—์„œ ์–ด๋–ค ๊ฒƒ์„ ๊ฐ€์ ธ์˜ฌ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ์„ฑ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์šฉ์–ด ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰(๋ ‰์‹œ์ปฌ ๊ฒ€์ƒ‰): ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์—ญ์ƒ‰์ธ์„ ํ™œ์šฉํ•˜๋Š” ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜๋‚˜ BM25๊ฐ€ ๋Œ€ํ‘œ์ ์ž…๋‹ˆ๋‹ค. ์—ญ์ƒ‰์ธ์€ ์ฑ… ๋’ค์˜ ์ฐพ์•„๋ณด๊ธฐ์ฒ˜๋Ÿผ ๋‹จ์–ด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์„œ ID๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋น ๋ฅด๊ณ  ๋น„์šฉ์ด ์ ์ง€๋งŒ ์˜๋ฏธ๊ฐ€ ์•„๋‹Œ ๋‹จ์–ด์˜ ํ˜•ํƒœ๋งŒ์œผ๋กœ ๊ด€๋ จ์„ฑ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰(์‹œ๋ฉ˜ํ‹ฑ ๊ฒ€์ƒ‰): ๋ฌธ์„œ์˜ ์˜๋ฏธ๊ฐ€ ์งˆ์˜์™€ ์–ผ๋งˆ๋‚˜ ๊ฐ€๊นŒ์šด์ง€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ˆœ์œ„๋ฅผ ๋งค๊น๋‹ˆ๋‹ค. ์›๋ณธ ๋ฐ์ดํ„ฐ ์ฒญํฌ๋ฅผ ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ , ์งˆ์˜ ๋ฒกํ„ฐ์™€ ์œ ์‚ฌํ•œ ๋ฒกํ„ฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ํฐ ๋ฐ์ดํ„ฐ์…‹์—์„œ๋Š” ๊ทผ์‚ฌ ์ตœ๊ทผ์ ‘ ์ด์›ƒ(ANN) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์šฉ์–ด ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์€ ์ƒ‰์ธํ™”์™€ ์งˆ์˜ ๋ชจ๋‘์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜๋ณด๋‹ค ๋น ๋ฅด๊ณ  ๋น„์šฉ์ด ์ ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์š”์†Œ๊ฐ€ ์ ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์€ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ƒ๋‹นํžˆ ๊ฐœ์„ ๋˜์–ด ๋” ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ—„๏ธ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: ์˜๋ฏธ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ์—”์ง„

์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์„ ์ด์•ผ๊ธฐํ•˜๋ฉด์„œ โ€œ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•œ๋‹คโ€๊ณ  ํ–ˆ๋Š”๋ฐ, ์ด ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค.

์ „ํ†ต์ ์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” SELECT * FROM jobs WHERE title = '๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž'์ฒ˜๋Ÿผ ์ •ํ™•ํ•œ ์ผ์น˜(exact match)๋กœ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ "์„œ๋ฒ„ ์—”์ง€๋‹ˆ์–ด", "Backend Developer"๋„ ๊ฐ™์€ ์˜๋ฏธ๋ผ๋Š” ๊ฒƒ์€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฉ์ฐจ๋ฅผ ์‹œ๋งจํ‹ฑ ๊ฐญ(Semantic Gap)์ด๋ผ ํ•˜๋ฉฐ, ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ”๋กœ ์ด ๊ฐญ์„ ๋ฉ”์šฐ๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ์€ ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์˜ค๋””์˜ค ๊ฐ™์€ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ฐจ์› ์ˆซ์ž ๋ฐฐ์—ด(์˜ˆ: [0.12, -0.34, 0.78, ...])๋กœ ๋ณ€ํ™˜ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜๋ฏธ๊ฐ€ ๋น„์Šทํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋ฒกํ„ฐ ๊ณต๊ฐ„์—์„œ ๊ฐ€๊นŒ์ด ์œ„์น˜ํ•˜๊ณ , ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋Š” ๋ฉ€๋ฆฌ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ด ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ์œ ์‚ฌํ•œ ๋ฒกํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„์ฃผ๋Š” ๋ฐ ํŠนํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

โ€œ๊ธฐ์กด DB์— ๋ฒกํ„ฐ ์ธ๋ฑ์Šค๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜์ง€ ์•Š๋‚˜?โ€๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹จ์ˆœ ๋ฒกํ„ฐ ์ธ๋ฑ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” CRUD ์—ฐ์‚ฐ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง, ์Šค์ผ€์ผ๋ง๊ณผ ๋ณต์ œ, ์žฅ์•  ๋ณต๊ตฌ ๊ฐ™์€ ํ”„๋กœ๋•์…˜ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฒกํ„ฐ ๊ฒ€์ƒ‰์˜ ์‹œ๋งจํ‹ฑ ํŒŒ์›Œ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์šด์˜ ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒกํ„ฐ ๊ฐ„ ์œ ์‚ฌ๋„๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฑฐ๋ฆฌ ๋ฉ”ํŠธ๋ฆญ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„๋Š” ๋ฒกํ„ฐ์˜ ๋ฐฉํ–ฅ๋งŒ ๋น„๊ตํ•˜์—ฌ ํ…์ŠคํŠธ ์ž„๋ฒ ๋”ฉ์— ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๊ณ , ์œ ํด๋ฆฌ๋””์•ˆ ๊ฑฐ๋ฆฌ๋Š” ์ง์„  ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ •ํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ž„๋ฒ ๋”ฉ์— ์ ํ•ฉํ•˜๋ฉฐ, ๋‚ด์ (Dot Product)์€ ์ถ”์ฒœ ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ์ž-์•„์ดํ…œ ๋งค์นญ์— ์ž์ฃผ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋™์ž‘์€ ํฌ๊ฒŒ ์„ธ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

1๋‹จ๊ณ„ โ€” ์ธ๋ฑ์‹ฑ: ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๋ฒกํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋น„๊ตํ•˜๋ฉด ๋„ˆ๋ฌด ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ๋†’์ด๋Š” ์ธ๋ฑ์‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

  • HNSW(Hierarchical Navigable Small World): ๋ฒกํ„ฐ๋“ค์„ ๊ณ„์ธต์  ๊ทธ๋ž˜ํ”„๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ, ์ƒ์œ„ ๋ ˆ์ด์–ด์—์„œ ๋Œ€๋žต์  ์œ„์น˜๋ฅผ ์žก๊ณ  ํ•˜์œ„๋กœ ๋‚ด๋ ค๊ฐ€๋ฉฐ ์ •๋ฐ€ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์†๋„์™€ ์ •ํ™•๋„ ๊ท ํ˜•์ด ๋›ฐ์–ด๋‚˜ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • IVF(Inverted File Index): ๋ฒกํ„ฐ ๊ณต๊ฐ„์„ ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ€๊นŒ์šด ํด๋Ÿฌ์Šคํ„ฐ๋งŒ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋„์„œ๊ด€์—์„œ ํ•ด๋‹น ๋ถ„๋ฅ˜ ์ฝ”๋„ˆ๋งŒ ์ฐพ์•„๊ฐ€๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.
  • PQ(Product Quantization): ๊ณ ์ฐจ์› ๋ฒกํ„ฐ๋ฅผ ์••์ถ•ํ•˜์—ฌ ์ €์žฅ ์šฉ๋Ÿ‰์„ 90% ์ด์ƒ ์ค„์ž…๋‹ˆ๋‹ค. ์ •ํ™•๋„๋ฅผ ์•ฝ๊ฐ„ ํฌ์ƒํ•˜๋Š” ๋Œ€์‹  ๋ฉ”๋ชจ๋ฆฌ์— ํ›จ์”ฌ ๋” ๋งŽ์€ ๋ฒกํ„ฐ๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • DiskANN: 1์–ต ๊ฐœ ์ด์ƒ์˜ ๋Œ€๊ทœ๋ชจ ๋ฒกํ„ฐ์—์„œ ์ธ๋ฉ”๋ชจ๋ฆฌ ์ธ๋ฑ์Šค๋Š” ์ˆ˜๋ฐฑ GB์˜ RAM์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. DiskANN์€ ์ธ๋ฑ์Šค ๋Œ€๋ถ€๋ถ„์„ NVMe SSD์— ์ €์žฅํ•˜๋ฉด์„œ๋„ 2~3ms ์ˆ˜์ค€์˜ ์ถ”๊ฐ€ ์ง€์—ฐ๋งŒ์œผ๋กœ ํšจ์œจ์ ์ธ ๊ฒ€์ƒ‰์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ๋ชจ๋‘ ๊ทผ์‚ฌ ์ตœ๊ทผ์ ‘ ์ด์›ƒ(ANN) ๋ฐฉ์‹์œผ๋กœ, ์ˆ˜ํ•™์ ์œผ๋กœ ์™„๋ฒฝํ•œ ๊ฒฐ๊ณผ ๋Œ€์‹  ์•ฝ๊ฐ„์˜ ์ •ํ™•๋„๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ๊ทน์ ์œผ๋กœ ๋†’์ด๋Š” ์ „๋žต์ž…๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ํ‰๊ฐ€ ์‹œ์—๋Š” Recall(์žฌํ˜„์œจ)๊ณผ Throughput(์ฒ˜๋ฆฌ๋Ÿ‰, QPS)์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๊ฐ€ ํ•ต์‹ฌ์ธ๋ฐ, Recall์„ ๋†’์ด๋ ค๋ฉด ๋” ๋„“์€ ๋ฒ”์œ„๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๊ณ  ๊ทธ๋งŒํผ ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

2๋‹จ๊ณ„ โ€” ์งˆ์˜: ์‚ฌ์šฉ์ž์˜ ์งˆ์˜๋ฅผ ๋™์ผํ•œ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ๋กœ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค, ์ธ๋ฑ์Šค๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ๋ฒกํ„ฐ๋“ค์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ ์ €์žฅํ•  ๋•Œ์™€ ๋™์ผํ•œ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋ธ์˜ ๋ฒกํ„ฐ๋Š” ๊ฐ™์€ ๊ณต๊ฐ„์— ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋น„๊ต ์ž์ฒด๊ฐ€ ๋ฌด์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

3๋‹จ๊ณ„ โ€” ํ›„์ฒ˜๋ฆฌ: ๊ฒ€์ƒ‰๋œ ๊ฒฐ๊ณผ์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์žฌ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. Career Agent์—์„œ โ€œ์„œ์šธ ์ง€์—ญ ๋ฐฑ์—”๋“œ ๊ณต๊ณ โ€๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ, ๋ฒกํ„ฐ ์œ ์‚ฌ๋„๋กœ ํ›„๋ณด๋ฅผ ๋ฝ‘๋˜ โ€œ์ง€์—ญ=์„œ์šธโ€ ์กฐ๊ฑด์„ ์ถ”๊ฐ€ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ›„์ฒ˜๋ฆฌ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋Š” ํ›„์ฒ˜๋ฆฌ์—์„œ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ, ์ „์ฒ˜๋ฆฌ์—์„œ ์šฐ์„  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.)

ํ˜„์žฌ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Milvus : ์˜คํ”ˆ์†Œ์Šค์ด๋ฉฐ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ์ˆ˜์‹ญ์–ต ๊ทœ๋ชจ์˜ ๋ฒกํ„ฐ๊นŒ์ง€ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์–ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ๋•์…˜์— ์ ํ•ฉ
  • Pinecone : ์™„์ „ ๊ด€๋ฆฌํ˜• ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋กœ ์ธํ”„๋ผ ์šด์˜ ๋ถ€๋‹ด ์—†์ด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ๋‹ค๋งŒ ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜๊ณ  ๋ฒค๋” ์ข…์†์„ฑ์ด ์žˆ์Œ
  • Weaviate : ๋ฒกํ„ฐํ™” ๋ชจ๋“ˆ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด ๋ณ„๋„ ์ž„๋ฒ ๋”ฉ ํŒŒ์ดํ”„๋ผ์ธ ์—†์ด๋„ ํ…์ŠคํŠธ๋ฅผ ๋ฐ”๋กœ ๋ฒกํ„ฐ๋กœ ๋ณ€ํ™˜ยท๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ
  • Qdrant : Rust ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณ ์„ฑ๋Šฅยท์ €์ง€์—ฐ ๊ฒ€์ƒ‰์— ๊ฐ•์ . ํ•„ํ„ฐ๋ง๊ณผ ํŽ˜์ด๋กœ๋“œ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ๋„ ์šฐ์ˆ˜
  • ChromaDB : ๊ฒฝ๋Ÿ‰ ์„ค๊ณ„๋กœ ๋กœ์ปฌ ํ”„๋กœํ† ํƒ€์ดํ•‘๊ณผ ๋น ๋ฅธ ์‹คํ—˜์— ์ ํ•ฉ. ํ”„๋กœ๋•์…˜ ๊ทœ๋ชจ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Œ
  • OpenSearch : ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰(BM25)๊ณผ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰(k-NN)์„ ๋™์‹œ์— ์ง€์›ํ•˜๋Š” ๋ช‡ ์•ˆ ๋˜๋Š” ์—”์ง„ ์ค‘ ํ•˜๋‚˜. ๊ธฐ์กด ๊ฒ€์ƒ‰ ์ธํ”„๋ผ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ณ„๋„ ๋ฒกํ„ฐ DB ์—†์ด ํ™•์žฅํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

Career Agent์—์„œ๋Š” ์ด๋ฏธ OpenSearch๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ณ„๋„์˜ ๋ฒกํ„ฐ DB๋ฅผ ๋„์ž…ํ•˜์ง€ ์•Š๊ณ  k-NN ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ๊ธฐ์กด ์ธํ”„๋ผ๋ฅผ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰๊ณผ ๋ฆฌ๋žญํ‚น

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ + ๋ฆฌ๋žญํ‚น

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ + ๋ฆฌ๋žญํ‚น

Q. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‘˜ ์ค‘ ๋ญ˜ ์จ์•ผ ํ• ๊นŒ์š”?

์ •๋‹ต์€ โ€œ๋‘˜ ๋‹คโ€์ž…๋‹ˆ๋‹ค. ์ตœ๊ทผ์—๋Š” ๋‘ ๋ฐฉ์‹์„ ๊ฒฐํ•ฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์ด ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋น„์šฉ์ด ์ ์€ ์šฉ์–ด ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์œผ๋กœ ํ›„๋ณด๊ตฐ์„ ์ถ”๋ ค๋‚ด๊ณ , ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ์ž„๋ฒ ๋”ฉ ๊ฒ€์ƒ‰์œผ๋กœ ์ตœ์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด์ฃ .

๋ฆฌ๋žญํ‚น(Re-ranking)์€ ๊ฒ€์ƒ‰์˜ ์ •ํ™•๋„๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ๋†’์—ฌ์ฃผ๋Š” ์ตœ์ข… ๊ฒ€์ˆ˜ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰๋งŒ์œผ๋กœ๋„ ๋‹จ์ผ ๊ฒ€์ƒ‰๊ธฐ๋ณด๋‹ค ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ํ›„๋ณด๊ตฐ์ด ์ˆ˜๋ฐฑ ๊ฑด์ด ๋„˜์–ด๊ฐ€๋ฉด ์—ฌ์ „ํžˆ ๋…ธ์ด์ฆˆ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋žญํ‚น์€ ์ด ํ›„๋ณด๊ตฐ์„ ํ•œ ๋ฒˆ ๋” ๊ฑธ๋Ÿฌ์„œ ์ง„์งœ ๊ด€๋ จ ์žˆ๋Š” ๋ฌธ์„œ๋งŒ ๋ชจ๋ธ์— ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

Bi-Encoder vs Cross-Encoder

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰๊ณผ ๋ฆฌ๋žญํ‚น์„ ์ดํ•ดํ•˜๋ ค๋ฉด, ๊ทธ ๋’ค์—์„œ ๋™์ž‘ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์˜ ์ฐจ์ด๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”์ด-์ธ์ฝ”๋”(Bi-Encoder)๋Š” ์งˆ์˜์™€ ๋ฌธ์„œ๋ฅผ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์ธ์ฝ”๋”ฉํ•˜์—ฌ ๋ฒกํ„ฐ๋ฅผ ๋งŒ๋“  ๋’ค, ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ๋“ฑ์œผ๋กœ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ์งˆ์˜์™€ ๋ฌธ์„œ๊ฐ€ ์„œ๋กœ์˜ ์กด์žฌ๋ฅผ ๋ชจ๋ฅธ ์ฑ„ ๊ฐ๊ฐ ์ž„๋ฒ ๋”ฉ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋ฌธ์„œ ๋ฒกํ„ฐ๋ฅผ ์‚ฌ์ „์— ๊ณ„์‚ฐํ•˜์—ฌ ์ธ๋ฑ์‹ฑํ•ด ๋‘˜ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฒ€์ƒ‰ ์‹œ์—๋Š” ์งˆ์˜๋งŒ ์ธ์ฝ”๋”ฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋ฐฑ๋งŒ~์ˆ˜์–ต ๊ฑด์˜ ๋ฌธ์„œ์—์„œ๋„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

ํฌ๋กœ์Šค-์ธ์ฝ”๋”(Cross-Encoder)๋Š” ์งˆ์˜์™€ ๋ฌธ์„œ๋ฅผ ํ•˜๋‚˜์˜ ์ž…๋ ฅ([CLS] query [SEP] document [SEP])์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ชจ๋ธ์— ๋„ฃ๊ณ , ๊ด€๋ จ์„ฑ ์ ์ˆ˜๋ฅผ ์ง์ ‘ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์งˆ์˜์™€ ๋ฌธ์„œ์˜ ๋ชจ๋“  ํ† ํฐ์ด Self-Attention์„ ํ†ตํ•ด ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, "๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž"์™€ "์„œ๋ฒ„ ์—”์ง€๋‹ˆ์–ด"์ฒ˜๋Ÿผ ํ‘œ๋ฉด์ ์œผ๋กœ ๋‹ค๋ฅด์ง€๋งŒ ์˜๋ฏธ๊ฐ€ ๊ฐ™์€ ํ‘œํ˜„๋„ ์ •ํ™•ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•๋„ ์ฐจ์ด์˜ ํ•ต์‹ฌ์€ ์ •๋ณด ๋ณ‘๋ชฉ(Information Bottleneck)์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”์ด-์ธ์ฝ”๋”๋Š” ์ „์ฒด ๋ฌธ์žฅ์„ ํ•˜๋‚˜์˜ ๊ณ ์ • ๋ฒกํ„ฐ(์˜ˆ: 1024์ฐจ์›)๋กœ ์••์ถ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์•„๋ฌด๋ฆฌ ๋ฒกํ„ฐ ์ฐจ์›์ด ๋†’์•„๋„ ์›๋ฌธ์˜ ๋ชจ๋“  ๋‰˜์•™์Šค๋ฅผ ๋‹ด๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ํฌ๋กœ์Šค-์ธ์ฝ”๋”๋Š” ์›๋ฌธ ํ† ํฐ๋“ค์ด ์ง์ ‘ ๋งŒ๋‚˜๋ฏ€๋กœ ์ •๋ณด ์†์‹ค์ด ์ ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ๋ฐ”์ด-์ธ์ฝ”๋”๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์˜ Dense Retrieval ์ถ•์„ ๋‹ด๋‹นํ•˜๊ณ (BM25๊ฐ€ Sparse ์ถ•), ํฌ๋กœ์Šค-์ธ์ฝ”๋”๋Š” ๋ฆฌ๋žญํ‚น ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ „ ์ธ๋ฑ์‹ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํฌ๋กœ์Šค-์ธ์ฝ”๋”๋ฅผ 1์ฐจ ๊ฒ€์ƒ‰์— ์“ฐ๋Š” ๊ฒƒ์€ ์‚ฌ์‹ค์ƒ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‹ค๋‹จ๊ณ„ ํ“จ๋„ (funnel)

์‹ค์ œ๋กœ ๋ฆฌ๋žญํ‚น ํŒŒ์ดํ”„๋ผ์ธ์€ ๋‹จ๊ณ„๋ณ„๋กœ ๋น„์šฉ๊ณผ ์ •๋ฐ€๋„์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋Š” ๋‹ค๋‹จ๊ณ„ ํ“จ๋„(funnel) ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ + ๋ฆฌ๋žญํ‚น + LLM ๋ถ„์„

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰ + ๋ฆฌ๋žญํ‚น + LLM ๋ถ„์„

1์ฐจ โ€” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์œผ๋กœ ํ›„๋ณด ์ถ”์ถœ: ์šฉ์–ด ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰๊ณผ ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜์—ฌ Top 100 ์ •๋„์˜ ํ›„๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ถ”๋ ค๋ƒ…๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์˜ ๋ชฉํ‘œ๋Š” ์ •๋ฐ€๋„๋ณด๋‹ค ์žฌํ˜„์œจ(recall), ์ฆ‰ ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋น ๋œจ๋ฆฌ์ง€ ์•Š๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”์ด-์ธ์ฝ”๋”(Bi-encoder) ๋ฐฉ์‹์œผ๋กœ ์งˆ์˜์™€ ๋ฌธ์„œ๋ฅผ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์ž„๋ฒ ๋”ฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋น ๋ฅด์ง€๋งŒ, ์งˆ์˜์™€ ๋ฌธ์„œ ๊ฐ„์˜ ์„ธ๋ฐ€ํ•œ ์ƒํ˜ธ์ž‘์šฉ์€ ํฌ์ฐฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

2์ฐจ โ€” Cross-encoder ๋ฆฌ๋žญํ‚น: 1์ฐจ์—์„œ ๋ฝ‘์€ ํ›„๋ณด๋“ค์„ ๋” ์ •๊ตํ•œ ๋ชจ๋ธ๋กœ ๋‹ค์‹œ ์ ์ˆ˜ํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋žญํ‚น์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • Cross-Encoder ๋ฆฌ๋žญํ‚น โ€” ์งˆ์˜์™€ ๋ฌธ์„œ๋ฅผ ํ•˜๋‚˜์˜ ์ž…๋ ฅ์œผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ ํ† ํฐ ์ˆ˜์ค€์—์„œ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. โ€œ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์žโ€๋ผ๋Š” ์งˆ์˜์™€ โ€œ์„œ๋ฒ„ ์—”์ง€๋‹ˆ์–ด๋ฅผ ๋ชจ์ง‘ํ•ฉ๋‹ˆ๋‹คโ€๋ผ๋Š” ๋ฌธ์„œ๊ฐ€ ์žˆ์„ ๋•Œ, ๋ฐ”์ด-์ธ์ฝ”๋”๋Š” ๊ฐ๊ฐ์„ ๋ณ„๋„๋กœ ์ž„๋ฒ ๋”ฉํ•˜์ง€๋งŒ, ํฌ๋กœ์Šค-์ธ์ฝ”๋”๋Š” ๋‘˜์„ ๋‚˜๋ž€ํžˆ ๋†“๊ณ  ์˜๋ฏธ์  ๊ด€๊ณ„๋ฅผ ์ง์ ‘ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์ด ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์•„(์ˆ˜๋ฐฑMB) ์ถ”๋ก  ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ , fine-tuning๋„ ๋น„๊ต์  ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ชจ๋“  ํ›„๋ณด์— ๋Œ€ํ•ด ๊ฐœ๋ณ„ ์ถ”๋ก ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ, 1์ฐจ์—์„œ ํ›„๋ณด๋ฅผ ๋จผ์ € ์ขํžˆ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • LLM ๋ฆฌ๋žญํ‚น โ€” RankGPT์ฒ˜๋Ÿผ LLM์—๊ฒŒ ๋ฌธ์„œ ๋ชฉ๋ก์„ ์ฃผ๊ณ  ๊ด€๋ จ์„ฑ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. fine-tuning ์—†์ด๋„ zero-shot์œผ๋กœ ๋†’์€ ํ’ˆ์งˆ์˜ ๋ฆฌ๋žญํ‚น์ด ๊ฐ€๋Šฅํ•˜๊ณ , ๋ณต์žกํ•œ ์˜๋ฏธ์  ๋‰˜์•™์Šค ํŒŒ์•…์— ๊ฐ•ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ API ํ˜ธ์ถœ ๋น„์šฉ๊ณผ ์ง€์—ฐ ์‹œ๊ฐ„์ด ํฌ๊ณ , ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ ์ œํ•œ์œผ๋กœ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ ์ˆ˜์— ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ๋ฐฉ์‹์ด๋“  ๋ฆฌ๋žญํ‚น์˜ ์ถœ๋ ฅ์€ ์žฌ์ •๋ ฌ๋œ ๋ฌธ์„œ ์ˆœ์„œ์ผ ๋ฟ, ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์„ ๋†’์ด๋Š” ์ž‘์—…์ด๋ฏ€๋กœ, ๊ฒ€์ƒ‰ ์„œ๋ฒ„์˜ ์˜์—ญ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌ๋žญํ‚น์„ ์ง์ ‘ ๊ตฌํ˜„ํ•  ํ•„์š” ์—†์ด, ์ด๋ฏธ ์ƒ์šฉํ™”๋œ ๋ชจ๋ธ๊ณผ ์„œ๋น„์Šค๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ๋“ค์„ ๊ฐ„๋‹จํžˆ ์†Œ๊ฐœํ•˜๋ฉด:

  • Cohere Rerank: API ํ˜ธ์ถœ ํ•œ ๋ฒˆ์œผ๋กœ ์งˆ์˜์™€ ๋ฌธ์„œ ๋ชฉ๋ก์„ ๋ณด๋‚ด๋ฉด ๊ด€๋ จ์„ฑ ์ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด ์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ๋ชจ๋ธ ์šด์˜ ์—†์ด ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๋„์ž… ์žฅ๋ฒฝ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค.
  • Jina Reranker / Voyage AI Rerank: ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ API ํ˜•ํƒœ๋กœ ๋ฆฌ๋žญํ‚น ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋‹ค๊ตญ์–ด ์ง€์›์ด๋‚˜ ํŠน์ • ๋„๋ฉ”์ธ์— ํŠนํ™”๋œ ๋ชจ๋ธ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • BGE-reranker / ms-marco-MiniLM: Hugging Face์— ๊ณต๊ฐœ๋œ ์˜คํ”ˆ์†Œ์Šค ํฌ๋กœ์Šค-์ธ์ฝ”๋” ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ์ง์ ‘ ํ˜ธ์ŠคํŒ…ํ•ด์•ผ ํ•˜์ง€๋งŒ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ์ž์œ ๋กญ๊ณ  ๋น„์šฉ์„ ํ†ต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • OpenSearch ML ํ”Œ๋Ÿฌ๊ทธ์ธ: OpenSearch ํ™˜๊ฒฝ์ด๋ผ๋ฉด ๊ฒ€์ƒ‰ ํŒŒ์ดํ”„๋ผ์ธ ์•ˆ์—์„œ ๋ฆฌ๋žญํ‚น ๋ชจ๋ธ์„ ๋ฐ”๋กœ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์–ด, ๋ณ„๋„์˜ ์™ธ๋ถ€ ์„œ๋น„์Šค ํ˜ธ์ถœ ์—†์ด ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

3์ฐจ โ€” LLM ๊ธฐ๋ฐ˜ ์ •๋ฐ€ ๋ถ„์„: ํฌ๋กœ์Šค-์ธ์ฝ”๋”๋กœ ์ขํ˜€์ง„ Top 10~20๊ฐœ ๋ฌธ์„œ์— ๋Œ€ํ•ด์„œ๋งŒ LLM์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. LLM์€ ๋‹จ์ˆœ ์œ ์‚ฌ๋„๋ฅผ ๋„˜์–ด ์งˆ์˜์˜ ์˜๋„์™€ ๋งฅ๋ฝ๊นŒ์ง€ ๊ณ ๋ คํ•œ ํŒ๋‹จ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, โ€œ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝโ€์ด๋ผ๋Š” ์งˆ์˜์— ๋Œ€ํ•ด ๋‹จ์ˆœํžˆ โ€œ์„ฑ์žฅโ€์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ๋Š” ๊ณต๊ณ ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ฉ˜ํ† ๋ง ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๊ต์œก ์ง€์› ์ œ๋„๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š” ๊ณต๊ณ ๋ฅผ ๋” ๋†’๊ฒŒ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„์šฉ์ด ๊ฐ€์žฅ ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์†Œ์ˆ˜์˜ ์ตœ์ข… ํ›„๋ณด์—๋งŒ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ RAG ํŒŒ์ดํ”„๋ผ์ธ์ด 1์ฐจ(ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰) + 2์ฐจ(๋ฆฌ๋žญํ‚น)๊นŒ์ง€๋งŒ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋ฆฌ๋žญํ‚น๋œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ LLM์˜ ์ปจํ…์ŠคํŠธ์— ๋„ฃ์–ด ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

LLM์€ ์–ด๋””์— ์žˆ๋Š” ๊ฑธ๊นŒ?

์—ฌ๊ธฐ์„œ ํ•œ ๊ฐ€์ง€ ์งš๊ณ  ๋„˜์–ด๊ฐˆ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰๊ณผ ๋ฆฌ๋žญํ‚น(LLM Reranking ํฌํ•จ)๊นŒ์ง€๋Š” ๊ฒ€์ƒ‰ ์„œ๋ฒ„์˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค. ์ถœ๋ ฅ์ด โ€œ์ •๋ ฌ๋œ ๋ฌธ์„œ ๋ชฉ๋กโ€์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ๋ฌธ์„œ๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜๊ณ , ๋‹ต๋ณ€์˜ ํ’ˆ์งˆ์„ ๊ฒ€์ฆํ•˜๋Š” ๊ฒƒ์€ ์—์ด์ „ํŠธ ์„œ๋ฒ„์˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค.

์ €๋„ ์ฒ˜์Œ์— ์˜คํ•ดํ–ˆ๋˜ ๋ถ€๋ถ„์ธ๋ฐ, ์—์ด์ „ํŠธ ์„œ๋ฒ„์™€ RAG ๊ฒ€์ƒ‰ ์„œ๋ฒ„๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ฒ€์ƒ‰ ์„œ๋ฒ„ ์•ˆ์—์„œ๋„ LLM์„ ๋Œ๋ ค์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰๋œ ์ฒญํฌ์— ๋Œ€ํ•œ ์‘๋‹ต ์ƒ์„ฑ๊นŒ์ง€ ๊ฒ€์ƒ‰ ์„œ๋ฒ„๊ฐ€ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ์ž์—ฐ์Šค๋Ÿฌ์›Œ ๋ณด์˜€๊ฑฐ๋“ ์š”. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ์—ญํ• ์ด ๋ช…ํ™•ํžˆ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

  • ๊ฒ€์ƒ‰ ์„œ๋ฒ„ โ€” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰, ๋ฆฌ๋žญํ‚น(Cross-Encoder ๋˜๋Š” LLM Reranking)์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ด€๋ จ์„ฑ ๋†’์€ ์ฒญํฌ๋ฅผ ์ •๋ ฌยท๋ฐ˜ํ™˜
  • ์—์ด์ „ํŠธ ์„œ๋ฒ„ โ€” ๋ฐ˜ํ™˜๋œ ์ฒญํฌ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ LLM์ด ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜๊ณ , ๋‹ต๋ณ€์ด ๊ทผ๊ฑฐ์— ์˜ํ•ด ๋’ท๋ฐ›์นจ๋˜๋Š”์ง€ ํ’ˆ์งˆ์„ ๊ฒ€์ฆ

๊ฐ™์€ LLM์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„, ๊ฒ€์ƒ‰ ์„œ๋ฒ„์—์„œ๋Š” โ€œ์ด ๋ฌธ์„œ๋“ค์˜ ์ˆœ์„œ๋ฅผ ๋งค๊ฒจ๋ผโ€(๋ฆฌ๋žญํ‚น)๋ผ๊ณ  ์š”์ฒญํ•˜๊ณ , ์—์ด์ „ํŠธ ์„œ๋ฒ„์—์„œ๋Š” โ€œ์ด ๋ฌธ์„œ๋“ค์„ ์ฐธ๊ณ ํ•ด์„œ ์งˆ๋ฌธ์— ๋‹ตํ•ด๋ผโ€(๋‹ต๋ณ€ ์ƒ์„ฑ)๋ผ๊ณ  ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ์ ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์„œ๋ฒ„๋„ ๋ถ„๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

Agentic RAG๋กœ์˜ ํ™•์žฅ

์ด 3์ฐจ LLM ๋ถ„์„์„ ๋” ์ •๊ตํ•˜๊ฒŒ ๋ฐœ์ „์‹œํ‚ค๋ฉด, ์ตœ๊ทผ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ๋Š” Agentic RAG ํŒจํ„ด์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ โ€œ๊ฒ€์ƒ‰ โ†’ ์ƒ์„ฑโ€์ด๋ผ๋Š” ์ผ์ง์„  ํŒŒ์ดํ”„๋ผ์ธ์ด ์•„๋‹ˆ๋ผ, ์—์ด์ „ํŠธ๊ฐ€ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ๋ถ€์กฑํ•˜๋ฉด ์งˆ์˜๋ฅผ ์žฌ์ž‘์„ฑํ•˜์—ฌ ๋‹ค์‹œ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜, ์งˆ๋ฌธ ์œ ํ˜•์— ๋”ฐ๋ผ ๋ฒกํ„ฐ DBยทSQL DBยท์›น ๊ฒ€์ƒ‰ ๋“ฑ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ๋™์ ์œผ๋กœ ์„ ํƒํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

์ด ๋ฐฉํ–ฅ์œผ๋กœ ๋ฐœ์ „ํ•œ ๋Œ€ํ‘œ์ ์ธ ์—ฐ๊ตฌ ๋‘ ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜๋ฉด:

  • CRAG(Corrective RAG) โ€” Yan et al.์ด ์ œ์•ˆํ•œ ๋ฐฉ์‹์œผ๋กœ, ๊ฒ€์ƒ‰๋œ ๋ฌธ์„œ์˜ ๊ด€๋ จ์„ฑ์„ ๊ฒฝ๋Ÿ‰ ํ‰๊ฐ€ ๋ชจ๋ธ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. โ€œ๊ด€๋ จ ์žˆ์Œ โ†’ ๋ฐ”๋กœ ์ƒ์„ฑโ€, โ€œ๊ด€๋ จ ์—†์Œ โ†’ ์›น ๊ฒ€์ƒ‰์œผ๋กœ ๋Œ€์ฒดโ€, โ€œ์• ๋งคํ•จ โ†’ ๋‘˜ ๋‹ค ํ™œ์šฉโ€์œผ๋กœ ๋ถ„๊ธฐํ•˜์—ฌ, ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์ด ๋‚ฎ์„ ๋•Œ ์ž๋™์œผ๋กœ ๋ณด์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Self-RAG โ€” Asai et al.์ด ์ œ์•ˆํ•œ ๋ฐฉ์‹์œผ๋กœ, LLM ์ž์ฒด๊ฐ€ reflection token์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. โ€œ์ง€๊ธˆ ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•œ๊ฐ€?โ€, โ€œ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๊ด€๋ จ ์žˆ๋Š”๊ฐ€?โ€, โ€œ์ƒ์„ฑํ•œ ๋‹ต๋ณ€์ด ๊ทผ๊ฑฐ์— ์˜ํ•ด ๋’ท๋ฐ›์นจ๋˜๋Š”๊ฐ€?โ€๋ฅผ ๋ชจ๋ธ ์Šค์Šค๋กœ ํŒ๋‹จํ•˜์—ฌ, ์™ธ๋ถ€ ํ‰๊ฐ€ ๋ชจ๋ธ ์—†์ด๋„ ์ž๊ธฐ ๊ต์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์กฐ๊ฑด ๋ถ„๊ธฐ์™€ ๋ฐ˜๋ณต์ด ํ•„์š”ํ•œ ํ๋ฆ„์€ ์ผ์ง์„ ์˜ ์ฒด์ธ(chain)์œผ๋กœ๋Š” ํ‘œํ˜„ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. LangGraph ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ฃผ๋ชฉ๋ฐ›๋Š” ์ด์œ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ(state)๋ฅผ ๊ฐ€์ง„ ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋กœ โ€œ๊ฒ€์ƒ‰ โ†’ ํ‰๊ฐ€ โ†’ ๊ด€๋ จ ์—†์œผ๋ฉด ์งˆ์˜ ์žฌ์ž‘์„ฑ โ†’ ์žฌ๊ฒ€์ƒ‰โ€๊ณผ ๊ฐ™์€ ์ˆœํ™˜ ํ๋ฆ„์„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๋ฅผ ์กฐํ•ฉํ•œ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ๊ตฌ์กฐ๋กœ ๋” ์ •๊ตํ•œ Agentic RAG๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์—ญ์ˆœ์œ„ ํ“จ์ „(RRF)์œผ๋กœ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๊ฒฐํ•ฉํ•˜๊ธฐ

์—ฌ๋Ÿฌ ๊ฒ€์ƒ‰๊ธฐ๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•ด ํ›„๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ, ๋‹ค์–‘ํ•œ ์ˆœ์œ„๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ตœ์ข… ์ˆœ์œ„๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์—ญ์ˆœ์œ„ ํ“จ์ „(Reciprocal Rank Fusion, RRF)์ด๋ผ ํ•˜๋ฉฐ, ๊ฐ ๊ฒ€์ƒ‰๊ธฐ์—์„œ ๋ฐ›์€ ์ˆœ์œ„๋ฅผ ์ ์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค ํ•ฉ์‚ฐํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด โ€œ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์„œ์šธโ€์ด๋ผ๋Š” ์งˆ์˜์— ๋Œ€ํ•ด ์šฉ์–ด ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰๊ณผ ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์„ ๋™์‹œ์— ์‹คํ–‰ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์—ญ์ˆœ์œ„ ํ“จ์ „ ๊ณ„์‚ฐ๋ฒ•

์—ญ์ˆœ์œ„ ํ“จ์ „ ๊ณ„์‚ฐ๋ฒ•

๊ณต๊ณ  A๋Š” ๋‘ ๊ฒ€์ƒ‰๊ธฐ ๋ชจ๋‘์—์„œ ์ƒ์œ„๊ถŒ์— ๋“ฑ์žฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ข… 1์œ„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด ๊ณต๊ณ  B์™€ D๋Š” ํ•œ์ชฝ ๊ฒ€์ƒ‰๊ธฐ์—์„œ๋งŒ ๋‚˜ํƒ€๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ์ ์ˆ˜๊ฐ€ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ๊ฒ€์ƒ‰๊ธฐ์˜ โ€œ์˜๊ฒฌโ€์„ ์ข…ํ•ฉํ•˜๋ฉด, ๋‹จ์ผ ๊ฒ€์ƒ‰๊ธฐ๋ณด๋‹ค ๋” ๊ท ํ˜• ์žกํžŒ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ๏ธ ์งˆ์˜ ์ „๋žต: ์ข‹์€ ์งˆ์˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฒ•

Career Agent์—์„œ ํŠนํžˆ ์ค‘์š”ํ–ˆ๋˜ ์˜์—ญ์ž…๋‹ˆ๋‹ค. ๊ตฌ์ง์ž๋“ค์˜ ์งˆ๋ฌธ์€ ๋Œ€๋ถ€๋ถ„ โ€œ์›Œ๋ผ๋ฐธ ์ข‹์€ ๊ณณ ์ฐพ์•„์ค˜โ€์ฒ˜๋Ÿผ ์ถ”์ƒ์ ์ด๊ฑฐ๋‚˜, โ€œPD ์ฑ„์šฉ๊ณต๊ณ โ€์ฒ˜๋Ÿผ ์งง๊ณ  ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์•„๋ฌด๋ฆฌ ๊ฒ€์ƒ‰ ์—”์ง„์ด ๋›ฐ์–ด๋‚˜๋„, ์งˆ์˜ ์ž์ฒด๊ฐ€ ๋ถ€์‹คํ•˜๋ฉด ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์งˆ์˜ ์ „๋žต์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ์ ‘๊ทผ๋ฒ•์„ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค.

์งˆ์˜ ์žฌ์ž‘์„ฑ(Query Rewriting) โ€” ์งˆ๋ฌธ์„ ๋‹ค๋“ฌ๊ธฐ

๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์ „๋žต์œผ๋กœ, ํˆฌ๋ฐ•ํ•œ ์งˆ๋ฌธ์„ ๊ฒ€์ƒ‰๊ธฐ๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์ข‹์€ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

  • ๋ชจํ˜ธํ•จ ์ œ๊ฑฐ: โ€œ๊ทธ๊ฑฐ ์–ด๋–ป๊ฒŒ ํ•ด?โ€์—์„œ โ€˜๊ทธ๊ฑฐโ€™๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ด์ „ ๋Œ€ํ™” ๋งฅ๋ฝ์„ ํŒŒ์•…ํ•ด ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
  • ์–ดํœ˜ ๋ถˆ์ผ์น˜ ํ•ด๊ฒฐ: ์‚ฌ์šฉ์ž๋Š” โ€œ์›Œ๋ผ๋ฐธ ์ข‹์€ ๊ณณโ€์ด๋ผ๊ณ  ํ–ˆ์ง€๋งŒ ๊ณต๊ณ ์—๋Š” โ€œ์œ ์—ฐ๊ทผ๋ฌดโ€, โ€œ์•ผ๊ทผ์—†์Œโ€์œผ๋กœ ์ ํ˜€ ์žˆ์„ ๋•Œ ์ด๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

Career Agent์—์„œ๋„ โ€œ์›Œ๋ผ๋ฐธ ์ข‹์€ ๊ณต๊ณ  ์ฐพ์•„์ค˜โ€๋ผ๋Š” ์ถ”์ƒ์  ์š”์ฒญ์„ โ€œ์•ผ๊ทผ์—†์Œโ€, โ€œ์œ ์—ฐ๊ทผ๋ฌดโ€, โ€œ์ฃผ 4.5์ผ ๊ทผ๋ฌดโ€์™€ ๊ฐ™์€ ๊ตฌ์ฒด์  ํ‚ค์›Œ๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ์งˆ์˜ ์žฌ์ž‘์„ฑ์˜ ์ ์šฉ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.

Multi Query โ€” ๊ฐ™์€ ์งˆ๋ฌธ์„ ์—ฌ๋Ÿฌ ๊ด€์ ์œผ๋กœ

์งˆ์˜ ์žฌ์ž‘์„ฑ์ด ์งˆ๋ฌธ์„ โ€œ๋‹ค๋“ฌ๋Š”โ€ ๊ฒƒ์ด๋ผ๋ฉด, Multi Query๋Š” ํ•˜๋‚˜์˜ ์งˆ๋ฌธ์„ ์—ฌ๋Ÿฌ ๊ด€์ ์œผ๋กœ ํ™•์žฅํ•˜๋Š” ์ „๋žต์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด โ€œ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํšŒ์‚ฌ ์ถ”์ฒœํ•ด์ค˜โ€๋ผ๋Š” ์งˆ์˜๊ฐ€ ๋“ค์–ด์˜ค๋ฉด:

  • โ€œ๊ต์œก ์ง€์› ์ œ๋„๊ฐ€ ์žˆ๋Š” ํšŒ์‚ฌโ€
  • โ€œ๋ฉ˜ํ† ๋ง ํ”„๋กœ๊ทธ๋žจ ์šด์˜ํ•˜๋Š” ๊ธฐ์—…โ€
  • โ€œ์‚ฌ๋‚ด ์Šคํ„ฐ๋”” ํ™œ์„ฑํ™”๋œ ํšŒ์‚ฌโ€

์ด๋ ‡๊ฒŒ ์„ธ ๊ฐ€์ง€ ์งˆ์˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ณ„๋„๋กœ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ โ€œ์„ฑ์žฅโ€์ด๋ผ๊ณ  ํ–ˆ์„ ๋•Œ ์ฑ„์šฉ๊ณต๊ณ ์—๋Š” โ€œ๊ต์œกโ€, โ€œ๋ฉ˜ํ† ๋งโ€, โ€œ์Šคํ„ฐ๋””โ€ ๋“ฑ ๋‹ค์–‘ํ•œ ํ‘œํ˜„์œผ๋กœ ์ ํ˜€ ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ•˜๋‚˜์˜ ํ‘œํ˜„์œผ๋กœ๋Š” ๋†“์น  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์„œ๋ฅผ ์—ฌ๋Ÿฌ ๊ด€์ ์—์„œ ์žก์•„๋‚ด๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค. ๊ฐ ์งˆ์˜๊ฐ€ ๋…๋ฆฝ์ ์ด๋ฏ€๋กœ ๋ณ‘๋ ฌ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์žฌํ˜„์œจ(recall)์„ ๋†’์ด๋Š” ๋ฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

Decomposition โ€” ๋ณต์žกํ•œ ์งˆ๋ฌธ์„ ๋‚˜๋ˆ ์„œ ํ•ด๊ฒฐ

Multi Query์™€ ๋น„์Šทํ•ด ๋ณด์ด์ง€๋งŒ, ํ•ต์‹ฌ ์ฐจ์ด๋Š” ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์งˆ๋ฌธ ์ž์ฒด๋ฅผ ๋‹ค๋ฅธ ํ•˜์œ„ ์งˆ๋ฌธ์œผ๋กœ ๋ถ„ํ•ดํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. โ€œ์„œ์šธ์—์„œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ 3๋…„ ๊ฒฝ๋ ฅ์ด๋ฉด ์—ฐ๋ด‰์ด ์–ผ๋งˆ๋‚˜ ๋˜๊ณ , ์„ฑ์žฅ ๊ฐ€๋Šฅ์„ฑ์ด ์ข‹์€ ํšŒ์‚ฌ๋Š” ์–ด๋””์•ผ?โ€๋ผ๋Š” ์งˆ๋ฌธ์ด ๋“ค์–ด์™”๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ์งˆ๋ฌธ ํ•˜๋‚˜๋กœ๋Š” ๊ฒ€์ƒ‰๊ธฐ๊ฐ€ ์–ด๋–ค ์ •๋ณด๋ฅผ ์ฐพ์•„์•ผ ํ• ์ง€ ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ๋ถ„ํ•ดํ•˜๋ฉด:

  1. โ€œ์„œ์šธ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž 3๋…„ ๊ฒฝ๋ ฅ ํ‰๊ท  ์—ฐ๋ด‰์€?โ€ โ†’ ๊ฒ€์ƒ‰ โ†’ ๋‹ต๋ณ€
  2. โ€œ์„œ์šธ ๋ฐฑ์—”๋“œ ์„ฑ์žฅ ๊ฐ€๋Šฅ์„ฑ ์ข‹์€ ํšŒ์‚ฌ๋Š”?โ€ โ†’ ๊ฒ€์ƒ‰ โ†’ ๋‹ต๋ณ€
  3. 1๋ฒˆ๊ณผ 2๋ฒˆ ๊ฒฐ๊ณผ๋ฅผ ์ข…ํ•ฉํ•˜์—ฌ ์ตœ์ข… ๋‹ต๋ณ€ ์ƒ์„ฑ

ํ•˜์œ„ ์งˆ๋ฌธ ๊ฐ„์— ์˜์กด ๊ด€๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์–ด ์ˆœ์ฐจ ์‹คํ–‰์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , ์ตœ์ข…์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋‹ต๋ณ€์„ ์ข…ํ•ฉํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Decomposition์€ ๋‹จ์ˆœํ•œ ์งˆ์˜ ์ „๋žต๋ณด๋‹ค๋Š” ์•ž์„œ ์†Œ๊ฐœํ•œ Agentic RAG์˜ ์˜์—ญ์— ๋” ๊ฐ€๊น์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ์งˆ๋ฌธ์„ ๋ถ„ํ•ดํ•˜๊ณ , ๋‹จ๊ณ„์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ, ์ตœ์ข… ๋‹ต๋ณ€์„ ์กฐํ•ฉํ•˜๋Š” ํ๋ฆ„์ด๋‹ˆ๊นŒ์š”.

๐Ÿ‘‹ ๋งˆ์ง€๋ง‰์œผ๋กœ

RAG๋Š” ์ฒ˜์Œ ์ ‘ํ•˜๋ฉด ๊ฐœ๋… ์ž์ฒด๊ฐ€ ์–ด๋ ต๊ฒŒ ๋А๊ปด์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฒฐ๊ตญ ํ•ต์‹ฌ์€ โ€œ์—์ด์ „ํŠธ๊ฐ€ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํ•„์š”ํ•œ ์ˆœ๊ฐ„์— ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒโ€์ž…๋‹ˆ๋‹ค. ์ฒญํ‚น ์ „๋žต, ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์งˆ์˜ ์žฌ์ž‘์„ฑ ๋“ฑ ์„ธ๋ถ€์ ์ธ ๊ฒฐ์ • ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ ๋•Œ๋ฌธ์—, ์‹œ๊ฐ„์„ ๋“ค์—ฌ ์‹คํ—˜ํ•˜๊ณ  ์ตœ์ ์˜ ์กฐํ•ฉ์„ ์ฐพ๋Š” ๊ณผ์ •์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์‹ค ์ด๋ฒˆ ๊ธ€์—์„œ ๋‹ค๋ฃฌ ๋‚ด์šฉ์€ RAG๋ผ๋Š” ๋„“์€ ์ƒํƒœ๊ณ„์˜ ๊ทนํžˆ ์ผ๋ถ€์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. Neo4j ๊ฐ™์€ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•ด ์—”ํ‹ฐํ‹ฐ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” GraphRAG, ๋ฒกํ„ฐ DB์˜ ์ฐจ์› ์ˆ˜์™€ ์ธ๋ฑ์‹ฑ ์ „๋žต์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ ํŠœ๋‹, ์–ด๋–ค ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ์„ ํƒํ•˜๋А๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒ€์ƒ‰ ํ’ˆ์งˆ ๋“ฑ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ๊ณผ ์„ ํƒ์ง€๊ฐ€ ์ •๋ง ๋งŽ์Šต๋‹ˆ๋‹ค.

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


๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
post_id
011f504fc8a2
slug
career-agent-๊ฐœ๋ฐœ๊ธฐ-4-rag-retrieval-augmented-generation-011f504fc8a2
url
https://techblog.jobkorea.co.kr/career-agent-%EA%B0%9C%EB%B0%9C%EA%B8%B0-4-rag-retrieval-augmented-generation-011f504fc8a2
canonical_url
https://techblog.jobkorea.co.kr/career-agent-%EA%B0%9C%EB%B0%9C%EA%B8%B0-4-rag-retrieval-augmented-generation-011f504fc8a2
author_url
https://medium.com/@ensu7928
status
ok
fetched_at
2026-06-20 20:29:01