1. LangChain๐Ÿ”— - Chat gpt๋ฅผ ๋” ๊ฐ•๋ ฅํ•˜๊ฒŒ

Surf in Dataยท2023๋…„ 5์›” 16์ผ
4

Langchain

๋ชฉ๋ก ๋ณด๊ธฐ
1/1
post-thumbnail

์„œ์šธ๋Œ€ํ•™๊ต ํ•€ํ…Œํฌ ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋”ฅ๋Ÿฌ๋‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์ค€๋น„ํ•˜๋ฉฐ ๊ต์ˆ˜๋‹˜์˜ ๊ถŒ์œ ๋กœ Chatgpt๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๋ผ๋Š” ๊ถŒ์œ ๋ฅผ ๋ฐ›์•˜๋‹ค.
Chatgpt๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ• ๊นŒ ๊ณ ๋ฏผํ•˜๋˜์ค‘์— ์—ฌ๋Ÿฌ ํ•ด์™ธ Youtube, Github ๋“ฑ์—์„œ Langchain์ด ํ•ซํ•œ ๋ถ„์•ผ์ธ๊ฑธ ์•Œ๊ฒŒ๋˜์–ด ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ์ง„ํ–‰ํ•œ Langchain์˜ ๊ธฐ๋Šฅ์„ ๋ฆฌ๋ทฐํ•˜๊ณ  ์•ž์œผ๋กœ ๊ณ„์† ๊ณต๋ถ€ํ•˜๊ณ ์ž ํ•œ๋‹ค.

Langchain์˜ ๊ธฐ๋Šฅ์„ ์•Œ๊ณ ์‹ถ์€ ๋ถ„์€ ๋‹ค์Œ๊ธ€ ๋ถ€ํ„ฐ ๋ณด์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

๐Ÿฆœ๐Ÿ”— LangChain ์ด๋ž€?

LangChain์€ ๊ฐœ๋ฐœ์ž๊ฐ€ LLM(Large Language Model)์„ ์ด์šฉํ•ด ์—”๋“œํˆฌ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ๊ฐ•๋ ฅํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. LangChain์€ API๋ฅผ ํ†ตํ•ด ์–ธ์–ด ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์‹ํ•˜๊ฑฐ๋‚˜ ํƒ€ ์‹œ์Šคํ…œ์˜ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’กImportant Concepts

Langchain์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ์ „ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Langchain๊ณผ ๋”๋ถˆ์–ด ์•Œ์•„๋‘ฌ์•ผ ํ•  ๋ช‡๊ฐ€์ง€ ๊ฐœ๋…์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1. LLM

LLM(Large Language Model)์€ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ๋กœ, ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ํ…์ŠคํŠธ๋ฅผ ํ•™์Šตํ•˜๊ณ  ์š”์•ฝ, ์˜ˆ์ธก, ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” Chatgpt๋Š” GPT-3.5๋ผ๋Š” LLM๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋Œ€ํ™”ํ˜• ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ ๊ฑฐ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” GPT๋ฅผ ํฌํ•จํ•œ ํ˜„์žฌ ํ•ซํ•œ๋Œ€ํ‘œ์ ์ธ LLM๋ชจ๋ธ์˜ ๊ฐ„๋žตํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค.

2. Vector Embedding

LLM์˜ ํ•ต์‹ฌ์€ Vector Embedding์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vector Embedding์ด๋ž€ ์ž์—ฐ์–ด ๋‹จ์–ด๋“ค์„ ๋ฒกํ„ฐํ™” ํ•œ๊ฒƒ์ž…๋‹ˆ๋‹ค.(์˜๋ฏธ๊ฐ€ ์œ ์‚ฌํ•œ ํ…์ŠคํŠธ์˜ Vector Embedding์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€๊น๋‹ค.)

์•„๋ž˜๋Š” Chatgpt๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋™์ผํ•œ Vector Embedding์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
์ฐธ๊ณ ๋กœ chatgpt์˜ Vector embedding์˜ ์ฐจ์›์€ 1536 ์ž…๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ž„๋ฒ ๋”ฉํ•œ ์ž์—ฐ์–ด๋ฅผ ๋ฒกํ„ฐํŒŒ์ผ๊ณผ ๋ฉ”ํƒ€๋ฐ์ดํผ ํŒŒ์ผ๋กœ ๋งŒ๋“ค๋ฉด https://projector.tensorflow.org ์‚ฌ์ดํŠธ๋ฅผ ํ†ตํ•ด ์ž„๋ฒ ๋”ฉํ•œ ๋ฒกํ„ฐ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ 3์ฐจ์›์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์œ ์‚ฌ๋„ ๋˜ํ•œ ๊ฒ€์ƒ‰ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. Vector Database

Vector Embedding์„ ์ˆ˜ํ–‰ํ–ˆ๋‹ค๋ฉด ํ•ด๋‹น ๋ฒกํ„ฐ๋ฅผ ์ €์žฅํ•  ์žฅ์†Œ๊ฐ€ ํ•„์š”ํ•˜๊ฒ ์ฃ ? ์ด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ €์žฅ์†Œ๋ฅผ Vector Database๋ผ๊ณ  ํ•˜๋ฉฐ ๊ณ ์ฐจ์›์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰ ๋“ฑ์˜ ์ž‘์—…์— ํŠนํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์œ ๋ช…ํ•œ ๋ฒกํ„ฐ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋กœ๋Š” Pinecone, chroma, faiss๋“ฑ์ด ์žˆ๊ฒ ์Šต๋‹ˆ๋‹ค.

4. ํ•œ๊ธ€ ํ† ํฐ๊ณผ ์˜์–ด ํ† ํฐ์˜ ์ฐจ์ด

ํ˜„์žฌ Chatgpt๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘๊ฐ€์ง€ ์ž…๋‹ˆ๋‹ค.(์ •ํ™•ํžˆ๋Š” GTP-3.5 turbo model)

Browser๋‚˜ API์—์„œ๋‚˜ prompt์˜ ๊ธธ์ด๊ฐ€ ๊ธธ๋ฉด Chatgpt๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ์•„๋งˆ Chatgpt๊ฐ€ ๋‹ต๋ณ€์„ ํ•˜๋‹ค๊ฐ€ ๋Š๊ธฐ๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ณด์…จ์„ํ…๋ฐ ์ด๋Š” GPT-3.5 turbo model์˜ ํ† ํฐ์ œํ•œ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

GPT 3.5 turbo ๋ชจ๋ธ์‚ฌ์šฉ์‹œ 4096 ํ† ํฐ์ด ์ตœ๋Œ€์ด๋‚˜, ๋™์ผํ•œ ์˜๋ฏธ์˜ ๋ฌธ์žฅ์ด์—ฌ๋„ ํ•œ๊ธ€ ํ† ํฐ์˜ ์–‘์ด ์˜์–ด ํ† ํฐ์˜ ์–‘๋ณด๋‹ค 4~5๋ฐฐ ๊ฐ€๋Ÿ‰ ๋†’์•„ Langchain์—์„œ prompt๋ฅผ ์ž‘์„ฑํ• ๋•Œ ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋ฅผ ์ œ์™ธํ•œ ๋Œ€๋ถ€๋ถ„์„ ์˜์–ด๋กœ ์ง„ํ–‰ํ•˜๋Š”๊ฒŒ ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

์˜์–ด์™€ ํ•œ๊ธ€ ํ† ํฐ์˜ ๋น„๊ต๋Š” https://platform.openai.com/tokenizer ์—์„œ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธ ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŒ… ๋ถ€ํ„ฐ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ Langchain์˜ ๊ธฐ๋Šฅ์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ˜Ž

profile
study blog

0๊ฐœ์˜ ๋Œ“๊ธ€