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 |