๐Ÿค– 5๋‹จ๊ณ„ : RAG ๋„์ž… ๊ฐ€๋Šฅ์„ฑ ์ ๊ฒ€ - 100-hours-a-week/7-team-ddb-wiki GitHub Wiki

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๋ณธ ํ”„๋กœ์ ํŠธ๋Š” LLM ๊ธฐ๋ฐ˜ ์‚ฌ์šฉ์ž ๋งž์ถค ์žฅ์†Œ ์ถ”์ฒœ ์„œ๋น„์Šค๋กœ ์‚ฌ์šฉ์ž์˜ ์ž์—ฐ์–ด ์š”์ฒญ์„ ๋ถ„์„ํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์ทจํ–ฅ๊ณผ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” ์žฅ์†Œ๋ฅผ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ์ถ”์ฒœํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

๋”ฐ๋ผ์„œ ํ”„๋กœ์ ํŠธ์˜ ๋ชฉ์ ์€ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ์ •๋ณด ์ƒ์„ฑ์ด ์•„๋‹Œ, ์ •์ œ๋œ ์žฅ์†Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ •๋ฐ€ํ•œ ์ถ”์ฒœ์ด ํ•ต์‹ฌ



RAG๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ 

1. ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์˜ ๋ถˆํ•„์š”์„ฑ

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

2. LLM์˜ ํ™œ์šฉ ๋ชฉ์  ์ฐจ์ด

  • ๋ณธ ํ”„๋กœ์ ํŠธ์—์„œ LLM์€ ์ž์—ฐ์–ด ์š”์ฒญ์„ ๋ถ„์„ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์กฐ๊ฑด์„ ์ถ”์ถœํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉ
  • ์‹ค์ œ ์ถ”์ฒœ์€ ํ›„์† ์ฒ˜๋ฆฌ ๋กœ์ง(์˜ˆ: ๋ฒกํ„ฐ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰ + ์กฐ๊ฑด ํ•„ํ„ฐ๋ง)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ, LLM์ด ์ง์ ‘ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ฆ๊ฐ•๋œ ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‘๋‹ตํ•  ํ•„์š”๊ฐ€ ์—†์Œ


๋Œ€์ฒด ์„ค๊ณ„: ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜

์‚ฌ์šฉ ๋ฆฌ์†Œ์Šค

๊ตฌ์„ฑ ์š”์†Œ ์„ค๋ช…
๋ฒกํ„ฐ DB ์žฅ์†Œ ์„ค๋ช…, ํƒœ๊ทธ ๋“ฑ์„ ์ž„๋ฒ ๋”ฉํ•˜์—ฌ ์ €์žฅ. FAISS ๋˜๋Š” ChromaDB ํ™œ์šฉ
์ •ํ˜• DB PostgreSQL ๋“ฑ์„ ์ด์šฉํ•ด ์œ„์น˜, ํ‰์  ๋“ฑ ์žฅ์†Œ ๋ฉ”ํƒ€์ •๋ณด ์ €์žฅ
LLM ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๋ถ„์„ (ํ‚ค์›Œ๋“œ ์ถ”์ถœ, ์กฐ๊ฑด ์ •๋ฆฌ ๋“ฑ) ์šฉ๋„์—๋งŒ ํ™œ์šฉ

๋ฐ์ดํ„ฐ ํ๋ฆ„

  1. ์‚ฌ์šฉ์ž ์งˆ์˜ ์ž…๋ ฅ (์ž์—ฐ์–ด)
  2. LLM์„ ํ†ตํ•ด ์งˆ์˜์—์„œ ์กฐ๊ฑด ์ถ”์ถœ (์˜ˆ: ์žฅ์†Œ ์œ ํ˜•, ๋ถ„์œ„๊ธฐ ๋“ฑ)
  3. ์กฐ๊ฑด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฒกํ„ฐ DB์—์„œ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰ ์‹คํ–‰
  4. ์ •ํ˜• DB์™€ ์—ฐ๊ณ„ํ•˜์—ฌ ํ•„ํ„ฐ๋ง ๋ฐ ๋žญํ‚น ์ ์šฉ
  5. ์ตœ์ข… ์ถ”์ฒœ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
query = "์กฐ์šฉํ•˜๊ณ  ์ฑ… ์ฝ๊ธฐ ์ข‹์€ ์นดํŽ˜"
โ†’ LLM ๋ถ„์„ ๊ฒฐ๊ณผ: {์กฐ์šฉํ•œ, ์ฑ… ,์นดํŽ˜}
โ†’ ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ ํ›„ ๋ฒกํ„ฐ DB์—์„œ ๊ฒ€์ƒ‰
โ†’ ์œ ์‚ฌ๋„ ๋†’์€ ์žฅ์†Œ Top-K ์ถ”์ถœ
โ†’ ๋ฉ”ํƒ€ ์ •๋ณด์™€ ํ•จ๊ป˜ ์ •๋ ฌ ํ›„ ์ถ”์ฒœ


RAG ๋Œ€๋น„ ํ˜„ ๊ตฌ์กฐ์˜ ์žฅ๋‹จ์  ๋น„๊ต

ํ•ญ๋ชฉ RAG ๋ฐฉ์‹ ํ˜„์žฌ ๊ตฌ์กฐ
์™ธ๋ถ€ ๋ฌธ์„œ ํ™œ์šฉ ํ•„์š”ํ•จ ๋ถˆํ•„์š”ํ•จ
์ƒ์„ฑ ๊ธฐ๋ฐ˜ ์‘๋‹ต ์žˆ์Œ ์—†์Œ (์ •ํ˜• ์ถ”์ฒœ)
์‘๋‹ต ์ œ์–ด์„ฑ ๋‚ฎ์Œ ๋†’์Œ
๊ตฌํ˜„ ๋ณต์žก๋„ ๋†’์Œ ์ƒ๋Œ€์ ์œผ๋กœ ๋‹จ์ˆœํ•จ
์ตœ์‹  ์ •๋ณด ๋ฐ˜์˜ ์™ธ๋ถ€ ๋ฌธ์„œ ๊ฐฑ์‹  ํ•„์š” ๋‚ด๋ถ€ DB ๊ฐฑ์‹  ๋ฐ ์žฌ์ž„๋ฒ ๋”ฉ์œผ๋กœ ์ถฉ๋ถ„ํ•จ

๋ฐ์ดํ„ฐ ์ตœ์‹ ์„ฑ ๋ฐ ๊ด€๋ฆฌ ์ „๋žต

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


์„ ํƒ ๊ตฌ์กฐ์˜ ์„œ๋น„์Šค ๋ชฉํ‘œ ์ ํ•ฉ์„ฑ

๋ชฉํ‘œ ๋Œ€์‘ ๋ฐฉ์‹
์ •ํ™•ํ•œ ์ถ”์ฒœ ์œ ์‚ฌ๋„ ๊ธฐ๋ฐ˜ + ์กฐ๊ฑด ํ•„ํ„ฐ๋ง์œผ๋กœ ์ •๋ฐ€ ์ถ”์ฒœ ๊ฐ€๋Šฅ
์‘๋‹ต ์ผ๊ด€์„ฑ LLM ์ƒ์„ฑ์ด ์•„๋‹Œ ๊ณ ์ •๋œ ์ถ”์ฒœ ๋กœ์ง์œผ๋กœ ์ผ๊ด€์„ฑ ์œ ์ง€
์ตœ์‹  ์ •๋ณด ๋ฐ˜์˜ DB ๋ฐ ์ž„๋ฒ ๋”ฉ ์ฃผ๊ธฐ์  ๊ฐฑ์‹ ์œผ๋กœ ๊ฐ€๋Šฅ
์„œ๋น„์Šค ์•ˆ์ •์„ฑ ์™ธ๋ถ€ API ์˜์กด์„ฑ ์—†์ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์šด์˜ ๊ฐ€๋Šฅ
โš ๏ธ **GitHub.com Fallback** โš ๏ธ