๐Ÿฆœโ›“๏ธLangChain์˜ ๊ฐœ๋…๊ณผ ๊ตฌ์กฐ

์‹  ์˜ยท2024๋…„ 4์›” 13์ผ
1

์ž์—ฐ์–ด์ฒ˜๋ฆฌ(NLP)

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

LangChain ํ•˜๋ฉด ์ดˆ๋ก ์•ต๋ฌด์ƒˆ์™€ ์ฒด์ธ์œผ๋กœ ๋งŽ์ด ํ‘œํ˜„ํ•˜๋˜๋ฐ ๊ทธ ์ด๋ชจํ‹ฐ์ฝ˜์„ ์ฐพ์ง€ ๋ชปํ•ด์„œ ์ œ๋ชฉ์ฒ˜๋Ÿผ ์“ฐ๋‹ˆ ๋ญ”๊ฐ€ ์งญ ๊ฐ™์ง€๋งŒ ์—ฌ๋Ÿฌ๋ถ„์ด ์•„์‹œ๋Š” ๊ทธ ๋žญ์ฒด์ธ ๋งž์Šต๋‹ˆ๋‹ค,,

โœ… LangChain์˜ ๊ฐœ๋…

๋ณดํ†ต LangChain์˜ ๊ฐœ๋…์„ '์–ธ์–ด ๋ชจ๋ธ๋กœ ๊ตฌ๋™๋˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ'๋ผ๊ณ  ํ•œ๋‹ค. ๊ทผ๋ฐ ์†”์งํžˆ ์ด ์„ค๋ช…์€ ๋ด๋„ ์ดํ•ด๊ฐ€ ์•ˆ ๊ฐ„๋‹ค. ๊ทธ๋ž˜์„œ ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด, LangChain์€ '์ดˆ๊ฑฐ๋Œ€ ์–ธ์–ด๋ชจ๋ธ(LLM) ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์šฉ ๋„๊ตฌ ๋ชจ์Œ'์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, chroma๋ผ๋Š” DB์™€ LLM์„ ์ด์–ด์ค˜์„œ PDF ํŒŒ์ผ์„ ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ต๋ณ€์„ ํ•ด์ค€๋‹ค. ์ด๋ ‡๊ฒŒ PDF, CSV๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ๋ฌธ์„œ๋ฅผ ์ชผ๊ฐœ๋Š” ๋“ฑ LLM๊ณผ์˜ ์—ฐ๊ฒฐ ์—ญํ• ์„ LangChain์ด ํ•ด์ฃผ๋Š” ๊ฑฐ๋‹ค.

์‚ฌ์‹ค LangChain, ๊ตณ์ด ์•ˆ์“ฐ๊ณ  ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ํ•˜๋‚˜์”ฉ ๋ถˆ๋Ÿฌ์™€์„œ ์จ๋„ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋„๊ตฌ๊ฐ€ ๋ชจ์—ฌ ์žˆ์œผ๋‹ˆ ํ›จ์”ฌ ํšจ์œจ์ ์ธ ๊ฑฐ๋‹ค. LangChain ์™ธ์— semantic-kernel, haystack๋„ ์žˆ๋Š”๋ฐ LangChain์„ ์“ฐ๋Š” ์ด์œ ๋Š” ์ง€๊ธˆ ๋งŽ์ด ์“ฐ๋‹ˆ๊นŒ,, Frontend๋กœ Django, Flask, Streamlit ๋“ฑ ๋งŽ์ง€๋งŒ Django๋ฅผ ์ถ”์ฒœํ•˜๋Š” ์ด์œ ๊ฐ€ ๋งŽ์ด ์“ฐ๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ๊ณผ ๊ฐ™์€ ์ด์œ ์ด๋‹ค.

โœ… LangChain์˜ ์—ญํ• 

๊ทธ๋Ÿผ ์ด์ œ LangChain์˜ ๊ตฌ์ฒด์ ์ธ ์—ญํ• ์„ ์•Œ์•„๋ณด์ž. LLM์„ ๋ถˆ๋Ÿฌ์™€ ์ถ”๊ฐ€ ํ•™์Šต์„ ์‹œํ‚ค๊ณ ์ž ํ•  ๋•Œ LangChain์ด ๊ตณ์ด ์žˆ์–ด์•ผ ํ•˜๋‚˜ ์‹ถ์—ˆ๋‹ค. ChatGPT๋งŒ์œผ๋กœ ๋˜์ง€ ์•Š๋‚˜ ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ChatGPT๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

ChatGPT์˜ ํ•œ๊ณ„

  • ์ •๋ณด ์ ‘๊ทผ ์ œํ•œ : ChatGPT(GPT-3.5)๋Š” 2021๋…„๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•œ LLM(์ดˆ๊ฑฐ๋Œ€์–ธ์–ด๋ชจ๋ธ)์ด๋ฏ€๋กœ 2022๋…„๋ถ€ํ„ฐ์˜ ์ •๋ณด์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ต๋ณ€์„ ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๊ฑฐ์ง“๋œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ, ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์ด ์—†์–ด์„œ ๊ธฐ์กด์— ํ•™์Šต๋˜์ง€ ์•Š์€ ์ง€์‹์„ ๋ฌผ์–ด๋ณด๋ฉด ์—‰๋šฑํ•œ ๋Œ€๋‹ต์„ ํ•  ๋•Œ๊ฐ€ ๋งŽ๋‹ค.
  • ํ† ํฐ ์ œํ•œ : GPT-3.5์™€ GPT-4๋Š” ๊ฐ๊ฐ 4096, 8192ํ† ํฐ์ด๋ผ๋Š” ์ž…๋ ฅ ํ† ํฐ ์ œํ•œ์ด ์กด์žฌํ•œ๋‹ค.
  • ํ™˜๊ฐํ˜„์ƒ(Hallucination) : Fact์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ํ–ˆ์„ ๋•Œ, ์—‰๋šฑํ•œ ๋Œ€๋‹ต์„ ํ•˜๊ฑฐ๋‚˜ ๊ฑฐ์ง“๋ง์„ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

โ†’ ์–ธ์–ด ๋ชจ๋ธ์„ ๋” ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ

LangChain์˜ ChatGPT ํ•œ๊ณ„์  ๋ณด์™„

LangChain์€ ChatGPT์˜ ์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•ด์ค€๋‹ค.

์–ด๋–ป๊ฒŒ? ChatGPT๋ฅผ ๊ฐœ๋Ÿ‰ํ•œ๋‹ค! ๊ฐœ๋Ÿ‰ ๋ฐฉ๋ฒ•์˜ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Fine-tuning(๊ธฐ์กด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉ ์šฉ๋„์— ๋งž๊ฒŒ ๋ฏธ์„ธ ์กฐ์ •ํ•˜๋Š” ๊ณผ์ •) : ๊ธฐ์กด ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์˜ weight๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์›ํ•˜๋Š” ์šฉ๋„์˜ ๋ชจ๋ธ๋กœ ์—…๋ฐ์ดํŠธ
    โ†’ Vectorstore ๊ธฐ๋ฐ˜ ์ •๋ณด ํƒ์ƒ‰/Agent๋ฅผ ํ™œ์šฉํ•œ ๊ฒ€์ƒ‰ ๊ฒฐํ•ฉ
  • N-shot Learning : 0๊ฐœ ~ n๊ฐœ์˜ ์ถœ๋ ฅ ์˜ˆ์‹œ๋ฅผ ์ œ์‹œํ•˜์—ฌ ๋”ฅ๋Ÿฌ๋‹์ด ์šฉ๋„์— ์•Œ๋งž์€ ์ถœ๋ ฅ์„ ํ•˜๋„๋ก ์กฐ์ •
    โ†’ TextSplitter๋ฅผ ํ™œ์šฉํ•œ ๋ฌธ์„œ ๋ถ„ํ• 
  • In-context Learning : ๋ฌธ๋งฅ์„ ์ œ์‹œํ•˜๊ณ , ๊ทธ ๋ฌธ๋งฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ์ด ์ถœ๋ ฅํ•˜๋„๋ก ์กฐ์ •

LangChain์€ ์ด ์ค‘ In-context Learning์„ ๋‹ค๋ฃจ๋Š” ๋„๊ตฌ์ด๋‹ค. Fine-tuning์€ ๋ชจ๋ธ์„ ๋‹ค์‹œ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์ธ๋ฐ ๊ณ ๋น„์šฉ์˜ ๋ฐฉ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์— ChatGPT๋ฅผ ํ•™์Šต์‹œ์ผœ ์–ด๋–ค ๋ถ„์•ผ์˜ ์ „๋ฌธ๊ฐ€๋ฅผ ๋งŒ๋“ฆ์œผ๋กœ์จ ๋งŽ์€ ๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•ด ์ฃผ๋Š” In-context Learning์„ ํ™œ์šฉํ•œ๋‹ค.

๋”ฐ๋ผ์„œ LangChain์„ ํ™œ์šฉํ•˜๋ฉด LLM์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์ฃผ๊ณ  ํ™œ์šฉ๋„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

โœ… LangChain์˜ ๊ตฌ์กฐ

  • Prompts : ์ดˆ๊ฑฐ๋Œ€ ์–ธ์–ด๋ชจ๋ธ์—๊ฒŒ ์ง€์‹œํ•˜๋Š” ๋ช…๋ น๋ฌธ
    • Prompt Templates, Chat Prompt Template, Example Selectors, Output Parsers
  • Index : LLM์ด ๋ฌธ์„œ๋ฅผ ์‰ฝ๊ฒŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์กฐํ™” ํ•˜๋Š” ๋ชจ๋“ˆ
    • Document Loaders, Text Splitters, Vectorstores, Retrievers
  • Memory : ์ฑ„ํŒ… ์ด๋ ฅ์„ ๊ธฐ์–ตํ•˜๋„๋ก ํ•˜์—ฌ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ€ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๋ชจ๋“ˆ
    • ConversationBufferMemory, Entity Memory, Conversation Knowledge Graph Memory
  • Chain : LLM ์‚ฌ์Šฌ์„ ํ˜•์„ฑํ•˜์—ฌ ์—ฐ์†์ ์ธ LLM ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ
    • LLM Chain, Question Answering, Summarization, Retrival Question/Answering
  • Agents : LLM์ด ๊ธฐ์กด Prompt Template์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ์ž‘์—…์„ ๊ฐ€๋Šฅ์ผ€ ํ•˜๋Š” ๋ชจ๋“ˆ
    • Custom Agent, Custom MultiAction Agent, Conversation Agent

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด