본문 바로가기

LLM

LangChain이란?

1. LangChain을 왜 써야 할까?

LLM이 가진 한계를 극복하고 더 잘 활용할 수 있음

 

1) LLM의 한계

  • 정보 접근 제한
    • 모델 학습에 이용되지 않은 정보(최신 정보, 특수한 정보 등)는 알지 못함
    • 극복 방안 : Vector Store 기반의 정보 탐색, Agent 를 활용한 검색 결합
  • 토큰 제한
    • ChatGPT에서 제공하는 모델에는 입력 토큰 제한이 존재
    • 극복 방안 :  TextSplitter를 활용한 문서 분할 
  • 환각 현상 (Hallucination)
    • 질문에 대한 답변을 할 때 엉뚱한 대답을 하거나 거짓말을 하는 경우가 존재함
    • 극복 방안 : 주어진 문서에 대해서만 답하도록 Prompt를 입력

 

2) LLM 모델 개량 방법

  • Fine-Tuning
    • 기존 딥러닝 모델의 weight 를 조절하여 원하는 용도의 모델로 업데이트
    • 단점 : 고비용
  • N-Shot Learning :
    • 0~N개의 출력 예시를 제시하여, 딥러닝이 용도에 알맞은 출력을 하도록 조정
    • 단점 : 모든 경우에 대한 예시를 제공할 수 없음
  • In-Context Learning
    • 문맥을 제시하고 이 문맥을 기반으로 모델이 출력하도록 조정 ▶ LangChain이 도움을 줌

 

2. LangChain이란?

 

1) LangChain이란?

LangChain은 LLM(대형 언어 모델)을 기반으로 하는 애플리케이션을 개발하기 위한 프레임워크입니다.

  • 데이터 인식 : LLM을 다른 데이터 소스에 연결합니다
  • 에이전트 기능 : 언어 모델이 환경과 상호 작용할 수 있도록 합니다.

 

2) LangChain의 구조

  • LLM
    • 초거대 언어모델로, 생성모델의 엔진과 같은 역할을 하는 핵심 구성 요소
    • 모든 종류의 LLM 모델 사용 가능(유료: GPT 3.5, PALM-2 / Open-Source : LLAMA, StableVicuna, WizardLM 등)
  • Prompts
    • 초거대 언어모델에게 지시하는 명령문
    • 요소 : Prompt Templates, Chat Prompt Template, Example Selectors (N-shot Learning 시 어떤 예시를 선택 할 것인지), Output Parsers
  • Index
    • LLM이 문서를 쉽게 탐색할 수 있도록 구조화 하는 모듈
    • 요소 : Document Loader, Text Splitters, Vectorstores, Retrievers
  • Memory
    • 채팅 이력을 기억하도록 하여, 이를 기반으로 대화가 가능하도록 하는 모듈
    • 요소 : Conversation Buffer Memory, Entity Memory, Conversation Knowledge Graph Memory, ... (원하는 목적에 따라서 적절한 메모리를 선택)
  • ★  Chain ★
    • LLM 사슬을 형성하여, 연속적인 LLM 호출이 가능하도록 하는 핵심 구성 요소
    • 예시 : LLM Chain, Question Answering, Summarization, Retrieval Question/Answering, ...
  • ★ Agents ★
    • LLM이 기존 Prompt Template으로 수행할 수 없는 작업을 가능하게 하는 모듈
    • 예시 : Custor Agent, Custom Multi Action Agent, Converstation Agent

 

 

3) (예시) LangChain 챗봇 구축

 

 

 

 

 

이 글은 <모두의 AI - Langchain 강의 (1/n) - Langchain이 뭘까?> 를 수강하고 작성한 글입니다.