고통은 사라지고 결과는 남는다. Records of Chansolve

LangChain 알아보기 본문

IT

LangChain 알아보기

엄청큰노란닭 2024. 3. 7. 13:28

LangChain

  • LangChain은 자연어처리(NLP)와 관련된 다양한 기능을 제공하는 파이썬 프레임워크
  • 대화형 AI시스템을 구축하고 연구하는 데 있어 유용한 도구를 제공하는 것

LangChain 의 특징

  • 챗봇 구축 : Langchain은 챗봇과 대화형 AI 시스템을 구축하기 위한 도구를 제공
  • 다양한 NLP 기능 : 텍스트 생성, 요약, 번역과 같은 다양한 자연어 처리 기능을 포함
  • 플러그 앤 플레이 아키텍쳐 : 기존의 NLP 모델이나 시스템과 쉽게 통합할 수 있고, 다양한 언어 모델과 기능을 손쉽게 결합할 수 있음
  • 확장성 및 커스터마이징 : 자신의 요구사항에 맞에 시스템을 커스터마이즈하고 확장할 수 있도록 설계됨.
  • 연구 및 개발 지원 : 새로운 대화형 AI 모델을 실험하고 개발하는데 도움
  • LangChain을 통해 복잡한 NLP 시스템을 쉽게 구축하고 실험 할 수 있음

LangChain의 모듈

  • Tools
  • Models
  • Text Splitters
  • Output Parsers
  • Document Loaders
  • Vector Stores
  • Prompts
  • Example Selectors

LangChain의 구조

  • LLM : 초거대 언어모델로, 생성 모델의 엔진과 같은 역할을 하는 핵심 구성요소
    • ex) GPT-3.5, PALM-2, LLAMA, StableVicuna, WizardLM, MPT ···
  • Prompts : 초거대 언어모델에게 지시하는 명령문
    • ex) Prompt Templates, Chat Prompt Templates, Example Seletors, Output Parsers···
  • Index : LLM이 문서를 쉽게 탐색할 수 있도록 구조화 하는 모듈
    • ex) Document Loaders, Text Splitters, Vector stores, Retrievals···
  • Memory : 채팅 이력을 기억하도록 하여, 이를 기반으로 대화가 가능하도록 하는 모듈
    • ex) Converstation BufferMemory, Entity Memory, Converstation Knowledge Graph Memory···
  • Chain : LLM 사슬을 형성하여, 연속적인 LLM 호출이 가능하도록 하는 핵심 구성 요소
    • ex) LLM Chain, Question Answering, Summarization, Retrieval Question/Answering ···
  • Agents : LLM이 기존 Prompt Template으로 수행할 수 없는 작업을 가능케하는 모듈
    • ex) Custom Agent, Custom MultiAction Agent, Conversation Agent ···

LLM에 외부 데이터 소스를 연동하는 법

  • LLM에 학습 과정에 포함되지 않은 지식을 주입하는 방법은 크게 2가지
  1. Fine-Tuning : 새로운 지식에 관한 텍스트 데이터 소스를 이용해서 LLM 파라미터를 Fine-Tuning 함
  2. Retrieval-Augmented Generation(RAG) : 새로운 지식에 관한 텍스트 데이터 소스를 Embedding해서 Vector Stores에 저장하고, 프롬프트 구성을 진행할 때 외부 데이터 소스로부터 가져온 텍스트 데이터를 함께 이용해서 프롬프트 구성한 뒤 LLM으로부터 답변을 얻어냄

LangChain의 장점

  1. 손쉬운 구현 : 복잡한 LLM을 간단한 몇줄의 코드로 손쉽게 구현할 수 있음
  2. 긴 Context의 지식 주입 가능 : GPT 3.5의 4096 토큰 제한으로 인해 긴 Context의 내용을 처리하기 힘들다는 문제점이 있는데, LangChain을 이용하면 더 킨 Context의 정보로 LLM과 상호작용 할 수 있음
  3. 출처 확인 가능: LLM의 많은 부분이 블랙박스와 확률적으로 동작하기 때문에 LLM이 만들어낸 text가 왜 그렇게 생성되는지 어렵고 Hallucination 문제가 발생할 위험성이 있지만, LangChain을 이용하면 명확한 출처와 함께 LLM이 텍스트를 생성할 수 있음

'IT' 카테고리의 다른 글

데이터 시각화  (0) 2024.02.21
mysqlclient Error  (0) 2023.12.04
Django for문 여러 개 쓰는 방법  (0) 2023.10.05
Python: TCP/IP 소켓 통신  (0) 2023.09.13
Python으로 스톱워치를 만들어보자  (0) 2023.04.06
Comments