Skip to main content

10๋ถ„ ๋งŒ์— ๋žญ์ฒด์ธ ์ดํ•ดํ•˜๊ธฐ

๊น€์˜์šฑ2024๋…„ 11์›” 11์ผAbout 1 minAILLMLangChainArticle(s)blogyozm.wishket.comaiartificial-intelligencellmlarge-language-modellangchainlang-chain

10๋ถ„ ๋งŒ์— ๋žญ์ฒด์ธ ์ดํ•ดํ•˜๊ธฐ ๊ด€๋ จ

LangChain > Article(s)

Article(s)

10๋ถ„ ๋งŒ์— ๋žญ์ฒด์ธ ์ดํ•ดํ•˜๊ธฐ
์‹œ์žฅ์—๋Š” ์˜คํ”ˆAI์˜ ์ฑ—GPT, ์•คํŠธ๋กœํ”ฝ์˜ ํด๋กœ๋“œ, ๊ตฌ๊ธ€์˜ ์ œ๋ฏธ๋‚˜์ด ๊ฐ™์€ ๋Œ€ํ‘œ LLM์„ ์ œ์™ธํ•˜๊ณ ๋„ ์ˆ˜๋งŽ์€ ์–ธ์–ด ๋ชจ๋ธ์ด ๊ฑฐ์˜ ๋งค์ผ ์ƒˆ๋กญ๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ ๋ชจ๋ธ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ๊ณผ ์ „๋ฌธ์„ฑ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ ๋น„์ฆˆ๋‹ˆ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ ์ง‘ํ•˜์ง€ ์•Š์•„๋„ ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•  ๋•Œ, ๊ทธ ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ๋ฅผ ํ•ด์„ํ•  ๋•Œ๋Š” ์–ด๋–ค ํŠน์ • LLM์„ ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ LLM์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ•„์š”์„ฑ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๋• ์–ด๋–ป๊ฒŒ ํ”„๋กœ์„ธ์Šค ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ• ๊นŒ์š”? ์ด๋Ÿฐ ์›Œํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๋ฐ”๋กœ โ€˜๋žญ์ฒด์ธ(LangChain)โ€™ ํƒ„์ƒ์— ์•„์ด๋””์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธ€์„ ์ฝ์œผ์‹œ๊ธฐ ์ „์— ์ด์ „์˜ ๊ธ€ <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๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ์ฝ”๋“œ๋ฅผ ๊ฑฐ์˜ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์„œ๋ฒ„ ์ธก์˜ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์œผ๋กœ ์ด์‹ํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ODBC ๋™์ž‘ ์›๋ฆฌ
ODBC ๋™์ž‘ ์›๋ฆฌ

๋žญ์ฒด์ธ์€ 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 ์›Œํฌํ”„๋กœ์„ธ์Šค์— ๋Œ€์ž…ํ•ด ๋ณด๋ฉด ๊ทธ๋ฆผ์ด ์ด๋ ‡๊ฒŒ ๊ทธ๋ ค์งˆ ๋“ฏํ•ฉ๋‹ˆ๋‹ค. ์–ด๋ ต์ง€ ์•Š์ฃ ?

๋žญ์ฒด์ธ์œผ๋กœ ๊ตฌ์„ฑํ•œ RAG ์›Œํฌ ํ”„๋กœ์„ธ์Šค
๋žญ์ฒด์ธ์œผ๋กœ ๊ตฌ์„ฑํ•œ 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์„ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”์‹œ์ผœ ์ค€๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ดํ•ดํ–ˆ์œผ๋ฉด ์ž˜ ์†Œํ™”ํ•œ ๊ฒ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€ ์ฝ๊ณ  ์ดํ•ดํ•˜๋А๋ผ ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค์Œ ๊ธ€์—์„œ ๋ต๊ฒŒ์š”.

์›๋ฌธ

10๋ถ„ ๋งŒ์— ๋žญ์ฒด์ธ(LangChain) ์ดํ•ดํ•˜๊ธฐ
์ด ๊ธ€์„ ์ฝ์œผ์‹œ๊ธฐ ์ „์— ์ด์ „์˜ ๊ธ€ <10๋ถ„ ๋งŒ์— RAG ์ดํ•ดํ•˜๊ธฐ>๋ฅผ ๋จผ์ € ์ฝ๊ณ  ์˜ค์‹œ๋ฉด ์ง€๊ธˆ ์ด ๊ธ€์˜ ์ดํ•ด์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. 0. ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ์ด๋ฏธ ์ž˜ ์•Œ๊ณ  ๊ณ„์‹œ์ง€๋งŒ, ์ด๋ฏธ ์‹œ์žฅ์—๋Š” OpenAI์˜ ChatGPT, ์•ค์“ฐ๋กœํ”ฝ์˜ ๋Œ๋กœ๋“œ, ๊ตฌ๊ธ€์˜ ์ œ๋ฏธ๋‚˜์ด, ๋„ค์ด๋ฒ„์˜ ํ•˜์ดํผํด๋กœ๋ฐ”X ์™€ ๊ฐ™์€ ๋Œ€ํ‘œ LLM์„ ์ œ์™ธํ•˜๊ณ ๋„ ์ˆ˜๋งŽ์€ ์–ธ์–ด๋ชจ๋ธ์ด ๊ฑฐ์˜ ๋งค์ผ ์ƒˆ๋กญ๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ฐ

10๋ถ„ ๋งŒ์— ๋žญ์ฒด์ธ ์ดํ•ดํ•˜๊ธฐ

์‹œ์žฅ์—๋Š” ์˜คํ”ˆAI์˜ ์ฑ—GPT, ์•คํŠธ๋กœํ”ฝ์˜ ํด๋กœ๋“œ, ๊ตฌ๊ธ€์˜ ์ œ๋ฏธ๋‚˜์ด ๊ฐ™์€ ๋Œ€ํ‘œ LLM์„ ์ œ์™ธํ•˜๊ณ ๋„ ์ˆ˜๋งŽ์€ ์–ธ์–ด ๋ชจ๋ธ์ด ๊ฑฐ์˜ ๋งค์ผ ์ƒˆ๋กญ๊ฒŒ ๋‚˜ํƒ€๋‚˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ ๋ชจ๋ธ๋งˆ๋‹ค ๊ณ ์œ ํ•œ ๊ธฐ๋Šฅ๊ณผ ์ „๋ฌธ์„ฑ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ ๋น„์ฆˆ๋‹ˆ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ ์ง‘ํ•˜์ง€ ์•Š์•„๋„ ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•  ๋•Œ, ๊ทธ ๊ธฐ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ๋ฅผ ํ•ด์„ํ•  ๋•Œ๋Š” ์–ด๋–ค ํŠน์ • LLM์„ ์‚ฌ์šฉํ•˜๊ณ , ํ•ด๋‹น ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ์‘๋‹ต์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ LLM์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ•„์š”์„ฑ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๋• ์–ด๋–ป๊ฒŒ ํ”„๋กœ์„ธ์Šค ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•ด์•ผ ํ• ๊นŒ์š”? ์ด๋Ÿฐ ์›Œํฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๋ฐ”๋กœ โ€˜๋žญ์ฒด์ธ(LangChain)โ€™ ํƒ„์ƒ์— ์•„์ด๋””์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.