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이 뭘까?> 를 수강하고 작성한 글입니다.
'LLM' 카테고리의 다른 글
RAG란 무엇인가? (1) | 2024.08.12 |
---|---|
Langchain - PromptTemplate (4) | 2024.08.05 |
LangChain으로 ChatGPT API 활용하기 (0) | 2024.07.31 |
Retrieval-Augmented Generation for Large Language Models: A Survey (1) | 2024.07.24 |
RAG (Retrieval-Augmented Generation) 관련 논문 (1) | 2024.07.24 |