10๋ถ ๋ง์ ๋ญ์ฒด์ธ ์ดํดํ๊ธฐ
10๋ถ ๋ง์ ๋ญ์ฒด์ธ ์ดํดํ๊ธฐ ๊ด๋ จ
์ด ๊ธ์ ์ฝ์ผ์๊ธฐ ์ ์ ์ด์ ์ ๊ธ <10๋ถ ๋ง์ RAG ์ดํดํ๊ธฐ>๋ฅผ ๋จผ์ ์ฝ๊ณ ์ค๋ฉด ์ดํด์ ๋์์ด ๋ฉ๋๋ค.
0. ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
์ด๋ฏธ ์ ์๊ณ ๊ณ์์ง๋ง, ์์ฅ์๋ ์คํAI์ ์ฑGPT, ์คํธ๋กํฝ์ ํด๋ก๋, ๊ตฌ๊ธ์ ์ ๋ฏธ๋์ด, ๋ค์ด๋ฒ์ ํ์ดํผํด๋ก๋ฐX ์ ๊ฐ์ ๋ํ LLM์ ์ ์ธํ๊ณ ๋ ์๋ง์ ์ธ์ด ๋ชจ๋ธ์ด ๊ฑฐ์ ๋งค์ผ ์๋กญ๊ฒ ๋ํ๋๊ณ ์์ผ๋ฉฐย ๊ฐ ๋ชจ๋ธ๋ง๋ค ๊ณ ์ ํ ๊ธฐ๋ฅ๊ณผ ์ ๋ฌธ์ฑ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.ย ๊ทธ๋ฌ๋ค ๋ณด๋ ๋น์ฆ๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ์งํ์ง ์์๋ ์ด๋ค ์๋น์ค๋ฅผ ๋ง๋ค๊ณ ์ ํ ๋, ๊ทธ ๊ธฐ๋ฅย ์๊ตฌ ์ฌํญ์ ๋ฐ๋ผย ์ฌ์ฉ์ ์ฟผ๋ฆฌ๋ฅผ ํด์ํ ๋๋ ์ด๋ค ํน์ LLM์ ์ฌ์ฉํ๊ณ , ํด๋น ์ฟผ๋ฆฌ์ ๋ํ ์๋ต์ ์์ฑํ๋ ๋ฐ๋ ์์ ํ ๋ค๋ฅธ LLM์ ์ฌ์ฉํ๊ณ ์ ํ๋ ํ์์ฑ์ด ์๊ธธ ์ ์์ต๋๋ค.
์ด๋ด ๋ ์ด๋ป๊ฒ ํ๋ก์ธ์ค ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด์ผ ํ ๊น์? ์ด๋ฐย ์ํฌ ํ๋ก์ธ์ค๋ฅผ ์์ฒญํ๋ ์๋๋ฆฌ์ค๊ฐ ๋ฐ๋ก โ๋ญ์ฒด์ธ(LangChain)โ ํ์ ์์ด๋์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฐ๋ฐย ์ฐ๋ฆฌ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ญ์ฒด์ธ ์ด์ผ๊ธฐ๋ฅผ ์์ ์ ์ ์ ๊น๋ง์.
์ ๋ ๊ฒ ์ฌ๋ฌ ๋ณต์ ์์คํ ์ด๋ ๋ฐฑ์๋ ํด์ย ์ด์ฉํด์ผ ํ๋ ์๊ตฌ ์ฌํญ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ LLM์ด ์ฒ์์ผ๊น์? ๊ทธ๋ด ๋ฆฌ๊ฐ์. ์ด๋ฐ ๊ฒฝ์ฐ๋ ์๋ง ์ํํธ์จ์ด ํ์์ ์ญ์ฌ์ ํจ๊ป ์์ฃผ ํํ๊ฒ ์ผ์ด๋ฌ์ ๊ฒ๋๋ค.
30๋ ๋ ๋ ๋ ์์ฃผ ์ค๋๋๊ณ ์ ํต์ ์ธ ์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ๋ชจ๋ ๋ฐฑ์๋ ์์คํ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์ด ํ๋งคํ๋ ๊ธฐ์ ๋ค์ด ์์์ด ๋ง์๊ณ ์. ๊ทธ๋ฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๊ฐ๊ฐ์ ํน์ฑ๊ณผ ์ฅ์ ์ด ์์ต๋๋ค. ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ ๊ธฐ๋ฅ์ด ์๊ฒ ์ง๋ง, SQL ์๋ฒ๊ฐ ๊ฐํ ๋ฉด์ด ํ์ํ ์ ์์ต๋๋ค. ๋์ ์ ํ๋ฆฌ์ผ์ด์ /์๋น์ค๊ฐ ๋ ๊ฐ์ง ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ ๋, ๋งค๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ํ๊ธฐ ์ํ ์ปค๋ฅํฐ๋ฅผ ์๋ก ๋ง๋ค์ด์ผ ํ ๊น์?ย ๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ํ์ํ ๊ฒฐ์ ์ผ ์๋ ์์ง๋ง, ๊ทธ๋ ๊ฒ ํ๊ธฐ์ ๋๋ฌด ํฐ ๋น์ฉ์ด ๋ค์ด๊ฐ๋๋ค. ์ ๋ฌธ ๊ฐ๋ฐ์๊ฐ ์์ด์ผ ํ๊ณ , ๋ฐ๋ก ์ ์ง, ๋ณด์, ๊ด๋ฆฌ, ๋ฐฐํฌํ๋ ์ผ์ ํฐ ์ค๋ฒํค๋๊ฐ ๋ฉ๋๋ค.
์ด๋ฐ ์์ฅ์ ์์ฒญ์ด ODBC(Open Database Connectivity)์ JDBC(Java Database Connectivity)๊ฐ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ์ก์ธ์คํ๊ธฐ ์ํ ํ์ค API ๋ ์ด์ด๋ฅผ ์ธ์์ ๋์ค๊ฒ ํ ๊ฒ์ ๋๋ค. ์ด๋ฐ ํ์ค API ๋ ์ด์ด๋ย ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ๋ฐ ์ด์ ์ฒด์ ์๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํ๋ฏ๋ก ODBC/JDBC๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ก์ธ์ค ์ฝ๋๋ฅผ ๊ฑฐ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ ์ธก์ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ์ด์ํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
๋ญ์ฒด์ธ์ LLM์ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ์คํ์์ค ํ๋ ์์ํฌ๋ก, ํ์ด์ฌ(Python)๊ณผ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.ย ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฑฐ์ ๋ชจ๋ LLM์ ์ํ ์ผ๋ฐ์ ์ธ ์ธํฐํ์ด์ค์ด๋ฏ๋ก, LLM ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋ค์ ํตํฉํ ์ ์๋ ์ค์ ์ง์ค์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
์์์ ์๋ก ์ค๋ช ํ ODBC๊ฐ ๋์ํ๋ ๊ฐ๋ ๊ณผย ๊ฑฐ์ ๋๊ฐ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
๋ญ์ฒด์ธ์ย 2022๋ 10์, ํด๋ฆฌ์จ ์ฒด์ด์ค๊ฐ ์ถ์ํ ์ดํ ๊นํ๋ธ(GitHub)์์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ ์คํ์์ค ํ๋ก์ ํธ์์ต๋๋ค. ๋ญ์ฒด์ธ ์์๋ ๋ฌด์์ด ์๋์ง ๊ทธ ๊ตฌ์ฑ ์์๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ ๋ค๊ณ ๊ตฌ์ฑ ์์๋ก๋ ๋ฌด์ ๋ฌด์์ด ์๋ค๊ณ ์ธ์ฐ๋ ๊ฑด ์๋๊ฒ ์ง์? ์ด๋ค ํ์์ฑ์ด ์์๋์ง๋ฅผ ์๋ฉด ์๋์ผ๋ก ๊ตฌ์ฑ์์๋ ๋จธ๋ฆฟ์์ ๋จ์์์ ๊ฑฐ๋, ์ ์ค๋ช ์ ์ ๋ฐ๋ผ์ค์ธ์.
1.๋ญ์ฒด์ธ์ ๊ตฌ์ฑ ์์
1) LLM ์ถ์ํ(Abstraction)
๋ญ์ฒด์ธ์ ์ถ์ํ๋ผ๋ ๊ฒ์ ํตํด LLM ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ์ํํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ์ค โ์ถ์ํ(abstraction)โ๋ ๋ง์ด ๋ ์ด๋ ต์ฃ ? ๋ฌด์จ ๋ป์ผ๊น์?
์ถ์ํ๋ฅผ ํ๋ย ์ฃผ์ ๋ชฉํ๋ ์ฌ์ฉ์์๊ฒ ๋ถํ์ํ ์ธ๋ถ ์ฌํญ์ ์จ๊ฒจ ๋ณต์ก์ฑ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์จ๊ฒจ์ง ๋ณต์ก์ฑ์ ๋ชจ๋ ์ดํดํ๊ฑฐ๋ ์๊ฐํ์ง ์๊ณ ๋ ์ ๊ณต๋ ์ถ์ํ ์์์ ๋ณธ์ธ์ ๋ก์ง์ ๊ตฌํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ณด๋ฉด ์์ฃผ ์ฝ์ต๋๋ค.
์ฌ๋ฌ๋ถ์ ์๋์ฐจ๊ฐ ์ถ์ํ์ ๊ฐ์ฅ ์ข์ ์๊ฐ ๋ ๊ฒ๋๋ค. ์๋์ฐจ๋ ํค๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์๋ ๋ฒํผ์ ๋๋ฌ ์๋์ ๊ฑธ ์ ์์ต๋๋ค. ์์ง์ด ์ด๋ป๊ฒ ๋์ํ๋์ง, ์๋์ฐจ์ ๋ค๋ฅธ ๋ถํ๊ณผ ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง ์ ํ์๊ฐ ์์ต๋๋ค. ์๋์ฐจ ๋ด๋ถ ๊ตฌํ๊ณผ ๋ณต์กํ ๋ก์ง์ ์ฌ์ฉ์์๊ฒ ์์ ํ ์จ๊ฒจ์ ธ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ์ ์ปคํผ ๋จธ์ ๋ย ์ถ์ํ์ ์ข์ ์์ ๋๋ค. ์๋ ํ์์ ์ปคํผ๋ฅผ ๋ง์๊ธฐ ์ํด์๋ย ๋ฌผ๊ณผ ์๋๋ฅผ ์ค๋นํ๊ณ ์๋ ๊ฐ๋ ์ ๋๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ,ย ์ปคํผ ๋จธ์ ์ ๊ฐ๋จํ ์ธํฐํ์ด์ค๋ก ์ด์์ ์ธ ๋ฌผ์ ์จ๋๋ย ๋ถ์ ์ปคํผ์ ์์ ์ ํ์ ์์ดย ์ ์ ํ ์ปคํผ๋ฅผ ๋ด๋ ค์ค๋๋ค. ์ปคํผ ๋จธ์ ์ ๋ด๋ถ ๋์ ์๋ฆฌ๋ฅผย ์ฌ์ฉ์๋ ์ ํ์๊ฐ ์๋ ๊ฒ์ ๋๋ค.
๋ญ์ฒด์ธ์ ์ถ์ํ๋ ์ธ์ด ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๋ฐ ํ์ํ ์ผ๋ฐ์ ์ธ ๋จ๊ณ์ ๊ฐ๋ ์ ๋ํ๋ ๋๋ค.ย ์ธ์ด ๋ชจ๋ธ(Language Model)์ย ์ฐ๊ฒฐ(Chain)ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก ๋ณต์กํ NLP ์์ ์ ์คํํ๋ ๋ฐ ํ์ํ ์ฝ๋์ ์์ ์ต์ํํ ์ ์์ต๋๋ค.ย (Language Model + Chainย ย = LangChain์ด ๋ ๊ฑฐ์ฃ .)
ํ ๊ฐ์ง ์ธ์ด ๋ชจ๋ธ์ ์ดํดํ๋ ๊ฒ๋ ์ถฉ๋ถํ ์ด๋ ต๊ณ ์๊ฐ๋ ๊ฑธ๋ฆฌ๋๋ฐ, ์ฌ๋ฌ ๊ฐ์ง ์ธ์ด ๋ชจ๋ธ์ ๋ชจ๋ ๋ค ๊ณต๋ถํด์ผ ํ๋ค๋ฉด ๋ฏธ์น๊ณ ํ์ง ๋ธ ์๋ ์๊ฒ ์ฃ . ๊ทธ๊ฑธ ๊ฐ๋จํ ํ์๊ณ ๋ญ์ฒด์ธ์ โ์ถ์ํโ๊ฐ ๋์ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ ๋งํผ ๊ฑฐ์ ๋ชจ๋ LLM์ ๋ญ์ฒด์ธ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ํ์ค ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์๊ธฐ์, ์ ์์ ์ํย API ํค๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
2) ํ๋กฌํํธ(Prompts)
๋ ๋ฒ์งธ๋ก๋ย ํ๋กฌํํธ๊ฐ ์์ต๋๋ค.ย ํ๋กฌํํธ๋ LLM์ ํ์คํฌ๋ฅผ ์ํํ๋ผ๊ณ ์ ๋ฌํ๋ ๋ช ๋ น์ด์ ๋๋ค.
์ด๊ฑด ์ฌ๋ฌ๋ถ๋ค๋ ์ฑGPT๋ ๊ทธ๋ฐ ๋๊ตฌ๋ค ์ฌ์ฉํด ๋ณด์์ ํ ๋ ๋ญ ์๋ก์ด ๊ฒ๋ ์์ง์? ํ์ง๋ง ๊ทธ๋ฐ ๊ฐ๋จํ ํ๋กฌํํธ๋ผ๋ฉด ๋ญ์ฒด์ธ์ด ์ค๋นํ์ ๋ฆฌ๊ฐ ์์ฃ .
๋ญ์ฒด์ธ์๋ ์ด ๋ช ๋ น์ ์ ์ ๋ฌํ๊ธฐ ์ํ ํ๋กฌํํธ ํ ํ๋ฆฟ ํด๋์ค๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ค์ํ ๋ง์ **โํ ํ๋ฆฟโ**์ด์ฃ . ์ฐ๋ฆฌ๊ฐ ๋ฌธ์ ํ ํ๋ฆฟ, ํ์ํฌ์ธํธ ํ ํ๋ฆฟ์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์? ๋ฐ๋ก ๊ทธ ๋ฌธ์ ๋ด์ ์๋ ๊ตฌ์กฐํ๋ ์คํ์ผ์ ์ด์ฉํ๊ณ ์ถ์ ๊ฑฐ ์๋๊ฒ ์ด์. ๋ฐ๋ก ๊ทธ๊ฒ๋๋ค. ๋ญ์ฒด์ธ์ ํ๋กฌํํธ๋ย ์ปจํ ์คํธ์ ์ฟผ๋ฆฌ๋ฅผ ์๋์ผ๋ก ์์ฑํ ํ์ ์์ด ํ๋กฌํํธ์ ๊ตฌ์ฑ์ ๊ตฌ์กฐํํด ์ค๋๋ค.
์๋ฅผ ๋ค์ด ๊ทธย ํ ํ๋ฆฟ ์์๋ โ์๋ต์ ์ ๋ฌธ ๊ธฐ์ ์ฉ์ด๋ฅผ ์ฌ์ฉํ์ง ๋ง๊ณ ๋ตํ์ธ์โ์ ๊ฐ์ ์ง์นจ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ๋๋ ์๋ต์ ์ถ๊ฐ ์ค๋ช ํ๋ ๋ช ๊ฐ์ ์๋ฅผ ๊ฐ์ด ์ ๊ณตํ๋ผ๊ณ ํ๋,ย ์ฆ, ํจ-์ท(Few-Shot)ย ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. (ํ๋กฌํํธ ์์ง๋์ด๋ง ๊ธฐ์ ์ค์๋ ์๋ต์ ์๋ฅผ ํฌํจํ๋ผ ๋ง๋ผ๋ฅผ ์ง์ ํ ์ ์๋ ์ ๋ก-์ท(Zero-shot), ์-์ท(One-Shot), ํจ-์ท(Few-Shot) ๊ฐ์ ์ข ๋ฅ๊ฐ ์๋ต๋๋ค.)ย ๋ํ ์ถ๋ ฅ ํ์๋ ์ง์ ํ ์ ์์ต๋๋ค.
3) ์ฒด์ธ(Chains)
โ์ฒด์ธโ, ๋ง ๊ทธ๋๋กย ์ฐ๊ฒฐ ๊ณ ๋ฆฌ๋ฅผย ๋ง๋๋ ๊ฒ์ด ๋ญ์ฒด์ธ ์ํฌํ๋ก์ฐ์ ํต์ฌ์ ๋๋ค.
์ฒด์ธ์ LLM์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์์ ๊ฒฐํฉํ์ฌ ์ผ๋ จ์ ํ์คํฌ๋ฅผ ์คํํจ์ผ๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ์น์ฌ์ดํธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ ๋ค์, ๊ฒ์ํ ํ ์คํธ๋ฅผ ์์ฝํ๊ณ , ์์ฝ๋ ํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ ์ถํ ์ง๋ฌธ์ ๋ตํด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค.
์ด๋ ํ ํ์คํฌ์ ์ถ๋ ฅ์ด ๋ค์ ํ์คํฌ์ ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ๋ ์์ฐจ์ ์ฒด์ธ์ด๋ฉฐ, ์ฒด์ธ์ ๊ฐ ํ์คํฌ๋ ์๋ก ๋ค๋ฅธ ํ๋กฌํํธ๋ ์ฌ์ง์ด ์๋ก ๋ค๋ฅธ LLM ๋ชจ๋ธ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋ค๋ฅธ LLM์ ์ฌ์ฉํ๋ ๊ฒ์ 1๋ฒ์์ ์ค๋ช ํ๋ฏ ํด๋น LLM์ ์ ์ํ๊ธฐ ์ํ ํค๊ฐ๋ง ์์ผ๋ฉด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ, ๋ชจ๋ ์ ๋ณด๊ฐ LLM์๋ง ์๋ ๊ฒ์ ์๋์์์? ๋ํ LLM์ ํน์ฑ ๋ ์ง ์ดํ์ ์ ๋ฐ์ดํธ๋ ๋ฐ์ดํฐ๋ ๊ฐ๊ณ ์์ง ์์์. ์ด ์ด์ผ๊ธฐ๋ ์ง๋ ๊ธ <10๋ถ ๋ง์ RAG ์ดํดํ๊ธฐ>์์ RAG๋ฅผ ๋ค๋ฃจ๋ฉด์ ๋งํ ๋ถ๋ถ์ธ ๊ฒ ๋ค ๊ธฐ์ตํ์์ฃ ? ๊ทธ๋์ ๋ญ์ฒด์ธ์์๋ ๋ฐ๋ก ๋ค์ 4๋ฒ์ ์ธ๋ฑ์ค ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
4) ์ธ๋ฑ์ค(Indexes)
์ด์ ํน์ ์์ ์ ์ํํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ /์๋น์ค๋ ์์ฒด์ ํ์ต ๋ฐ์ดํฐ ์ธํธ์ ํฌํจ๋์ง ์์ ํน์ ์ธ๋ถ ๋ฐ์ดํฐ ์์ค, ์ฆ ๋ด๋ถ ๋ฌธ์๋ ์ด๋ฉ์ผ ๊ฐ์ ๊ฒ์ ์ก์ธ์คํด์ผ ํ ์ ์์ต๋๋ค. ๊ทธ๋์ผ ์ถ์ฒ๋ ํ์คํด์ง๊ณ , ๋ณด๋ค ๊ณ ๊ธโ์ ๋ฌธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ณ , ๋ฌด์๋ณด๋ค ์ต์ ์ ๋ฐ์ดํธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.ย ๋ญ์ฒด์ธ์์๋ ์ด๋ฌํ ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ด์นญํ์ฌ ์ธ๋ฑ์ค๋ผ๊ณ ํ๋๋ฐ, ๊ทธ ์ธ๋ฑ์ค ๊ธฐ๋ฅ์ ์ด๋ฃจ๋ ์์๊ฐ ์์ต๋๋ค.
4-1 ๋ํ๋จผํธ ๋ก๋(Document Loaders)
์ฒซ ๋ฒ์งธ๋ ๋ํ๋จผํธ ๋ก๋์ ๋๋ค. ์ฐธ๊ณ ํ ์ ๋ณด๊ฐ ์๋ ํ์ผ์ ์ฝ์ด์ผ ๋ญ ์์ํ ์ ์๊ฒ ์ง์? RAG ๊ธ ์ฝ์ผ์ ๋ถ๋ค์ ๋ฌด์จ ๋ง์ธ์ง ๋ค ์์์ฃ ?
์ด๊ฑด ํ์ผ ์ ์ฅ ์๋น์ค์ ๊ฐ์ ์์ค์์ ๋ฐ์ดํฐ ์์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๊ฒ์ ๋๋ค.ย ๊ตฌ๊ธ ๋๋ผ์ด๋ธ, ๋๋กญ๋ฐ์คย ๋๋ ์ ํ๋ธ์ ํธ๋์คํฌ๋ฆฝํธ์ ๊ฐ์ ์น ์ฝํ ์ธ , ์์ดํ ์ด๋ธ์ด๋ ๋ ธ์ ๋ฌธ์์ ํ์ ๋๊ตฌ,ย ๋ชฝ๊ณ DB(MongoDB)์ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ก ๋ค ์ ์์ต๋๋ค.
4-2 ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Vector Database)
๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์ ์ ๊ทผ๋ ์ง์ํฉ๋๋ค. ๊ธฐ์กด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌ๋ฆฌ, ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ํฌ์ธํธ๋ฅผ ๋ฒกํฐ ์๋ฒ ๋ฉ์ด๋ผ๋ ๊ฒ์ผ๋ก ๋ณํํ์ฌ ํํํฉ๋๋ค. ์ด๋ ๊ณ ์ ๋ ์์ ์ฐจ์์ ๊ฐ์ง ๋ฒกํฐ ํํ์ ์์น ํํ์ผ๋ก ์ ์ฌ์ฑ์ ๋ํ๋ด๊ธฐ์ย ๋งค์ฐ ํจ์จ์ ์ธ ๊ฒ์(retrieval) ์๋จ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ ๊ฐ ์ ๊ฒ์์ search๋ผ๊ณ ์ด์ผ๊ธฐํ์ง ์๊ณ , retrieval์ด๋ผ๊ณ ๊ธฐ์ ํ๋์ง ์ญ์, RAG ๊ธ ์ฝ์ผ์ ๋ถ๋ค์ ๋ค ์์ค ๊ฒ๋๋ค.
4-3 ํ ์คํธ ์คํ๋ฆฌํฐ(Text Splitters)
ํ ์คํธ๋ฅผ ์ํ๋ ๋ฐฉ๋ฒ๊ณผ ๋งค๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌย ์๋ฏธ ์๋ ์์ ๋ฉ์ด๋ฆฌ๋ก ๋ถํ /๊ฒฐํฉํ ์ ์๋ ํ ์คํธ ์คํ๋ฆฌํฐ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ๋ถํ ๊ฒฐํฉํ ์ ์์ด์ผ ๋ต์ ์ค ๋ ์์ฝ ์ ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ํ ์ ์๊ฒ ์ง์.
ํ ๋ฒ ์ด ๋ถ๋ถ์ RAG ์ํฌํ๋ก์ธ์ค์ ๋์ ํด ๋ณด๋ฉด ๊ทธ๋ฆผ์ด ์ด๋ ๊ฒ ๊ทธ๋ ค์ง ๋ฏํฉ๋๋ค. ์ด๋ ต์ง ์์ฃ ?
5) ๋ฉ๋ชจ๋ฆฌ(Memory)
๋งค์ฐ ์ค์ํ ๊ธฐ๋ฅ์ ๋๋ค.ย ๋ฉ๋ชจ๋ฆฌ๋ ์ฌ์ฉ์๊ฐ LLM๊ณผ ํ๋กฌํํธ ๊ธฐ๋ฐ์ โ๋ํโ๋ฅผ ํ๋ ๋์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ์ฃผ์ ์ฌ์ค์ ๊ธฐ์ตํ๊ณ ํฅํ ์ํธ ์์ฉ์ ํด๋น ์ ๋ณด๋ฅผ ์ ์ฉํ ์ ์๋ค๋ ๋ป์ ๋๋ค. ์ฆ, ๋ด๊ฐ ๋๊ตฌ์ธ์ง, ๋ํ์ ๋ฌธ๋งฅ์ ๊ธฐ์ตํ๊ณ ์ดํดํ๋ฉด์ ๋ํ๋ฅผ ํ๋ค๋ ๋ป์ ๋๋ค.ย ์ด๋ฐ ๊ธฐ๋ฅ์ด ์ฑGPT์ ๊ฐ์ ์ธ๊ณต์ง๋ฅ์ ํจ์ฌ ๋ ์ธ๊ฐ์ง๋ฅ์ฒ๋ผ ์ ์ฉํ๊ฒ ๋ง๋ค ์๋ ์๊ณ , ํน์ ์ค์นด์ด๋ท์ฒ๋ผ ์์ ํ ๋ฌด์ญ๊ฒ ๋ง๋ค ์๋ ์์ฃ .
๊ธฐ๋ณธ์ ์ผ๋ก LLM์ ์ ๋ ฅ์ผ๋ก ์ฑํ ๊ธฐ๋ก์ ์ ๋ฌํ์ง ์๋ ํ ์ด์ ๋ํ์ ๋ํ ์ฅ๊ธฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ง๋ง, ๋ญ์ฒด์ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ผ๋กย ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.ย ๋ ๊ฐ์ง ์ต์ ์ ์ ๊ณตํ๋๋ฐ,ย ์ง๊ธ๊น์ง์ ๋ํ ์ ์ฒด๋ฅผ ๊ธฐ์ตํ๋ ์ต์ ๊ณผ ์ง๊ธ๊น์ง์ ๋ํ ์์ฝ๋ง ๊ธฐ์ตํ๋ ์์ฝ ์ต์ ์ ๋๋ค.
6) ์์ด์ ํธ(Agents)
๋ง์ง๋ง ๊ตฌ์ฑ ์์, ์์ด์ ํธ ์๋น์ค์ ๋๋ค. ๊ฐ์ฅ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ์์ด์ ํธ ์๋น์ค๋ ์ฑ๋ด์ ๋๋ค. ๋ง์ ์ฌ์ดํธ์์, ๋ง์ ์ฑ์์ ์ด๋ฏธ ๋์ ํด์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์๋น์ค ์ฑ๋ด์ LLM์ ์๋ ์ ๋ณด๋ณด๋ค๋ ๋ด๋ถ ์ ๋ณด, ๊ณ ๊ฐ ์ ๋ณด๋ค์ ํจ์ฌ ๋ ์ ์ฉํ๊ฒ ๋์ํด์ผ ํฉ๋๋ค.
๋ญ์ฒด์ธ์ ์์ด์ ํธ๋ LLM๊ณผ ๋ค๋ฅธ ๋ฐ์ดํฐ ์์ค ๋ฑ ๋๊ตฌ ๋ ๊ฐ์ง ์ด์์ย ์กฐํฉํ์ฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.ย ์ ํํ LLM์ ์ถ๋ก ์์ง์ผ๋ก ์ฌ์ฉํ์ฌ ์ด๋ค ์์ ์ ์ํํ ์ง ๊ฒฐ์ ํ ์ ์์ต๋๋ค.ย ์์ด์ ํธ๋ฅผ ๊ตฌ์ถํ ๋๋ ์์ด์ ํธ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ ๋ชฉ๋ก, ํ๋กฌํํธ ๋ฐ ์ฟผ๋ฆฌ์ ๊ฐ์ ์ฌ์ฉ์ ์ ๋ ฅ, ์ด์ ์ ์คํ๋ ๊ธฐํ ๊ด๋ จ ๋จ๊ณ ๋ฑ์ ์ ๋ ฅ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค.
์ง๊ธ๊น์ง ๋ญ์ฒด์ธ์ ๊ตฌ์ฑ ์์๋ค์ ์์๋ณด์์ต๋๋ค. ์ดํดํ๋ ๋ฐ ํฐ ์ด๋ ค์์ ์์์ฃ ?
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ด ๊ตฌ์ฑ ์์๋ค์ ๊น์ด๊ฐ ๊น์ด์ง๊ณ , ๊ตฌ์ฑ ์์๊ฐ ๋ ๋ง์์ง ์๋ ์์ต๋๋ค. ๊ทธ๋ ์ง๋ง ๋ ๊ฐ๋ ์ ๋ฆฌ๊ฐ ์ ๋์ด ์๋ ์ํ๋ผ๋ฉด ์ดํดํ๋ ๋ฐ ํฐ ๋ฌด๋ฆฌ๋ ์์ผ์ค ๊ฒ๋๋ค. ๊ตฌ์ฑ ์์๋ฅผ ๋ค์ย ๊ทธ๋ฆผ์ผ๋ก ์ ๋ฆฌํด ๋ณผ๊ฒ์.
2. ๋ญ์ฒด์ธ์ผ๋ก ํ ์ ์๋ ์ผ
๋ญ์ฒด์ธ์ ๊ตฌ์ฑ ์์๋ฅผ ์ดํด๋ณด์์ผ๋ ์ด ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๊ณ ํ ์ ์๋ ์ผ์ ์๊ฐํด ๋ณผ๊น์? ์ด๋ฏธ ์ฌ๋ฌ๋ถ์ ๋ค ์๊ณ ๊ณ์ค ๊ฒ๋๋ค.
1) ์์ฝ ๊ธฐ๋ฅ
์์ฝ ๊ธฐ๋ฅ์ด ํ์ํ ๊ณณ์ด๋ผ๋ฉด ์ด๋์๋ ๋ญ์ฒด์ธ์ ์ ์ฉํ ์ ์๊ฒ ์ฃ .ย ํ๋กฌํํธ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ฌ ๋ณต์กํ ํ์ ๋ ผ๋ฌธ์ด๋ ์๋ฃ๋ฅผ ๋ถ์ํ๋ ๊ฒ๋ถํฐ ์ด๋ฉ์ผ์ ์์ ๋ง ์ ๊ณตํ๋ ๊ฒ๊น์ง ๋ค์ํ ์ ํ์ ํ ์คํธ๋ฅผ ์์ฝํ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
2) ์ฑ๋ด, Q&A
๋ญ์ฒด์ธ์ ์ฑ๋ด ์ฌ์ฉ์ ๋ํ ์ ์ ํ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๋ฉฐ ์ฑ๋ด์ ๊ธฐ์กด ์ปค๋ฎค๋์ผ์ด์ ์ฑ๋๊ณผ ์ํฌํ๋ก์ฐ์ ํตํฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.ย ๋ํย ํน์ ๋ฌธ์๋ ์ ๋ฌธ ์ง์์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฅ์์์ ๊ด๋ จ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ณ ์ ์ฉํ ๋ต๋ณ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ฑฐ๊ธฐ์ ๋งฅ๋ฝ์ ๊ธฐ์ตํ๋ ๋ฉ๋ชจ๋ฆฌ๊น์ง ์ด์ฉํ๋ฉด ๋์ฑ ๊ฐ๋ ฅํ ๊ฐ์ธํ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์์ ๊ฒ๋๋ค.
3) ๋ฐ์ดํฐ ์ฆ๊ฐ(Augmentation)
RAG๋ฅผ ๋ค๋ฃจ๋ฉด์ ๋ค ์ดํดํ ๋ด์ฉ์ด์ฃ ? ์ ๋ฌธ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ณด๋ค ์ ํํ๊ณ ์ต์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ,ย ๋จธ์ ๋ฌ๋์ ์ํ ํฉ์ฑ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๋ฐ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ์ธ์๋ ๋ญ์ฒด์ธ์ ์์ด์ ํธ๋ฅผ ์ด์ฉํ์ฌย ๋ค์ ๋จ๊ณ๋ฅผ ๊ฒฐ์ ํ๊ณ ์งํํ๋ย ํ๋ก์ธ์ค ์คํ ๋ฉ์ด์ ์ย ๊ตฌ์ถํ ์๋ ์์ต๋๋ค.
๋ญ์ฒด์ธ์ย ์คํ ์์ค์ด๋ฉฐ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. REST API๋ก ์ฒด์ธ์ ์์ฑํ๊ธฐ ์ํ ๋ญ์๋ธ(LangServe)๋ผ๋ ๋ชจ๋๋ ์๊ณ ์. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ํฐ๋ง, ํ๊ฐ, ๋๋ฒ๊น ํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ ๋ญ์ค๋ฏธ์ค(LangSmith)์ ๊ฐ์ ํ๋ ์์ํฌ๋ ์์ต๋๋ค.
๋ญ์ฒด์ธ์ ๋๊ตฌ์ API๊ฐ LLM์ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํ์์ผ ์ค๋ค๋ ์ฌ์ค์ ์ดํดํ์ผ๋ฉด ์ ์ํํ ๊ฒ๋๋ค. ์ฌ๊ธฐ๊น์ง ์ฝ๊ณ ์ดํดํ๋๋ผ ๊ณ ์ ๋ง์ผ์ จ์ต๋๋ค. ๋ ๋ค์ ๊ธ์์ ๋ต๊ฒ์.
์๋ฌธ