๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐ŸŽ“ RESUMAI

[RESUMAI] 3. RAG์˜ ๋„์ž…๊ณผ ์ž๊ธฐ์†Œ๊ฐœ์„œ ํฌ๋กค๋ง

์žฅ์˜์ค€ 2023. 12. 21. 00:47

๋“œ๋””์–ด ๊ธฐ๋ง๊ณ ์‚ฌ๊ฐ€ ๋๋‚ฌ๋‹ค..์–ด์ฉŒ๋ฉด ์—ฌ์œ ๋กœ์› ๊ณ , ์–ด์ฉŒ๋ฉด ํž˜๋“ค์—ˆ๋˜ ํ•œ ํ•™๊ธฐ์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ด์ œ ๊ฐœ๋ฐœํ•ด์•ผ์ง€.


RAG์˜ ๋„์ž…

์ง€๋‚œ๋ฒˆ์—๋Š” ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‹คํ—˜ํ•ด๋ณธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋กํ–ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, 3-shot ํ”„๋กฌํ”„ํŠธ๊ฐ€ ๊ฐ€์žฅ ์ข‹์€ ํผํฌ๋จผ์Šค๋ฅผ ๋ณด์˜€๋‹ค.

ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ, ๋‚˜๋Š” RAG ๊ธฐ๋ฒ•์„ ์ด์šฉํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

 

RAG๋Š” Retrieval Augmented Generation์˜ ์•ฝ์ž๋กœ, ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ 3๋‹จ๊ณ„๋กœ ๊ตฌ์„ฑ๋ผ ์žˆ๋‹ค.

  1. Retrieve
    • ๋จผ์ € Retrieve ๋‹จ๊ณ„์—์„œ๋Š” query๋ฅผ embedding ํ•œ ํ›„, vectorDB๋กœ๋ถ€ํ„ฐ ์œ ์‚ฌ์„ฑ์ด ๋†’์€ context๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์ด๋‹ค.
    • ์ฃผ๋กœ ์ฑ… ์•ˆ์˜ ๋‚ด์šฉ์„ ์ฑ—๋ด‡์—๊ฒŒ ์งˆ๋ฌธํ•˜๊ณ ์ž ํ•  ๋•Œ, ์ฑ… ๋‚ด์šฉ์„ pdf๋กœ ๋งŒ๋“ค์–ด ์ฒจ๋ถ€ํ•˜๊ณ , ์งˆ๋ฌธํ•˜๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•ด Retrieve ๊ณผ์ •์„ ๊ฑฐ์ณ ๋†’์€ ํ€„๋ฆฌํ‹ฐ์˜ ๋‹ต๋ณ€์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
  2. Augment
    • ๋‘๋ฒˆ์งธ Augment ๋‹จ๊ณ„๋Š” ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ํ”„๋กฌํ”„ํŒ…์„ ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค. ๋ฐฉ๊ธˆ ์ „ Augment ๋‹จ๊ณ„์—์„œ ์–ป์€ context๋ฅผ query์™€ ํ•จ๊ป˜ ํ”„๋กฌํ”„ํŠธ์— ์ฒจ๋ถ€ํ•ด์„œ ์ฑ—๋ด‡์ด ๋Œ€๋‹ตํ•˜๋Š” ๋ฐ ๊ทผ๊ฑฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” context, ์˜ˆ์‹œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  3. Generate
    • ๋งˆ์ง€๋ง‰์œผ๋กœ LLM์—๊ฒŒ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ฃผ๊ณ  ์ƒ์„ฑํ•˜๋„๋ก ํ•œ๋‹ค. 

 

์œ„์ฒ˜๋Ÿผ RAG๋ฅผ ์œ„ํ•ด ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ ํ•ญ๋ชฉ์€

  1. vectorDB์— ์ €์žฅ๋  ๋ฐ์ดํ„ฐ. ์ด๊ฑด ํ€„๋ฆฌํ‹ฐ ๋†’์€ ์ž๊ธฐ์†Œ๊ฐœ์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. (๊ทธ๋ž˜์•ผ ๊ฒฐ๊ณผ๋„ ์ž˜ ๋‚˜์˜ฌ ๊ฒƒ์ด๋ฏ€๋กœ)
  2. ์ข‹์€ ํ”„๋กฌํ”„ํŒ…. ์‚ฌ์‹ค์ƒ output์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์š”์†Œ์ด๋‹ค. 

 

๊ทธ๋ž˜์„œ ๋จผ์ € ์žก์ฝ”๋ฆฌ์•„์—์„œ ํ€„๋ฆฌํ‹ฐ ๋†’์€ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ํฌ๋กค๋งํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.


์ž๊ธฐ์†Œ๊ฐœ์„œ ํฌ๋กค๋ง

๋จผ์ € ๊ตฌํ˜„๋œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํฌ๋กค๋ง ๊ณผ์ •์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ•ด์„œ, ๋น„๊ต์  ๊ฐ„๋‹จํ–ˆ๋‹ค.

https://velog.io/@dbstjd0924/%EC%9E%A1%EC%BD%94%EB%A6%AC%EC%95%84-%EC%9E%90%EA%B8%B0%EC%86%8C%EA%B0%9C%EC%84%9C-%ED%81%AC%EB%A1%A4%EB%A7%81-ddahddwe

 

์žก์ฝ”๋ฆฌ์•„ ์ž๊ธฐ์†Œ๊ฐœ์„œ ํฌ๋กค๋งํ•˜๊ธฐ

์‚ฌ์‹ค ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ฅผ ํฌ๋กค๋งํ•  ์ผ์ด ๊ฑฐ์˜ ์—†์„๊ฑฐ ๊ฐ™๊ธด ํ•œ๋ฐ, ์•„๋ฌดํŠผ ๋‚˜๋Š” ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๊ฐ€ ์ž๊ธฐ์†Œ๊ฐœ์„œ๋ผ ์ผ๋‹จ ์ตœ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์™€์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์žก์ฝ”๋ฆฌ์•„์™€ ๋ง์ปค๋ฆฌ์–ด์™€ ๊ฐ™์€

velog.io

ํ•œ ๊ฐ€์ง€ ์• ๋ฅผ ๋จน์€ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋Š”๋ฐ, ์œ„ ๋ธ”๋กœ๊ทธ์—์„œ๋Š” ๋กœ๊ทธ์ธ ๊ณผ์ •์„ send_keys๋กœ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚˜ ๋ณด์•ˆ๋ฌธ์ž๊ฐ€ ์ƒ๊ฒจ๋ฒ„๋ฆฐ ๊ฒƒ์ด์—ˆ๋‹ค. ๋ณด์•ˆ๋ฌธ์ž๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฝค๋‚˜ ์• ๋ฅผ ๋จน์—ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ์†Œ์…œ ๋กœ๊ทธ์ธ ์‹œ ์ œ๊ณต๋˜๋Š” redirect uri๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‹คํ–‰์ด์—ˆ๋‹ค.

ํฌ๋กค๋ง๋œ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ๊ฒผ๋‹ค.

์ง€์› ํšŒ์‚ฌ ์ง€์› ์‹œ๊ธฐ ๋ฐ ์ง๋ฌด ์ง€์› ์ŠคํŽ™ ํšŒ์‚ฌ ์งˆ๋ฌธ ๋ฆฌ์ŠคํŠธ ๋‹ต๋ณ€ ๋ฆฌ์ŠคํŠธ
ํ˜„๋Œ€์˜คํ† ์—๋ฒ„ 2023๋…„ ํ•˜๋ฐ˜๊ธฐ ์‹ ์ž… ๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ์žํ•ฉ๊ฒฉ์ž์†Œ์„œ ์ˆ˜๋„๊ถŒ 4๋…„..~ 1. ํ˜„๋Œ€์˜คํ† ์—๋ฒ„์˜ ํ•ด๋‹น ์ง๋ฌด์— ์ง€์›ํ•œ ์ด์œ ์™€ ์•ž์œผ๋กœ ํ˜„๋Œ€์˜คํ† ์—๋ฒ„์—์„œ ํ‚ค์›Œ ๋‚˜๊ฐˆ ์ปค๋ฆฌ์–ด ๊ณ„ํš์„ ์ž‘์„ฑํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

2. ์ง€์› ์ง๋ฌด์™€ ๊ด€๋ จํ•˜์—ฌ ์–ด๋– ํ•œ ์—ญ๋Ÿ‰์„(์ง€์‹/๊ธฐ์ˆ  ๋“ฑ) ๊ฐ•์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€, ๊ทธ ์—ญ๋Ÿ‰์„ ๊ฐ–์ถ”๊ธฐ ์œ„ํ•ด ๋ฌด์Šจ ๋…ธ๋ ฅ๊ณผ ๊ฒฝํ—˜์„ ํ–ˆ๋Š”์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ์ž‘์„ฑํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. (ํ•™๋‚ด์™ธ ํ™œ๋™/ํ”„๋กœ์ ํŠธ/๊ต์œก ์ด์ˆ˜ ๊ณผ์ • ๋“ฑ ๋ณธ์ธ์˜ ๊ฒฝํ—˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.)
๊ฐœ์ธ์ •๋ณด ์ด์Šˆ๋กœ ์ฒจ๋ถ€ํ•˜์ง€ ์•Š๊ฒ ๋‹ค.

์ด๋ ‡๊ฒŒ 5๊ฐœ์˜ ๊ตฌ์„ฑ์œผ๋กœ ๋ผ ์žˆ์—ˆ๊ณ , ์ดํ›„ ๋‚˜์˜ ๊ณ ๋ฏผ์€ "์ด ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค DB์— ์ €์žฅํ•  ๊ฒƒ์ธ๊ฐ€"์˜€๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ์–ด๋–ค DB๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋๋Š”์ง€์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ค„๋ณผ ์˜ˆ์ •์ด๋‹ค.