SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
검색엔진에 적용된
ChatGPT
Tae Young Lee
As-Is 검색 엔진 구조
Query
Indexer
Data
수집기
검색 엔진 진화
Query
Indexer
Data
수집기 LLM
RLHF
Prompt
Ranking
Model
To-Be 검색엔진 구조
다양한 매체에서 활용
LangChain
이제 챗GPT로 하고 싶은 것?
챗GPT는 기존 데이터셋으로 학습된 대규모언어모델 중 하나일 뿐이고 세상과 연결된 존재는 아닙니다.
챗GPT는 과거 데이터로 학습되어 새로운 정보를 모르고, 거짓말도 한다고 한다. 그럼...
내 문서(PDF)를 챗GPT에게 학습시키고 싶은데, 어떻게 하나요?
챗GPT가 인터넷 정보를 검색해서 알려줄 순 없나요?
다른 서비스와 연동할 수는 없을까요?
내가 정한 시나리오대로 챗GPT를 다루고 싶어요.
🦜🔗 랭체인 (LangChain)
언어 모델을 API를 통해 호출하는 것 뿐만 아니라 외부 데이터를 인식하거나 타 시스템과의 상호작용하는 애플리케이션을 개발하고자 하는 노력
랭체인(LangChain)은 언어 모델을 기반으로 한 애플리케이션을 개발하기 위한 프레임워크
Ref. https://docs.langchain.com/docs/
데이터 인식
능동적 상호작용
언어 모델을 다른 데이터 소스에 연결
언어 모델이 환경과 상호작용할 수 있도록 함
https://www.facebook.com/groups/langchainkr
🦜🔗 랭체인 (LangChain)
언어 모델을 API를 통해 호출하는 것 뿐만 아니라 외부 데이터를 인식하거나 타 시스템과의 상호작용하는 애플리케이션을 개발하고자 하는 노력
랭체인(LangChain)은 언어 모델을 기반으로 한 애플리케이션을 개발하기 위한 프레임워크
Ref. https://docs.langchain.com/docs/
컴포넌트 사용 사례
언어 모델과 함께 작업하는 데 필요한 컴포넌트에
대한 모듈식 추상화를 제공함
추상화에 대한 구현 컬렉션 제공
LangChain 프레임워크의 나머지 부분을 사용하든
아니든 사용하기 쉽게 설계됨
체인은 특정 사용 사례를 가장 잘 수행하는 데
필요한 컴포넌트를 특정한 방식으로 조합할 수 있음
특정 사용 사례를 쉽게 시작할 수 있는 고급
인터페이스 제공
체인도 커스터마이징 가능하게 설계됨
🦜🔗 컴포넌트
Ref. https://docs.langchain.com/docs/
스키마
모델
프롬프트
인덱스
체인
메모리
에이전트
🦜🔗 컴포넌트 - 스키마
텍스트, 채팅 메시지, Examples, 문서 타입이 있습니다.
랭체인에서 사용되는 기본적인 타입과 스키마 소개
Ref. https://docs.langchain.com/docs/
텍스트
Text
채팅 메시지
ChatMessages
언어모델과의 인터페이스는
주로 텍스트임
따라서 랭체인 또한 주요
인터페이스가 텍스트임
예시
Examples
문서
Document
채팅 인터페이스에서 사용하는
메시지
시스템 채팅 메시지
(SystemChatMessage)
AI 시스템에 대한 지시사항
사용자 채팅 메시지
(HumanChatMessage)
사용자 입력 정보
AI 채팅 메시지
(AIChatMessage)
AI 시스템 출력 메시지
함수에 대한 입력과 예상되는
출력을 나타내는 입력/출력
쌍이며, 모델의 훈련과 평가에
사용될 수 있음.
또한 모델 또는 체인에 대한
입력/출력이 될 수 있음
모델인 경우 모델을 미세
조정하는 데 사용됨
비구조화된 데이터 조각이며,
아래와 같이 구성됨
page_content
: 데이터의 내용
metadata
: 데이터의 속성을 설명하는
부가 정보
🦜🔗 컴포넌트 - 모델
대규모언어모델, 채팅모델, 텍스트 임베딩 모델이 제공됩니다.
랭체인에서 다루는 다양한 모델
Ref. https://docs.langchain.com/docs/
대규모언어모델
LLMs
채팅 모델
Chat Models
텍스트 임베딩 모델
Text Embedding Models
텍스트 문자열
텍스트 문자열
채팅 메시지 목록
채팅 메시지
텍스트 입력
실수 목록
🦜🔗 컴포넌트 - 프롬프트
프롬프트는 모델에 대한 입력을 의미합니다. 이를 통해 모델을 프로그래밍할 수 있도록 여러 구성이 가능하도록 기능을 제공합니다.
프로그래밍하는 새로운 방법!
Ref. https://docs.langchain.com/docs/
프롬프트 값
PromptValue
프롬프트 템플릿
Prompt Templates
모델에 대한 입력을 나타내는
클래스
예시 선택자
Example Selectors
출력 파서
Output Parsers
PromptValue를 구성하는
클래스
프롬프트에 예시를 포함 시킴 텍스트만 반환하는 것보다 더
구조화된 정보를 얻고 싶을 때
사용됩니다.
(1) 모델에 출력 형식 지시
(2) 원하는 포맷으로 출력을
파싱 (필요한 경우 다시 시도
포함)
문서, 다양한 유형의 인덱스, 그리고 체인에서 인덱스를 사용하는 예시를 처리하는 유틸리티 함수가 포함되어 있습니다.
🦜🔗 컴포넌트 - 인덱스
문서를 구조화하고 모델과 상호작용
Ref. https://docs.langchain.com/docs/
문서 로더
Document Loaders
텍스트 분할기
Text Splitters
언어 모델과 사용자의 텍스트
데이터를 결합하는 방법 중
하나로 "문서"에서 텍스트
조각으로 로드하는 것임
Unstructured 패키지를
사용하여 텍스트, 파워포인트,
이미지, HTML, PDF 등 모든
유형의 파일을 텍스트 데이터로
변환함
벡터 저장소
VectorStores
검색기
Retrievers
긴 텍스트를 처리하려면 해당
텍스트를 여러 조각으로
나누어야 함. 이때
의미론적으로 관련된 텍스트
조각을 함께 유지해야 함
"의미론적으로 관련된"이
의미하는 바는 텍스트의 종류에
따라 다를 수 있기 때문에 이에
관한 분할/결합/생성 등이
이뤄짐
입력 텍스트를 임베딩을 통해
벡터를 생성하고, 생성된
벡터를 저장/관리/검색할 수
있는 기능을 제공하는 저장소
인터페이스는 문서를 언어
모델과 결합하기 쉽게 하는
일반적인 인터페이스임
이 인터페이스는 쿼리(문자열)
를 입력으로 받고 문서 목록을
반환하는
get_relevant_documents
메서드를 제공함
🦜🔗 컴포넌트 - 체인
사용자 입력을 받아 적절한 형식으로 구성하고, 모델에 전달하여 응답을 받고, 모델 출력을 검증하고 필요한 경우 수정할 수 있도록 구성 가능
목적을 달성하기 위해 특정한 방식으로 결합된 모듈식 구성요소
Ref. https://docs.langchain.com/docs/
체인
Chain
LLM체인
LLMChain
여러 개별 구성 요소를 둘러싼
종단 간 래퍼(wrapper)
인덱스 연관 체인
Index-related chains
프롬프트 선택자
Prompt Selector
인덱스에 저장된 고유한
데이터와 LLM을 결합하여
인덱스와 상호작용 수행
예시: 직접 작성한 문서에서
질문에 대한 답변을 찾음
가장 일반적인 체인 유형임
PromptTemplate, 모델(LLM
또는 ChatModel 중 하나),
그리고 선택적인 출력 파서로
구성됨
1. 여러 입력 변수를 사용하여
PromptTemplate를 통해
프롬프트로 형식을 지정
2. 모델에 전달
3. 출력파서를 사용하여 LLM의
출력을 최종 형식으로 파싱
문제는 하나의 모델에 잘
작동하는 프롬프트가 다른
모델에서는 그렇지 않을 수
있음
PromptSelector는 전달된
모델에 따라 기본 프롬프트를
선택하는 역할을 담당
🦜🔗 컴포넌트 - 인덱스 연관 체인 (Index-related chains)
사용자 입력을 받아 적절한 형식으로 구성하고, 모델에 전달하여 응답을 받고, 모델 출력을 검증하고 필요한 경우 수정할 수 있도록 구성 가능
목적을 달성하기 위해 특정한 방식으로 결합된 모듈식 구성요소
Ref. https://docs.langchain.com/docs/
스터핑
Stuffing
맵 리듀스
Map Reduce
관련 데이터를 모두 프롬프트에
지문으로 집어넣어 언어 모델에
전달
StuffDocumentsChain으로
구현
리파인
Refine
맵-리랭크
Map-Rerank
1. 첫 번째 데이터 청크에서
초기 프롬프트를 실행한 후
2. 나머지 문서에 대해 그
출력과 함께 새 문서를
전달하여 출력을 개선하도록
요청함
1. 각 데이터 청크에서 초기
프롬프트를 실행한 다음
2. 초기 출력을 모두 결합하는
데 사용되는 다른 프롬프트를
실행합니다.
MapReduceDocumentsChain
으로 구현
1. 각 데이터 청크에서 초기
프롬프트를 실행하여 작업을
완료하고
2. 답변에 대한 확신 수준을
나타내는 점수를 부여함
3. 이 점수에 따라 응답이
순위를 매겨, 가장 높은 점수를
반환
🦜🔗 컴포넌트 - 메모리
메모리를 활용하여 단기 및 장기 기억하는 어플리케이션 생성 제작
대화 과정에서 데이터를 저장하고 검색하는 메모리(memory) 개념
Ref. https://docs.langchain.com/docs/
채팅 메시지 히스토리
Chat Message History
이전의 모든 채팅 상호작용을
기억하는 역할 담당
이를 모델에 직접 다시
전달하거나, 어떤 방식으로
요약하거나, 또는 두 가지를
조합할 수 있음
입력을 기반으로 데이터 조각을 가져옴
입출력을 기반으로 상태 업데이트 장기 메모리
단기 메모리
단일 대화의 맥락에서
데이터를 전달하는 방법
대화 사이에 정보를
가져오고 업데이트하는
방법을 다룹
🦜🔗 컴포넌트 - 에이전트
. 사용자 입력에 따라 에이전트는 이러한 도구 중 어떤 것을 호출할지 결정
미리 정해진 체인뿐만아니라 사용자 입력에 따라 달라지는 체인을 구성하고자 할 때
Ref. https://docs.langchain.com/docs/
도구
Tools
툴킷
Toolkits
언어 모델이 다른 리소스와
상호 작용하는 방법
특정 기능 주변의 구체적인
추상화로, 언어 모델이 쉽게 상호
작용할 수 있도록 합니다.
구체적으로, 도구의 인터페이스는
단일 텍스트 입력과 단일 텍스트
출력을 갖습니다.
에이전트
Agents
에이전트 실행기
Agent Executor
함께 사용할 때 특정 작업을
수행할 수 있는 도구 세트
특정 문제를 해결하는 데
사용되거나 필요한 도구 그룹
결정을 내리는 데 사용되는
언어 모델
에이전트(Agent)는 사용자 입력을
받아들이고 취할 "액션(action)"
과 해당 "액션 입력(action input)"
에 대한 응답을 반환하는 모델
주변의 래퍼(wrapper)입니다.
도구와 함께 에이전트를
실행하는 로직
1. 에이전트를 호출
2. 액션(action)과 액션 입력
(action input)을 받아온 다음
3. 해당 입력과 함께 액션이
참조하는 도구를 호출하고
4. 도구의 출력을 얻어내어 모든
정보를 다시 에이전트에 전달하여
5. 다음에 취해야 할 액션을 얻는
역할을 담당
LLM
https://arxiv.org/abs/2303.18223
RLHF
RLHF 목적
‘AI가 생성한 글'의 점수를 매겨 인공지능 학습을 위해 필요한 loss function을
재정의하여 사람이 직접 피드백 준 부분을 성능의 척도로 하고 사람이 매긴 점수를
loss function으로 활용하자
❏ RLHF(Reinforcement Learning from Human Feedback)
❏ 사람이 직접 GPT에 이렇게 대답하라고 가르침
❏ 모델은 작지만 성능이 더 좋음
❏ 1.3B(RLHF) > 175B(GPT3)
❏ InstructGPT는 40명의 레이블러 투입
❏ ChatGPT는 InstructGPT와 데이터 수집 단계를 제외하면 거의 유사함
RLHF 학습 방법
RLHF 학습방법
❏ (step 1) SFT(Supervised Fine Tuning Model)
❏ 기존의 GPT-3(1750억 파라미터)를 지시문에 따라 생성할 수 있도록 supervised fine-tuning
수행
❏ 먼저 사람이 지시에 대한 대답을 직접 작성(데이터 13,000개)하고, 이 데이터셋으로
supervised fine-tuning
❏ 사람의 선호를 보상 신호로 활용해 모델을 사전학습
❏ (step 2) RM(Reward Model)
❏ 모델이 생성한 대답 데이터셋(한 번에 4~6개 세트)에 대해 점수를 매기는 보상 모델을 학습
(모델2 : RM, reward model, 6억 파라미터)
❏ 사람이 4~6개의 생성된 텍스트에 대해 순위를 매김(데이터 33,000개)
❏ 텍스트에 대해 바로 점수를 매기게 되면 사람마다 그 기준이 다를 수 있기 때문에 순위 활용
❏ (step 3) PPO
❏ 모델1의 복사본 모델1*를 모델2(RM) 기반 PPO로 fine-tuning 수행(데이터 31,000개)
❏ 모델1*를 최종 모델로 fine-tuning해가는 과정에서 모델1과 너무 다르지 않도록 penalty를 줌
(Reward Model에 bised되지 않도록 함)
강화학습
❏ Agent : 학습하려는 모델 → GPT
❏ Environment : 주변 환경 → User의 input
❏ Action : 모델이 할 수 있는 행동 → 답변 생성
❏ Policy : 모델이 어떻게 행동할지 결정하는 알고리즘 → GPT의 파라미터
❏ Reward : 모델이 한 행동에 따라, 환경에 따라 주는 보상 → Reward 모델의
예측 점수
❏ Interpreter : 리워드를 결정하는 사람 또는 시스템 → Reward 모델
❏ RL은 Agent가 Environment와 Action과 Reward를 통해 소통하며 최적의
Policy를 찾는 것이라고 생각하면 된다.
RLHF Summary
❏ Step 1) 먼저 사람이 지시에 대해 올바른 대답을 완성하는 모델 학습
❏ Step 2) feedback(지시에 대한 모델의 대답을 사람이 점수로 매김)을 모사하는
보상모델(reward model) 학습
❏ Step 3) 이 reward model을 기반으로 강화학습을 사용하여 1) 모델이 사람이
더 선호하는 결과로 대답하도록 fine-tuning
DEEPSPEED CHAT
End-to-End RLHF (Reinforcement Learning Human Feedback)
AI가 복합 되었을때의 최적화 및 선별의 문제 (ChatGPT 방식 차용)
Prompt Engineering
InstructGPT 성능
GPT의 Prompt Engineering
GPT 프롬프트 엔지니어링은 GPT모델을 활용하여 주어진 프롬프트(prompt)에 대한 자동완성을 수행하는 기술
프롬프트는 입력된 시작 문장을 의미하며, GPT 모델은 주어진 프롬프트를 기반으로 자연어 생성을 수행
GPT 프롬프트 엔지니어링은 대표적으로 OpenAI에서 공개한 GPT-3모델을 활용하여 이뤄짐
GPT-3 모델은 대규모 데이터셋을 학습한 후, 주어진 프롬프트에 대한 다양한 자연어 생성을 수행할 수 있음
GPT 프롬프트 엔지니어링은 다양한 분야에서 활용 가능
- GPT-3 모델을 사용하여 자동으로 이메일을 작성
- 문서를 요약하는 등 다양한 자연어 처리 작업을 자동화
GPT 프롬프트 엔지니어링은 새로운 문장 생성에 대한 자동화를 제공하며, 이를 통해 자연어 처리 분야에서의 생산성을 높일
수 있음
또한, GPT 모델을 활용하여 프롬프트에 대한 자연어 생성을 수행하는 과정에서 생성된 결과물들은 자연스러운 문장으로
이루어져 있어, 다양한 자연어 처리 작업에서 사용하기에 매우 유용함
GPT 프롬프트 엔지니어지링의 단점과 보완책
첫째, GPT 모델은 학습 데이터에 따라 생성 결과가 크게 달라짐
따라서, 학습 데이터의 질과 양이 중요한 역할을 함. 또한, 학습 데이터에 포함되어 있지 않은 문장에 대해서는 정확한
생성이 어려움
→ 대규모의 고품질 데이터셋이 필요. 따라서, 데이터셋 구축 및 데이터 전처리 기술의 발전이 필요
둘째, GPT 모델은 학습 데이터에서 발견되는 편향성(bias)을 반영할 수 있음.
이는 생성된 결과물이 특정 인종, 성별, 지역 등에 대한 편견을 반영할 수 있다는 것을 의미
→ 학습 데이터의 다양성을 고려하고 생성된 결과물을 사람이 검수하는 등의 방법을 통해 편향성을 줄여 나가야 함
셋째, GPT 프롬프트 엔지니어링은 생성된 결과물이 항상 일관성 있는 의미를 갖지는 않음.
이는 모델이 문맥을 제대로 이해하지 못하는 경우에 발생할 수 있습니다.
→ 문맥을 이해하고 일관성 있는 의미를 갖도록 모델을 개선해야 함
GPT 모델의 다양한 구조 개선 및 pre-training 방법론 등을 연구.
마지막으로, GPT 프롬프트 엔지니어링은 모델의 크기와 연산량이 매우 크기 때문에, 모델을 학습하고 사용하는 데에
많은 컴퓨팅 자원과 시간이 필요하다.
→ 모델의 크기와 연산량을 줄일 수 있는 경량화(lightweight) 기술 등을 연구하여, 모델의 효율성을 개선해야 함
프롬프트 엔지니어링의 명령문 형식
Generate [숫자] [텍스트] - "Generate 5 I love to" : "I love to dance.", "I love to cook.", "I love to travel." 등 5개의 문장을 생성합니다.
Complete [텍스트] - "Complete I enjoy listening to" : "I enjoy listening to music.", "I enjoy listening to podcasts.", "I enjoy listening to audiobooks."
등과 같이 텍스트를 자동완성
Answer [질문] - "Answer What is the capital of Japan?" : "The capital of Japan is Tokyo."와 같은 답변을 생성합니다.
Translate [텍스트] to [언어] - "Translate Good morning to Spanish" : "Buenos dias"와 같이 입력한 텍스트를 지정한 언어로 번역합니다.
Explain [개념] - "Explain What is artificial intelligence?" : 입력한 개념을 자세히 설명하는 문장을 생성합니다.
Paraphrase [텍스트] - "Paraphrase This book is very interesting." : "This book is quite fascinating."와 같이 입력한 텍스트를 다른 표현으로 변형합니다.
Summarize [텍스트] - "Summarize the article about climate change" : 입력한 텍스트에 대한 간략한 요약문을 생성합니다.
Compare [개념1] and [개념2] - "Compare democracy and dictatorship" : 두 개념에 대한 비교 문장을 생성합니다.
Convert [숫자1] [단위1] to [단위2] - "Convert 100 kilometers to miles" : 입력한 단위를 다른 단위로 변환하는 문장을 생성합니다.
Predict [데이터] - "Predict the stock price of Apple for the next month" : 입력한 데이터를 분석하여 예측 결과를 생성합니다.
기존에 질의에 대한 최상의 응답 제공
(API 호출 비용 절감)
Prompt Engineering
ChatGPT Service Architecture
Pre-Process AI
chunk strategy
Feature Engineering
Feature Store
ChatGPT
General AI
DownStream Task
Domain Adaptation
Specific AI
Business RDB
Cache DB
Evaluation
Hallucination 제거
Validation
Cache DB
사용자
질의 응답 셋 검색
비즈니스 도메인에 적합한 응답 제공
Input Traffic Control
Trend
ChatGPT Retrieval Plug-in Approach

Mais conteúdo relacionado

Mais procurados

ChatGPT - AI.pdf
ChatGPT - AI.pdfChatGPT - AI.pdf
ChatGPT - AI.pdfBannoon1
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)Byung-han Lee
 
생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdfChangwon National University
 
An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceJulien SIMON
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System HistoryTae Young Lee
 
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)Amazon Web Services Korea
 
Practical sentiment analysis
Practical sentiment analysisPractical sentiment analysis
Practical sentiment analysisDiana Maynard
 
Deep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptxDeep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptxTomazBratanic1
 
Build an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdfBuild an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdfStephenAmell4
 
Build an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdfBuild an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdfAnastasiaSteele10
 
presentation.pdf
presentation.pdfpresentation.pdf
presentation.pdfcaa28steve
 
Large Language Models - Chat AI.pdf
Large Language Models - Chat AI.pdfLarge Language Models - Chat AI.pdf
Large Language Models - Chat AI.pdfDavid Rostcheck
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 
LLMs_talk_March23.pdf
LLMs_talk_March23.pdfLLMs_talk_March23.pdf
LLMs_talk_March23.pdfChaoYang81
 
An Introduction to Generative AI - May 18, 2023
An Introduction  to Generative AI - May 18, 2023An Introduction  to Generative AI - May 18, 2023
An Introduction to Generative AI - May 18, 2023CoriFaklaris1
 
Generative-AI-in-enterprise-20230615.pdf
Generative-AI-in-enterprise-20230615.pdfGenerative-AI-in-enterprise-20230615.pdf
Generative-AI-in-enterprise-20230615.pdfLiming Zhu
 
순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요Byoung-Hee Kim
 

Mais procurados (20)

ChatGPT - AI.pdf
ChatGPT - AI.pdfChatGPT - AI.pdf
ChatGPT - AI.pdf
 
머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)머신러닝(딥러닝 요약)
머신러닝(딥러닝 요약)
 
생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging Face
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System History
 
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
AI 비지니스 무엇을 어떻게 준비하고 해야 하는가? - 정우진 (AWS 사업개발 담당)
 
Llama-index
Llama-indexLlama-index
Llama-index
 
Practical sentiment analysis
Practical sentiment analysisPractical sentiment analysis
Practical sentiment analysis
 
LLMs Bootcamp
LLMs BootcampLLMs Bootcamp
LLMs Bootcamp
 
Deep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptxDeep dive into LangChain integration with Neo4j.pptx
Deep dive into LangChain integration with Neo4j.pptx
 
Build an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdfBuild an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdf
 
Build an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdfBuild an LLM-powered application using LangChain.pdf
Build an LLM-powered application using LangChain.pdf
 
presentation.pdf
presentation.pdfpresentation.pdf
presentation.pdf
 
Large Language Models - Chat AI.pdf
Large Language Models - Chat AI.pdfLarge Language Models - Chat AI.pdf
Large Language Models - Chat AI.pdf
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
LLMs_talk_March23.pdf
LLMs_talk_March23.pdfLLMs_talk_March23.pdf
LLMs_talk_March23.pdf
 
An Introduction to Generative AI - May 18, 2023
An Introduction  to Generative AI - May 18, 2023An Introduction  to Generative AI - May 18, 2023
An Introduction to Generative AI - May 18, 2023
 
Understanding MLOps
Understanding MLOpsUnderstanding MLOps
Understanding MLOps
 
Generative-AI-in-enterprise-20230615.pdf
Generative-AI-in-enterprise-20230615.pdfGenerative-AI-in-enterprise-20230615.pdf
Generative-AI-in-enterprise-20230615.pdf
 
순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요순환신경망(Recurrent neural networks) 개요
순환신경망(Recurrent neural networks) 개요
 

Semelhante a 검색엔진에 적용된 ChatGPT

LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드Tae Young Lee
 
Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안
Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안
Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안Clova Platform
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)Seongyun Byeon
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법Daniel Kim
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usageTae Young Lee
 
2016 py con2016_lightingtalk_php to python
2016 py con2016_lightingtalk_php to python2016 py con2016_lightingtalk_php to python
2016 py con2016_lightingtalk_php to pythonJiho Lee
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning Systemhoondong kim
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
[코세나, kosena] 생성AI 프로젝트와 사례
[코세나, kosena] 생성AI 프로젝트와 사례[코세나, kosena] 생성AI 프로젝트와 사례
[코세나, kosena] 생성AI 프로젝트와 사례kosena
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 Yong Joon Moon
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
 
FLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptxFLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptxssuser6edff8
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규ChangKyu Song
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2gohyunwoong
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)SangIn Choung
 

Semelhante a 검색엔진에 적용된 ChatGPT (20)

LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드
 
Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안
Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안
Clova Tech Summit 2: 대화모델 엔진 구조와 Chatbot 개발 최적화 방안
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
[MLOps KR 행사] MLOps 춘추 전국 시대 정리(210605)
 
어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법어플리케이션 성능 최적화 기법
어플리케이션 성능 최적화 기법
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
Transfer learning usage
Transfer learning usageTransfer learning usage
Transfer learning usage
 
2016 py con2016_lightingtalk_php to python
2016 py con2016_lightingtalk_php to python2016 py con2016_lightingtalk_php to python
2016 py con2016_lightingtalk_php to python
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
[코세나, kosena] 생성AI 프로젝트와 사례
[코세나, kosena] 생성AI 프로젝트와 사례[코세나, kosena] 생성AI 프로젝트와 사례
[코세나, kosena] 생성AI 프로젝트와 사례
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
파이썬 플라스크 이해하기
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
 
7 8 1
7 8 17 8 1
7 8 1
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
 
FLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptxFLUTTER with AI tensorflow lite.pptx
FLUTTER with AI tensorflow lite.pptx
 
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
[NDC12] 변화량 분석을 중심으로 한 저비용 고효율의 지속가능한 코드퀄리티 관리법 - 송창규
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2
 
개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)개발이 테스트를 만났을 때(Shift left testing)
개발이 테스트를 만났을 때(Shift left testing)
 

Mais de Tae Young Lee

LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to knowTae Young Lee
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론Tae Young Lee
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning CompilerTae Young Lee
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AITae Young Lee
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platformTae Young Lee
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solutionTae Young Lee
 
Create a solution including deep learning models
Create a solution including deep learning modelsCreate a solution including deep learning models
Create a solution including deep learning modelsTae Young Lee
 
Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model serviceTae Young Lee
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation modelTae Young Lee
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various ProcessesTae Young Lee
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learningTae Young Lee
 
금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계Tae Young Lee
 

Mais de Tae Young Lee (20)

LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to know
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMs
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning Compiler
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AI
 
Aws architecture
Aws architectureAws architecture
Aws architecture
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platform
 
Nvidia architecture
Nvidia architectureNvidia architecture
Nvidia architecture
 
Ai based on gpu
Ai based on gpuAi based on gpu
Ai based on gpu
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solution
 
Create a solution including deep learning models
Create a solution including deep learning modelsCreate a solution including deep learning models
Create a solution including deep learning models
 
Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model service
 
Bayesian learning
Bayesian learningBayesian learning
Bayesian learning
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation model
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various Processes
 
Reinforcement learning
Reinforcement learningReinforcement learning
Reinforcement learning
 
Jenkins in finance
Jenkins in financeJenkins in finance
Jenkins in finance
 
HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
 
금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계
 

검색엔진에 적용된 ChatGPT

  • 2. As-Is 검색 엔진 구조 Query Indexer Data 수집기
  • 7. 이제 챗GPT로 하고 싶은 것? 챗GPT는 기존 데이터셋으로 학습된 대규모언어모델 중 하나일 뿐이고 세상과 연결된 존재는 아닙니다. 챗GPT는 과거 데이터로 학습되어 새로운 정보를 모르고, 거짓말도 한다고 한다. 그럼... 내 문서(PDF)를 챗GPT에게 학습시키고 싶은데, 어떻게 하나요? 챗GPT가 인터넷 정보를 검색해서 알려줄 순 없나요? 다른 서비스와 연동할 수는 없을까요? 내가 정한 시나리오대로 챗GPT를 다루고 싶어요.
  • 8. 🦜🔗 랭체인 (LangChain) 언어 모델을 API를 통해 호출하는 것 뿐만 아니라 외부 데이터를 인식하거나 타 시스템과의 상호작용하는 애플리케이션을 개발하고자 하는 노력 랭체인(LangChain)은 언어 모델을 기반으로 한 애플리케이션을 개발하기 위한 프레임워크 Ref. https://docs.langchain.com/docs/ 데이터 인식 능동적 상호작용 언어 모델을 다른 데이터 소스에 연결 언어 모델이 환경과 상호작용할 수 있도록 함 https://www.facebook.com/groups/langchainkr
  • 9. 🦜🔗 랭체인 (LangChain) 언어 모델을 API를 통해 호출하는 것 뿐만 아니라 외부 데이터를 인식하거나 타 시스템과의 상호작용하는 애플리케이션을 개발하고자 하는 노력 랭체인(LangChain)은 언어 모델을 기반으로 한 애플리케이션을 개발하기 위한 프레임워크 Ref. https://docs.langchain.com/docs/ 컴포넌트 사용 사례 언어 모델과 함께 작업하는 데 필요한 컴포넌트에 대한 모듈식 추상화를 제공함 추상화에 대한 구현 컬렉션 제공 LangChain 프레임워크의 나머지 부분을 사용하든 아니든 사용하기 쉽게 설계됨 체인은 특정 사용 사례를 가장 잘 수행하는 데 필요한 컴포넌트를 특정한 방식으로 조합할 수 있음 특정 사용 사례를 쉽게 시작할 수 있는 고급 인터페이스 제공 체인도 커스터마이징 가능하게 설계됨
  • 11. 🦜🔗 컴포넌트 - 스키마 텍스트, 채팅 메시지, Examples, 문서 타입이 있습니다. 랭체인에서 사용되는 기본적인 타입과 스키마 소개 Ref. https://docs.langchain.com/docs/ 텍스트 Text 채팅 메시지 ChatMessages 언어모델과의 인터페이스는 주로 텍스트임 따라서 랭체인 또한 주요 인터페이스가 텍스트임 예시 Examples 문서 Document 채팅 인터페이스에서 사용하는 메시지 시스템 채팅 메시지 (SystemChatMessage) AI 시스템에 대한 지시사항 사용자 채팅 메시지 (HumanChatMessage) 사용자 입력 정보 AI 채팅 메시지 (AIChatMessage) AI 시스템 출력 메시지 함수에 대한 입력과 예상되는 출력을 나타내는 입력/출력 쌍이며, 모델의 훈련과 평가에 사용될 수 있음. 또한 모델 또는 체인에 대한 입력/출력이 될 수 있음 모델인 경우 모델을 미세 조정하는 데 사용됨 비구조화된 데이터 조각이며, 아래와 같이 구성됨 page_content : 데이터의 내용 metadata : 데이터의 속성을 설명하는 부가 정보
  • 12. 🦜🔗 컴포넌트 - 모델 대규모언어모델, 채팅모델, 텍스트 임베딩 모델이 제공됩니다. 랭체인에서 다루는 다양한 모델 Ref. https://docs.langchain.com/docs/ 대규모언어모델 LLMs 채팅 모델 Chat Models 텍스트 임베딩 모델 Text Embedding Models 텍스트 문자열 텍스트 문자열 채팅 메시지 목록 채팅 메시지 텍스트 입력 실수 목록
  • 13. 🦜🔗 컴포넌트 - 프롬프트 프롬프트는 모델에 대한 입력을 의미합니다. 이를 통해 모델을 프로그래밍할 수 있도록 여러 구성이 가능하도록 기능을 제공합니다. 프로그래밍하는 새로운 방법! Ref. https://docs.langchain.com/docs/ 프롬프트 값 PromptValue 프롬프트 템플릿 Prompt Templates 모델에 대한 입력을 나타내는 클래스 예시 선택자 Example Selectors 출력 파서 Output Parsers PromptValue를 구성하는 클래스 프롬프트에 예시를 포함 시킴 텍스트만 반환하는 것보다 더 구조화된 정보를 얻고 싶을 때 사용됩니다. (1) 모델에 출력 형식 지시 (2) 원하는 포맷으로 출력을 파싱 (필요한 경우 다시 시도 포함)
  • 14. 문서, 다양한 유형의 인덱스, 그리고 체인에서 인덱스를 사용하는 예시를 처리하는 유틸리티 함수가 포함되어 있습니다. 🦜🔗 컴포넌트 - 인덱스 문서를 구조화하고 모델과 상호작용 Ref. https://docs.langchain.com/docs/ 문서 로더 Document Loaders 텍스트 분할기 Text Splitters 언어 모델과 사용자의 텍스트 데이터를 결합하는 방법 중 하나로 "문서"에서 텍스트 조각으로 로드하는 것임 Unstructured 패키지를 사용하여 텍스트, 파워포인트, 이미지, HTML, PDF 등 모든 유형의 파일을 텍스트 데이터로 변환함 벡터 저장소 VectorStores 검색기 Retrievers 긴 텍스트를 처리하려면 해당 텍스트를 여러 조각으로 나누어야 함. 이때 의미론적으로 관련된 텍스트 조각을 함께 유지해야 함 "의미론적으로 관련된"이 의미하는 바는 텍스트의 종류에 따라 다를 수 있기 때문에 이에 관한 분할/결합/생성 등이 이뤄짐 입력 텍스트를 임베딩을 통해 벡터를 생성하고, 생성된 벡터를 저장/관리/검색할 수 있는 기능을 제공하는 저장소 인터페이스는 문서를 언어 모델과 결합하기 쉽게 하는 일반적인 인터페이스임 이 인터페이스는 쿼리(문자열) 를 입력으로 받고 문서 목록을 반환하는 get_relevant_documents 메서드를 제공함
  • 15. 🦜🔗 컴포넌트 - 체인 사용자 입력을 받아 적절한 형식으로 구성하고, 모델에 전달하여 응답을 받고, 모델 출력을 검증하고 필요한 경우 수정할 수 있도록 구성 가능 목적을 달성하기 위해 특정한 방식으로 결합된 모듈식 구성요소 Ref. https://docs.langchain.com/docs/ 체인 Chain LLM체인 LLMChain 여러 개별 구성 요소를 둘러싼 종단 간 래퍼(wrapper) 인덱스 연관 체인 Index-related chains 프롬프트 선택자 Prompt Selector 인덱스에 저장된 고유한 데이터와 LLM을 결합하여 인덱스와 상호작용 수행 예시: 직접 작성한 문서에서 질문에 대한 답변을 찾음 가장 일반적인 체인 유형임 PromptTemplate, 모델(LLM 또는 ChatModel 중 하나), 그리고 선택적인 출력 파서로 구성됨 1. 여러 입력 변수를 사용하여 PromptTemplate를 통해 프롬프트로 형식을 지정 2. 모델에 전달 3. 출력파서를 사용하여 LLM의 출력을 최종 형식으로 파싱 문제는 하나의 모델에 잘 작동하는 프롬프트가 다른 모델에서는 그렇지 않을 수 있음 PromptSelector는 전달된 모델에 따라 기본 프롬프트를 선택하는 역할을 담당
  • 16. 🦜🔗 컴포넌트 - 인덱스 연관 체인 (Index-related chains) 사용자 입력을 받아 적절한 형식으로 구성하고, 모델에 전달하여 응답을 받고, 모델 출력을 검증하고 필요한 경우 수정할 수 있도록 구성 가능 목적을 달성하기 위해 특정한 방식으로 결합된 모듈식 구성요소 Ref. https://docs.langchain.com/docs/ 스터핑 Stuffing 맵 리듀스 Map Reduce 관련 데이터를 모두 프롬프트에 지문으로 집어넣어 언어 모델에 전달 StuffDocumentsChain으로 구현 리파인 Refine 맵-리랭크 Map-Rerank 1. 첫 번째 데이터 청크에서 초기 프롬프트를 실행한 후 2. 나머지 문서에 대해 그 출력과 함께 새 문서를 전달하여 출력을 개선하도록 요청함 1. 각 데이터 청크에서 초기 프롬프트를 실행한 다음 2. 초기 출력을 모두 결합하는 데 사용되는 다른 프롬프트를 실행합니다. MapReduceDocumentsChain 으로 구현 1. 각 데이터 청크에서 초기 프롬프트를 실행하여 작업을 완료하고 2. 답변에 대한 확신 수준을 나타내는 점수를 부여함 3. 이 점수에 따라 응답이 순위를 매겨, 가장 높은 점수를 반환
  • 17. 🦜🔗 컴포넌트 - 메모리 메모리를 활용하여 단기 및 장기 기억하는 어플리케이션 생성 제작 대화 과정에서 데이터를 저장하고 검색하는 메모리(memory) 개념 Ref. https://docs.langchain.com/docs/ 채팅 메시지 히스토리 Chat Message History 이전의 모든 채팅 상호작용을 기억하는 역할 담당 이를 모델에 직접 다시 전달하거나, 어떤 방식으로 요약하거나, 또는 두 가지를 조합할 수 있음 입력을 기반으로 데이터 조각을 가져옴 입출력을 기반으로 상태 업데이트 장기 메모리 단기 메모리 단일 대화의 맥락에서 데이터를 전달하는 방법 대화 사이에 정보를 가져오고 업데이트하는 방법을 다룹
  • 18. 🦜🔗 컴포넌트 - 에이전트 . 사용자 입력에 따라 에이전트는 이러한 도구 중 어떤 것을 호출할지 결정 미리 정해진 체인뿐만아니라 사용자 입력에 따라 달라지는 체인을 구성하고자 할 때 Ref. https://docs.langchain.com/docs/ 도구 Tools 툴킷 Toolkits 언어 모델이 다른 리소스와 상호 작용하는 방법 특정 기능 주변의 구체적인 추상화로, 언어 모델이 쉽게 상호 작용할 수 있도록 합니다. 구체적으로, 도구의 인터페이스는 단일 텍스트 입력과 단일 텍스트 출력을 갖습니다. 에이전트 Agents 에이전트 실행기 Agent Executor 함께 사용할 때 특정 작업을 수행할 수 있는 도구 세트 특정 문제를 해결하는 데 사용되거나 필요한 도구 그룹 결정을 내리는 데 사용되는 언어 모델 에이전트(Agent)는 사용자 입력을 받아들이고 취할 "액션(action)" 과 해당 "액션 입력(action input)" 에 대한 응답을 반환하는 모델 주변의 래퍼(wrapper)입니다. 도구와 함께 에이전트를 실행하는 로직 1. 에이전트를 호출 2. 액션(action)과 액션 입력 (action input)을 받아온 다음 3. 해당 입력과 함께 액션이 참조하는 도구를 호출하고 4. 도구의 출력을 얻어내어 모든 정보를 다시 에이전트에 전달하여 5. 다음에 취해야 할 액션을 얻는 역할을 담당
  • 19. LLM
  • 21. RLHF
  • 22.
  • 23. RLHF 목적 ‘AI가 생성한 글'의 점수를 매겨 인공지능 학습을 위해 필요한 loss function을 재정의하여 사람이 직접 피드백 준 부분을 성능의 척도로 하고 사람이 매긴 점수를 loss function으로 활용하자 ❏ RLHF(Reinforcement Learning from Human Feedback) ❏ 사람이 직접 GPT에 이렇게 대답하라고 가르침 ❏ 모델은 작지만 성능이 더 좋음 ❏ 1.3B(RLHF) > 175B(GPT3) ❏ InstructGPT는 40명의 레이블러 투입 ❏ ChatGPT는 InstructGPT와 데이터 수집 단계를 제외하면 거의 유사함
  • 25. RLHF 학습방법 ❏ (step 1) SFT(Supervised Fine Tuning Model) ❏ 기존의 GPT-3(1750억 파라미터)를 지시문에 따라 생성할 수 있도록 supervised fine-tuning 수행 ❏ 먼저 사람이 지시에 대한 대답을 직접 작성(데이터 13,000개)하고, 이 데이터셋으로 supervised fine-tuning ❏ 사람의 선호를 보상 신호로 활용해 모델을 사전학습 ❏ (step 2) RM(Reward Model) ❏ 모델이 생성한 대답 데이터셋(한 번에 4~6개 세트)에 대해 점수를 매기는 보상 모델을 학습 (모델2 : RM, reward model, 6억 파라미터) ❏ 사람이 4~6개의 생성된 텍스트에 대해 순위를 매김(데이터 33,000개) ❏ 텍스트에 대해 바로 점수를 매기게 되면 사람마다 그 기준이 다를 수 있기 때문에 순위 활용 ❏ (step 3) PPO ❏ 모델1의 복사본 모델1*를 모델2(RM) 기반 PPO로 fine-tuning 수행(데이터 31,000개) ❏ 모델1*를 최종 모델로 fine-tuning해가는 과정에서 모델1과 너무 다르지 않도록 penalty를 줌 (Reward Model에 bised되지 않도록 함)
  • 26.
  • 27. 강화학습 ❏ Agent : 학습하려는 모델 → GPT ❏ Environment : 주변 환경 → User의 input ❏ Action : 모델이 할 수 있는 행동 → 답변 생성 ❏ Policy : 모델이 어떻게 행동할지 결정하는 알고리즘 → GPT의 파라미터 ❏ Reward : 모델이 한 행동에 따라, 환경에 따라 주는 보상 → Reward 모델의 예측 점수 ❏ Interpreter : 리워드를 결정하는 사람 또는 시스템 → Reward 모델 ❏ RL은 Agent가 Environment와 Action과 Reward를 통해 소통하며 최적의 Policy를 찾는 것이라고 생각하면 된다.
  • 28. RLHF Summary ❏ Step 1) 먼저 사람이 지시에 대해 올바른 대답을 완성하는 모델 학습 ❏ Step 2) feedback(지시에 대한 모델의 대답을 사람이 점수로 매김)을 모사하는 보상모델(reward model) 학습 ❏ Step 3) 이 reward model을 기반으로 강화학습을 사용하여 1) 모델이 사람이 더 선호하는 결과로 대답하도록 fine-tuning
  • 29. DEEPSPEED CHAT End-to-End RLHF (Reinforcement Learning Human Feedback) AI가 복합 되었을때의 최적화 및 선별의 문제 (ChatGPT 방식 차용)
  • 32. GPT의 Prompt Engineering GPT 프롬프트 엔지니어링은 GPT모델을 활용하여 주어진 프롬프트(prompt)에 대한 자동완성을 수행하는 기술 프롬프트는 입력된 시작 문장을 의미하며, GPT 모델은 주어진 프롬프트를 기반으로 자연어 생성을 수행 GPT 프롬프트 엔지니어링은 대표적으로 OpenAI에서 공개한 GPT-3모델을 활용하여 이뤄짐 GPT-3 모델은 대규모 데이터셋을 학습한 후, 주어진 프롬프트에 대한 다양한 자연어 생성을 수행할 수 있음 GPT 프롬프트 엔지니어링은 다양한 분야에서 활용 가능 - GPT-3 모델을 사용하여 자동으로 이메일을 작성 - 문서를 요약하는 등 다양한 자연어 처리 작업을 자동화 GPT 프롬프트 엔지니어링은 새로운 문장 생성에 대한 자동화를 제공하며, 이를 통해 자연어 처리 분야에서의 생산성을 높일 수 있음 또한, GPT 모델을 활용하여 프롬프트에 대한 자연어 생성을 수행하는 과정에서 생성된 결과물들은 자연스러운 문장으로 이루어져 있어, 다양한 자연어 처리 작업에서 사용하기에 매우 유용함
  • 33. GPT 프롬프트 엔지니어지링의 단점과 보완책 첫째, GPT 모델은 학습 데이터에 따라 생성 결과가 크게 달라짐 따라서, 학습 데이터의 질과 양이 중요한 역할을 함. 또한, 학습 데이터에 포함되어 있지 않은 문장에 대해서는 정확한 생성이 어려움 → 대규모의 고품질 데이터셋이 필요. 따라서, 데이터셋 구축 및 데이터 전처리 기술의 발전이 필요 둘째, GPT 모델은 학습 데이터에서 발견되는 편향성(bias)을 반영할 수 있음. 이는 생성된 결과물이 특정 인종, 성별, 지역 등에 대한 편견을 반영할 수 있다는 것을 의미 → 학습 데이터의 다양성을 고려하고 생성된 결과물을 사람이 검수하는 등의 방법을 통해 편향성을 줄여 나가야 함 셋째, GPT 프롬프트 엔지니어링은 생성된 결과물이 항상 일관성 있는 의미를 갖지는 않음. 이는 모델이 문맥을 제대로 이해하지 못하는 경우에 발생할 수 있습니다. → 문맥을 이해하고 일관성 있는 의미를 갖도록 모델을 개선해야 함 GPT 모델의 다양한 구조 개선 및 pre-training 방법론 등을 연구. 마지막으로, GPT 프롬프트 엔지니어링은 모델의 크기와 연산량이 매우 크기 때문에, 모델을 학습하고 사용하는 데에 많은 컴퓨팅 자원과 시간이 필요하다. → 모델의 크기와 연산량을 줄일 수 있는 경량화(lightweight) 기술 등을 연구하여, 모델의 효율성을 개선해야 함
  • 34. 프롬프트 엔지니어링의 명령문 형식 Generate [숫자] [텍스트] - "Generate 5 I love to" : "I love to dance.", "I love to cook.", "I love to travel." 등 5개의 문장을 생성합니다. Complete [텍스트] - "Complete I enjoy listening to" : "I enjoy listening to music.", "I enjoy listening to podcasts.", "I enjoy listening to audiobooks." 등과 같이 텍스트를 자동완성 Answer [질문] - "Answer What is the capital of Japan?" : "The capital of Japan is Tokyo."와 같은 답변을 생성합니다. Translate [텍스트] to [언어] - "Translate Good morning to Spanish" : "Buenos dias"와 같이 입력한 텍스트를 지정한 언어로 번역합니다. Explain [개념] - "Explain What is artificial intelligence?" : 입력한 개념을 자세히 설명하는 문장을 생성합니다. Paraphrase [텍스트] - "Paraphrase This book is very interesting." : "This book is quite fascinating."와 같이 입력한 텍스트를 다른 표현으로 변형합니다. Summarize [텍스트] - "Summarize the article about climate change" : 입력한 텍스트에 대한 간략한 요약문을 생성합니다. Compare [개념1] and [개념2] - "Compare democracy and dictatorship" : 두 개념에 대한 비교 문장을 생성합니다. Convert [숫자1] [단위1] to [단위2] - "Convert 100 kilometers to miles" : 입력한 단위를 다른 단위로 변환하는 문장을 생성합니다. Predict [데이터] - "Predict the stock price of Apple for the next month" : 입력한 데이터를 분석하여 예측 결과를 생성합니다.
  • 35. 기존에 질의에 대한 최상의 응답 제공 (API 호출 비용 절감) Prompt Engineering ChatGPT Service Architecture Pre-Process AI chunk strategy Feature Engineering Feature Store ChatGPT General AI DownStream Task Domain Adaptation Specific AI Business RDB Cache DB Evaluation Hallucination 제거 Validation Cache DB 사용자 질의 응답 셋 검색 비즈니스 도메인에 적합한 응답 제공 Input Traffic Control
  • 36. Trend