본문 바로가기
AI 작업물/GPTs

LangChain

by useSword 2024. 5. 13.

1. LangChain
언어 모델로 구동되는 앱을 개발하기 위한 프레임워크

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

2. 랭체인을 사용 이유
1) chatGPT의 정보 접근 제한.
-> vectorstore 기반 정보 탐색 or agent 활용한 검색 결합.

2) 토큰제한 GPT-3.5, 4 각각 4096,8196까지밖에 입력 토큰 제한이 존재함.
-> textSplitter를 활용한 문서 분할

3) 환각현상. FACT에 대한 질문을 했을 때 옳지 않은 답변(거짓,엉뚱한 대답)을 함.
-> 주어진 문서에 대해서만 답하도록 prompt 입력


3. ChatGPT 개량
1) Fine-tuning : 기존 딥러닝 모델의 weight를 조정하여 원하는 용도의 모델로 업데이트
2) N-shot Learning : 0개 ~ n개의 출력 예시를 제시하여 딥러닝이 용도에 알맞은 출력을 하도록 조정함.
3) In-context Learning : 문맥을 제시하고 , 이 문맥 기반으로 모델이 출력하도록 조정.


4. LangChain의 종류:
1) LLM : 초거대 언어모델, 생성모델의 엔진과 같은 역할을 하는 핵심 구성 요소
ex) GPT-3.5,PALM-2,LLAMA,StableVicuna 등등

2) Prompt : 초거대 언어모델에게 지시하는 명령문.
ex) prompt Templates, chat prompt template,example selectors,output parsers

3) index : LLM이 문서를 쉽게 탐색할 수 있도록 구조화 하는 모듈
ex) document Loader, Text Splitters,vector Stores, retrievers, ...

4) memory : 채팅 이력을 기억하도록 하여, 이를 기반으로 대화가 가능하도록 하는 모듈
ex) ConversationBufferMemory , Entity Memory, Conversation Knowledge GRAPY Memory, ...

5) Chain : LLM 사슬을 형성하여 연속적인 LLM 호출이 가능하도록 하는 핵심 구성 요소
ex) LLM Chain, Question Answeringm, Summarization, retrieval Question/Answering, ...

6) Agents : LLM이 기존 Prompt Template으로 수행할 수 없는 작업을 가능케하는 모듈
ex) Custom Agent, Custom MultiAction Agent, Conversation Agent, ...


예시 : PDF 챗봇 구축

1. 문서 업로드(Document Loader) : PyPDFLoader를 활용한 문서 가져오기

2. 문서 분할(Text Splitter) : PDF 문서를 여러 문서로 분할 

3. 문서 임베딩(embed to vectorstore) : LLM이 이해할 수 있도록 문서 수치화 

4. 임베딩 검색(vectorStore retriever) : 질문과 연관성이 높은 문서 추출

5. 답변 생성(QA chain) : 질문과 유사한 내용을 다시 프롬프트로 만들어서 chatGPT에게 제공함. 이를 통해 질문과 연관성이 높은 문서를 추출

'AI 작업물 > GPTs' 카테고리의 다른 글

prompt  (0) 2024.04.08
Whimsical Diagrams  (0) 2024.02.20
템플릿 요청 (Canva)  (1) 2024.02.20
로고 생성 (image generator)  (0) 2024.02.20