ChatGPT의 개념과 원리
LLM이란
- 언어 모델로 구동되는 애플리케이션을 개발하기 위한 프레임워크
- 특징
- 데이터 인식
- 에이전트 기능
ChatGPT의 한계
- ChatGPT는 2021년까지 데이터를 학습한 모델로 2022년부터의 정보는 답변을 하지 못하거나 바른 응답을 하지 못한다. -> Vectorsotre기반 정보탐색 또는 Agent 활용한 검색 결합으로 해결 가능
- 토큰 제한 : GPT-3.5는 4096, GPT-4는 8196이라는 입력 토큰 제한이 존재한다.
- 환각현상 : Fact에 대한 질문을 했을 때, 질문의 의도와 전혀 맞지않는 대답을 하는 경우가 많다.
-> LangChain을 통해 이 한계를 극복할 수 있다.
ChatGPT 개량
- Fine-tuning : 기존 딥러닝 모델의 weight를 조정하여 원하는 용도의 모델로 업데이트한다. 모델을 재학습시켜야한다.
- N-shot Learing : 0개에서 n개의 출력 예시를 제시하여, 딥러닝이 용도에 알맞은 출력을 하도록 조정한다.
- In-context Learing : 문맥을 제시하고 이 문맥 기반으로 모델이 출력되도록 조정한다. LangChain을 이용해서 가능하다.
LangChain의 종류와 역할
LLM
- 초거대 언어모델로, LangChain을 구동하게 하는 엔진
- 오픈소스도 사용가능하다.
Prompts
- 초거대 언어모델이 지시하는 명령문
- 프롬프트 템플릿 : 언어모델에 전달할 명령문을 쉽게 전달 가능하다.
ex. Prompt Templates, Chat Prompt Template, Example Selectors, Output Parsers.
Index
- 초거대언어모델이 문서를 쉽게 탐색할 수 있도록 구조화하는 모듈.
- LangChaing을 통해서 정보를 기반으로 탐색할 수 있도록 도와줌.
Memory
- 채팅 이력을 기억하도록하여, 이를 기반으로 대화가 가능하도록 하는 모듈.
Chain
- LLM 사슬을 형성하여, 연속적인 LLM 호출이 가능하도록 하는 핵심 구성 요소
- 프롬프트를 사슬처럼 연결하여 원하는 답변을 나오게 할 수 있다.
Agents
- LLM이 기존의 Prompt Templated으로 수행할 수 없는 작업을 가능케하는 모듈
예시
- 문서 업로드 : 문서내의 유사도 검색쪽에 LLM을 사용할 수 있다. -> Document Loader
- 문서 분할 : 질문을 했을 때 유사한 부분을 찾고 정보를 찾을 때 유용 -> Text Splitter
- 문서 임베딩 : LLM이 이해할 수 있도록 문서 수치화
- 임베딩 검색 : 질문과 연관성이 높은 문서 추출
- 답변 생성 : 질문과 연관성이 높은 문서 추출
참고
https://youtu.be/WWRCLzXxUgs?si=Kw2smxbITjutX_ok